Index: ui/views/controls/button/label_button.h |
diff --git a/ui/views/controls/button/label_button.h b/ui/views/controls/button/label_button.h |
index bceaf715654a99e288ae0f677d463a2c16a5d6de..5e730caaf93196c6621f98a303029c7dbddc1f65 100644 |
--- a/ui/views/controls/button/label_button.h |
+++ b/ui/views/controls/button/label_button.h |
@@ -65,9 +65,9 @@ class VIEWS_EXPORT LabelButton : public CustomButton, |
gfx::HorizontalAlignment GetHorizontalAlignment() const; |
void SetHorizontalAlignment(gfx::HorizontalAlignment alignment); |
- // Call set_min_size(gfx::Size()) to clear the monotonically increasing size. |
- void set_min_size(const gfx::Size& min_size) { min_size_ = min_size; } |
- void set_max_size(const gfx::Size& max_size) { max_size_ = max_size; } |
+ // Call SetMinSize(gfx::Size()) to clear the monotonically increasing size. |
+ void SetMinSize(const gfx::Size& min_size); |
+ void SetMaxSize(const gfx::Size& max_size); |
// Get or set the option to handle the return key; false by default. |
bool is_default() const { return is_default_; } |
@@ -144,6 +144,10 @@ class VIEWS_EXPORT LabelButton : public CustomButton, |
virtual ui::NativeTheme::State GetForegroundThemeState( |
ui::NativeTheme::ExtraParams* params) const OVERRIDE; |
+ // Resets |cached_preferred_size_| and marks |cached_preferred_size_valid_| |
+ // as false. |
+ void ResetCachedPreferredSize(); |
+ |
// The image and label shown in the button. |
ImageView* image_; |
Label* label_; |
@@ -164,6 +168,10 @@ class VIEWS_EXPORT LabelButton : public CustomButton, |
// |max_size_| may be set to clamp the preferred size. |
gfx::Size max_size_; |
+ // Cache the last computed preferred size. |
+ mutable gfx::Size cached_preferred_size_; |
+ mutable bool cached_preferred_size_valid_; |
+ |
// Flag indicating default handling of the return key via an accelerator. |
// Whether or not the button appears or behaves as the default button in its |
// current context; |