Chromium Code Reviews| Index: ash/system/tray/tray_item_view.h |
| diff --git a/ash/system/tray/tray_item_view.h b/ash/system/tray/tray_item_view.h |
| index e0d8ec4d5af6c0f2ed5cc1679b0232d4b0d337e5..10b16e414bf1ec2f6a1ab9078d6e88c00a11ae3d 100644 |
| --- a/ash/system/tray/tray_item_view.h |
| +++ b/ash/system/tray/tray_item_view.h |
| @@ -6,9 +6,14 @@ |
| #define ASH_SYSTEM_TRAY_TRAY_ITEM_VIEW_H_ |
| #include "ash/ash_export.h" |
| +#include "ash/shell_observer.h" |
| #include "ui/base/animation/animation_delegate.h" |
| #include "ui/views/view.h" |
| +namespace aura { |
| +class RootWindow; |
| +} |
| + |
| namespace ui { |
| class SlideAnimation; |
| } |
| @@ -28,6 +33,7 @@ namespace internal { |
| // correctly when the visibility/size of the tray item changes. It also adds |
| // animation when showing/hiding the item in the tray. |
| class ASH_EXPORT TrayItemView : public views::View, |
| + public ash::ShellObserver, |
| public ui::AnimationDelegate { |
| public: |
| explicit TrayItemView(SystemTrayItem* owner); |
| @@ -43,11 +49,23 @@ class ASH_EXPORT TrayItemView : public views::View, |
| views::Label* label() const { return label_; } |
| views::ImageView* image_view() const { return image_view_; } |
| + enum AlignmentOverride { |
| + AUTO, |
| + HORIZONTAL, |
| + VERTICAL |
| + }; |
| + |
| + // Enforce a shelf alignment independent alignment for this item. |
| + void SetAlignmentOverride(AlignmentOverride alignment_override); |
| + |
| // Overridden from views::View. |
| virtual void SetVisible(bool visible) OVERRIDE; |
| virtual gfx::Size GetPreferredSize() OVERRIDE; |
| virtual int GetHeightForWidth(int width) OVERRIDE; |
| + // Overridden from ash::ShellObserver. |
| + virtual void OnShelfAlignmentChanged(aura::RootWindow* root_window) OVERRIDE; |
|
jennyz
2013/08/13 20:32:51
We already have UpdateAfterShelfAlignmentChange()
Mr4D (OOO till 08-26)
2013/08/13 21:25:01
Okay - as discussed - changed it now only in the o
|
| + |
| protected: |
| // Makes sure the widget relayouts after the size/visibility of the view |
| // changes. |
| @@ -71,11 +89,18 @@ class ASH_EXPORT TrayItemView : public views::View, |
| virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE; |
| virtual void AnimationCanceled(const ui::Animation* animation) OVERRIDE; |
| + // Set the layout alignment of the view inside its parent from the shelf. |
| + void SetLayoutAlignment(); |
| + |
| SystemTrayItem* owner_; |
| scoped_ptr<ui::SlideAnimation> animation_; |
| views::Label* label_; |
| views::ImageView* image_view_; |
| + // The alignment override - or |AUTO| if the shelf alignment should be used. |
| + AlignmentOverride alignment_override_; |
| + |
| + |
| DISALLOW_COPY_AND_ASSIGN(TrayItemView); |
| }; |