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

Unified Diff: chrome/browser/ui/views/website_settings/permission_selector_view.cc

Issue 10829038: (Views only) Resize the menu buttons on the Website Settings UI to fit the button text (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments(msw). Created 8 years, 5 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
Index: chrome/browser/ui/views/website_settings/permission_selector_view.cc
diff --git a/chrome/browser/ui/views/website_settings/permission_selector_view.cc b/chrome/browser/ui/views/website_settings/permission_selector_view.cc
index f7a790e3954196db0b4883c84f20ddf4a97e93d7..3bb4cc9a2a765cad97551ada7dfbc37085cbfb2e 100644
--- a/chrome/browser/ui/views/website_settings/permission_selector_view.cc
+++ b/chrome/browser/ui/views/website_settings/permission_selector_view.cc
@@ -94,8 +94,14 @@ class PermissionMenuButton : public views::MenuButton,
PermissionMenuModel* model);
virtual ~PermissionMenuButton();
+ // Overridden from views::MenuButton.
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+
+ // Overridden from views::TextButton.
+ virtual void SetText(const string16& text) OVERRIDE;
+
private:
- // Overridden from views::MenuButtonListener:
+ // Overridden from views::MenuButtonListener.
virtual void OnMenuButtonClicked(View* source,
const gfx::Point& point) OVERRIDE;
@@ -158,7 +164,7 @@ void PermissionMenuModel::ExecuteCommand(int command_id) {
}
///////////////////////////////////////////////////////////////////////////////
-// PermissionMenuModel
+// PermissionMenuButton
///////////////////////////////////////////////////////////////////////////////
PermissionMenuButton::PermissionMenuButton(const string16& text,
@@ -170,6 +176,27 @@ PermissionMenuButton::PermissionMenuButton(const string16& text,
PermissionMenuButton::~PermissionMenuButton() {
}
+gfx::Size PermissionMenuButton::GetPreferredSize() {
+ gfx::Insets insets = GetInsets();
+ // Scale the button to the current text size.
+ gfx::Size prefsize(text_size_.width() + insets.width(),
+ text_size_.height() + insets.height());
+ if (max_width_ > 0)
+ prefsize.set_width(std::min(max_width_, prefsize.width()));
+ if (show_menu_marker()) {
+ prefsize.Enlarge(menu_marker()->width() +
+ views::MenuButton::kMenuMarkerPaddingLeft +
+ views::MenuButton::kMenuMarkerPaddingRight,
+ 0);
+ }
+ return prefsize;
+}
+
+void PermissionMenuButton::SetText(const string16& text) {
+ MenuButton::SetText(text);
+ SizeToPreferredSize();
+}
+
void PermissionMenuButton::OnMenuButtonClicked(View* source,
const gfx::Point& point) {
views::MenuModelAdapter menu_model_adapter(menu_model_);
@@ -286,5 +313,14 @@ ContentSettingsType PermissionSelectorView::GetPermissionType() const {
return menu_button_model_->site_permission();
}
+void PermissionSelectorView::ChildPreferredSizeChanged(View* child) {
+ SizeToPreferredSize();
+ // FIXME: The parent is only a plain |View| that is used as a
+ // container/box/panel. The SizeToPreferredSize method of the parent is
+ // called here directly in order not to implement a custom |View| class with
+ // its own implementation of the ChildPreferredSizeChanged method.
+ parent()->SizeToPreferredSize();
+}
+
PermissionSelectorView::~PermissionSelectorView() {
}
« no previous file with comments | « chrome/browser/ui/views/website_settings/permission_selector_view.h ('k') | ui/views/controls/button/menu_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698