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

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: " 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..7f3a36b227d40c1984392574aad5d1eebbdc8672 100644
--- a/chrome/browser/ui/views/website_settings/permission_selector_view.cc
+++ b/chrome/browser/ui/views/website_settings/permission_selector_view.cc
@@ -22,9 +22,9 @@
namespace {
// Left icon margin.
-const int kPermissionIconMarginLeft = 6;
+static const int kPermissionIconMarginLeft = 6;
msw 2012/07/30 15:48:42 nit: you don't have to explicitly mark these two a
markusheintz_ 2012/07/30 16:32:06 Done.
// The width of the column that contains the permissions icons.
-const int kPermissionIconColumnWidth = 20;
+static const int kPermissionIconColumnWidth = 20;
// An array with |ContentSetting|s ordered by CommandID. The array is used to
// lookup a content setting for a given command id.
@@ -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 +
msw 2012/07/30 15:48:42 nit: Should these indent to match the paren above?
markusheintz_ 2012/07/30 16:32:06 I'm not sure either. I copied that style from menu
+ 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() {
}

Powered by Google App Engine
This is Rietveld 408576698