Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Unified Diff: ui/views/bubble/bubble_delegate.h

Issue 10162017: Re-reland Propagate OnNativeWidgetMove to delegate/observers, etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync and merge. Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | ui/views/bubble/bubble_delegate.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/bubble/bubble_delegate.h
diff --git a/ui/views/bubble/bubble_delegate.h b/ui/views/bubble/bubble_delegate.h
index 75f6c16823f924d8c5af83e58ad05952aed6c8af..a1976e6a9deb04244fb2cc92f329ea2da134ac3c 100644
--- a/ui/views/bubble/bubble_delegate.h
+++ b/ui/views/bubble/bubble_delegate.h
@@ -47,23 +47,25 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView,
views::Widget* widget) OVERRIDE;
// Widget::Observer overrides:
+ virtual void OnWidgetClosing(Widget* widget) OVERRIDE;
virtual void OnWidgetVisibilityChanged(Widget* widget, bool visible) OVERRIDE;
virtual void OnWidgetActivationChanged(Widget* widget, bool active) OVERRIDE;
+ virtual void OnWidgetMoved(Widget* widget) OVERRIDE;
bool close_on_esc() const { return close_on_esc_; }
void set_close_on_esc(bool close_on_esc) { close_on_esc_ = close_on_esc; }
bool close_on_deactivate() const { return close_on_deactivate_; }
void set_close_on_deactivate(bool close_on_deactivate) {
- close_on_deactivate_ = close_on_deactivate;
+ close_on_deactivate_ = close_on_deactivate;
}
View* anchor_view() const { return anchor_view_; }
- void set_anchor_view(View* anchor_view) { anchor_view_ = anchor_view; }
+ Widget* anchor_widget() const { return anchor_widget_; }
BubbleBorder::ArrowLocation arrow_location() const { return arrow_location_; }
void set_arrow_location(BubbleBorder::ArrowLocation arrow_location) {
- arrow_location_ = arrow_location;
+ arrow_location_ = arrow_location;
}
SkColor color() const { return color_; }
@@ -108,6 +110,14 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView,
// Perform view initialization on the contents for bubble sizing.
virtual void Init();
+ // Set the anchor view, this must be done before calling CreateBubble or Show.
+ void set_anchor_view(View* anchor_view) { anchor_view_ = anchor_view; }
+
+ bool move_with_anchor() const { return move_with_anchor_; }
+ void set_move_with_anchor(bool move_with_anchor) {
+ move_with_anchor_ = move_with_anchor;
+ }
+
// Resizes and potentially moves the Bubble to best accommodate the
// contents preferred size.
void SizeToContents();
@@ -133,8 +143,12 @@ class VIEWS_EXPORT BubbleDelegateView : public WidgetDelegateView,
bool close_on_esc_;
bool close_on_deactivate_;
- // The view hosting this bubble; the arrow is anchored to this view.
+ // The view and widget to which this bubble is anchored.
View* anchor_view_;
+ Widget* anchor_widget_;
+
+ // If true, the bubble will re-anchor (and may resize) with |anchor_widget_|.
+ bool move_with_anchor_;
// The arrow's location on the bubble.
BubbleBorder::ArrowLocation arrow_location_;
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | ui/views/bubble/bubble_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698