summaryrefslogtreecommitdiffstats
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/controls/button/menu_button.cc9
-rw-r--r--views/controls/button/menu_button.h12
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;