Index: chrome/browser/gtk/custom_button.h |
diff --git a/chrome/browser/gtk/custom_button.h b/chrome/browser/gtk/custom_button.h |
index 0e54732505ad42a03d628bde5ed4717a981a9507..143a090d2ced55e98722047de8853626e882585a 100644 |
--- a/chrome/browser/gtk/custom_button.h |
+++ b/chrome/browser/gtk/custom_button.h |
@@ -45,7 +45,8 @@ class CustomDrawButtonBase { |
}; |
// CustomDrawButton is a plain button where all its various states are drawn |
-// with static images. |
+// with static images. In GTK rendering mode, it will show the standard button |
+// with GTK |stock_id|. |
class CustomDrawButton { |
public: |
// The constructor takes 4 resource ids. If a resource doesn't exist for a |
@@ -53,7 +54,8 @@ class CustomDrawButton { |
CustomDrawButton(int normal_id, |
int active_id, |
int highlight_id, |
- int depressed_id); |
+ int depressed_id, |
+ const char* stock_id); |
explicit CustomDrawButton(const std::string& filename); |
~CustomDrawButton(); |
@@ -69,6 +71,12 @@ class CustomDrawButton { |
int width() const { return widget_->allocation.width; } |
int height() const { return widget_->allocation.height; } |
+ // Sets properties on the GtkButton returned by widget(). By default, the |
+ // button is very boring. This will either give it an image from the |
+ // |gtk_stock_name_| if |use_gtk| is true or will use the chrome frame |
+ // images. |
+ void SetUseSystemTheme(bool use_gtk); |
+ |
// Set the state to draw. We will paint the widget as if it were in this |
// state. |
void SetPaintOverride(GtkStateType state); |
@@ -80,16 +88,22 @@ class CustomDrawButton { |
static CustomDrawButton* CloseButton(); |
private: |
- // Callback for expose, used to draw the custom graphics. |
- static gboolean OnExpose(GtkWidget* widget, |
- GdkEventExpose* e, |
- CustomDrawButton* obj); |
+ // Callback for custom button expose, used to draw the custom graphics. |
+ static gboolean OnCustomExpose(GtkWidget* widget, |
+ GdkEventExpose* e, |
+ CustomDrawButton* obj); |
// The actual button widget. |
OwnedWidgetGtk widget_; |
CustomDrawButtonBase button_base_; |
+ // The stock icon name. |
+ const char* gtk_stock_name_; |
+ |
+ // Whether we have an expose signal handler we may need to remove. |
+ bool has_expose_signal_handler_; |
+ |
DISALLOW_COPY_AND_ASSIGN(CustomDrawButton); |
}; |