Index: gfx/native_theme_linux.h |
diff --git a/gfx/native_theme_linux.h b/gfx/native_theme_linux.h |
index 4a79da31dc7fd576f04cef604e3455a304e1bb1c..593c5a5a99fb98ce3aaebf42d57c51c05b600b65 100644 |
--- a/gfx/native_theme_linux.h |
+++ b/gfx/native_theme_linux.h |
@@ -28,7 +28,16 @@ class NativeThemeLinux { |
kScrollbarHorizontalThumb, |
kScrollbarVerticalThumb, |
kScrollbarHorizontalTrack, |
- kScrollbarVerticalTrack |
+ kScrollbarVerticalTrack, |
+ kCheckbox, |
+ kRadio, |
+ kPushButton, |
+ kTextField, |
+ kMenuList, |
+ kSliderTrack, |
+ kSliderThumb, |
+ kInnerSpinButton, |
+ kProgressBar, |
}; |
// The state of the part. |
@@ -47,8 +56,51 @@ class NativeThemeLinux { |
int track_height; |
}; |
+ struct ButtonExtraParams { |
+ bool checked; |
+ bool indeterminate; // Whether the button state is indeterminate. |
+ bool is_default; // Whether the button is default button. |
DaveMoore
2011/01/19 17:04:13
Nit: Line up the comments
xiyuan
2011/01/19 19:06:42
Done.
|
+ SkColor background_color; |
+ }; |
+ |
+ struct TextFieldExtraParams { |
+ bool is_text_area; |
+ bool is_listbox; |
+ SkColor background_color; |
+ }; |
+ |
+ struct MenuListExtraParams { |
+ int arrow_x; |
+ int arrow_y; |
+ SkColor background_color; |
+ }; |
+ |
+ struct SliderExtraParams { |
+ bool vertical; |
+ bool in_drag; |
+ }; |
+ |
+ struct InnerSpinButtonExtraParams { |
+ bool spin_up; |
+ bool read_only; |
+ }; |
+ |
+ struct ProgressBarExtraParams { |
+ bool determinate; |
+ int value_rect_x; |
+ int value_rect_y; |
+ int value_rect_width; |
+ int value_rect_height; |
+ }; |
+ |
union ExtraParams { |
ScrollbarTrackExtraParams scrollbar_track; |
+ ButtonExtraParams button; |
+ MenuListExtraParams menu_list; |
+ SliderExtraParams slider; |
+ TextFieldExtraParams text_field; |
+ InnerSpinButtonExtraParams inner_spin; |
+ ProgressBarExtraParams progress_bar; |
}; |
// Gets our singleton instance. |
@@ -88,6 +140,62 @@ class NativeThemeLinux { |
Part part, |
State state, |
const gfx::Rect& rect); |
+ // Draw the checkbox. |
+ virtual void PaintCheckbox(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const ButtonExtraParams& button); |
+ // Draw the radio. |
+ virtual void PaintRadio(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const ButtonExtraParams& button); |
+ // Draw the push button. |
+ virtual void PaintButton(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const ButtonExtraParams& button); |
+ // Draw the text field. |
+ virtual void PaintTextField(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const TextFieldExtraParams& text); |
+ // Draw the menu list. |
+ virtual void PaintMenuList(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const MenuListExtraParams& menu_list); |
+ // Draw the slider track. |
+ virtual void PaintSliderTrack(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const SliderExtraParams& slider); |
+ // Draw the slider thumb. |
+ virtual void PaintSliderThumb(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const SliderExtraParams& slider); |
+ // Draw the inner spin button. |
+ virtual void PaintInnerSpinButton(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const InnerSpinButtonExtraParams& spin_button); |
+ // Draw the progress bar. |
+ virtual void PaintProgressBar(skia::PlatformCanvas* canvas, |
+ State state, |
+ const gfx::Rect& rect, |
+ const ProgressBarExtraParams& progress_bar); |
+ |
+ protected: |
+ void DrawTiledImage(SkCanvas* canvas, |
+ const SkBitmap& bitmap, |
+ int src_x, int src_y, |
+ double tile_scale_x, double tile_scale_y, |
+ int dest_x, int dest_y, int w, int h) const; |
+ |
+ SkColor SaturateAndBrighten(SkScalar* hsv, |
+ SkScalar saturate_amount, |
+ SkScalar brighten_amount) const; |
private: |
void DrawVertLine(SkCanvas* canvas, |
@@ -106,9 +214,6 @@ class NativeThemeLinux { |
SkScalar Clamp(SkScalar value, |
SkScalar min, |
SkScalar max) const; |
- SkColor SaturateAndBrighten(SkScalar* hsv, |
- SkScalar saturate_amount, |
- SkScalar brighten_amount) const; |
SkColor OutlineColor(SkScalar* hsv1, SkScalar* hsv2) const; |
static unsigned int scrollbar_width_; |