ProfilePolicyConnectorFactory: Refactoring from Profile to BrowserContext.
[chromium-blink-merge.git] / ash / system / tray / special_popup_row.h
blob948c3bd74b4cad7ac79ccf02d9b6339794d5ec5b
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef ASH_SYSTEM_TRAY_SPECIAL_POPUP_ROW_H_
6 #define ASH_SYSTEM_TRAY_SPECIAL_POPUP_ROW_H_
8 #include "ash/ash_export.h"
9 #include "ui/gfx/geometry/size.h"
10 #include "ui/views/view.h"
12 namespace views {
13 class Label;
16 namespace ash {
17 class ThrobberView;
18 class TrayItemView;
19 class TrayPopupHeaderButton;
20 class ViewClickListener;
22 // The 'special' looking row in the uber-tray popups. This is usually the bottom
23 // row in the popups, and has a fixed height.
24 class ASH_EXPORT SpecialPopupRow : public views::View {
25 public:
26 SpecialPopupRow();
27 ~SpecialPopupRow() override;
29 void SetTextLabel(int string_id, ViewClickListener* listener);
30 void SetContent(views::View* view);
32 void AddButton(TrayPopupHeaderButton* button);
33 void AddThrobber(ThrobberView* throbber);
35 views::View* content() const { return content_; }
37 private:
38 // Overridden from views::View.
39 gfx::Size GetPreferredSize() const override;
40 int GetHeightForWidth(int width) const override;
41 void Layout() override;
43 views::View* content_;
44 views::View* button_container_;
46 DISALLOW_COPY_AND_ASSIGN(SpecialPopupRow);
49 } // namespace ash
51 #endif // ASH_SYSTEM_TRAY_SPECIAL_POPUP_ROW_H_