diff options
Diffstat (limited to 'views')
-rw-r--r-- | views/controls/button/menu_button.cc | 9 | ||||
-rw-r--r-- | views/controls/button/menu_button.h | 12 |
2 files changed, 19 insertions, 2 deletions
diff --git a/views/controls/button/menu_button.cc b/views/controls/button/menu_button.cc index 2a63124..f09b2d4 100644 --- a/views/controls/button/menu_button.cc +++ b/views/controls/button/menu_button.cc @@ -31,6 +31,10 @@ static const int64 kMinimumTimeBetweenButtonClicks = 100; static const int kMenuMarkerPaddingLeft = 3; static const int kMenuMarkerPaddingRight = -1; +// Default menu offset. +static const int kDefaultMenuOffsetX = -2; +static const int kDefaultMenuOffsetY = -4; + // static const char MenuButton::kViewClassName[] = "views/MenuButton"; @@ -46,6 +50,7 @@ MenuButton::MenuButton(ButtonListener* listener, bool show_menu_marker) : TextButton(listener, text), menu_visible_(false), + menu_offset_(kDefaultMenuOffsetX, kDefaultMenuOffsetY), menu_delegate_(menu_delegate), show_menu_marker_(show_menu_marker), menu_marker_(ResourceBundle::GetSharedInstance().GetBitmapNamed( @@ -130,9 +135,9 @@ bool MenuButton::Activate() { View::ConvertPointToScreen(this, &menu_position); if (base::i18n::IsRTL()) - menu_position.Offset(2, -4); + menu_position.Offset(-menu_offset_.x(), menu_offset_.y()); else - menu_position.Offset(-2, -4); + menu_position.Offset(menu_offset_.x(), menu_offset_.y()); int max_x_coordinate = GetMaximumScreenXCoordinate(); if (max_x_coordinate && max_x_coordinate <= menu_position.x()) diff --git a/views/controls/button/menu_button.h b/views/controls/button/menu_button.h index 74affeb..ac20b0f 100644 --- a/views/controls/button/menu_button.h +++ b/views/controls/button/menu_button.h @@ -66,10 +66,22 @@ class MenuButton : public TextButton { // Returns views/MenuButton. virtual std::string GetClassName() const; + // Accessors for menu_offset_. + const gfx::Point& menu_offset() const { + return menu_offset_; + } + + void set_menu_offset(int x, int y) { + menu_offset_.SetPoint(x, y); + } + protected: // True if the menu is currently visible. bool menu_visible_; + // Offset of the associated menu position. + gfx::Point menu_offset_; + private: friend class TextButtonBackground; |