OLD | NEW |
---|---|
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/glue/webthemeengine_impl_linux.h" | 5 #include "webkit/glue/webthemeengine_impl_linux.h" |
6 | 6 |
7 #include "gfx/native_theme_linux.h" | 7 #include "gfx/native_theme_linux.h" |
8 #include "skia/ext/platform_canvas.h" | 8 #include "skia/ext/platform_canvas.h" |
9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h" | 9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebRect.h" |
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSize.h" | 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSize.h" |
(...skipping 20 matching lines...) Expand all Loading... | |
31 case WebKit::WebThemeEngine::PartScrollbarUpArrow: | 31 case WebKit::WebThemeEngine::PartScrollbarUpArrow: |
32 return gfx::NativeThemeLinux::kScrollbarUpArrow; | 32 return gfx::NativeThemeLinux::kScrollbarUpArrow; |
33 case WebKit::WebThemeEngine::PartScrollbarHorizontalThumb: | 33 case WebKit::WebThemeEngine::PartScrollbarHorizontalThumb: |
34 return gfx::NativeThemeLinux::kScrollbarHorizontalThumb; | 34 return gfx::NativeThemeLinux::kScrollbarHorizontalThumb; |
35 case WebKit::WebThemeEngine::PartScrollbarVerticalThumb: | 35 case WebKit::WebThemeEngine::PartScrollbarVerticalThumb: |
36 return gfx::NativeThemeLinux::kScrollbarVerticalThumb; | 36 return gfx::NativeThemeLinux::kScrollbarVerticalThumb; |
37 case WebKit::WebThemeEngine::PartScrollbarHorizontalTrack: | 37 case WebKit::WebThemeEngine::PartScrollbarHorizontalTrack: |
38 return gfx::NativeThemeLinux::kScrollbarHorizontalTrack; | 38 return gfx::NativeThemeLinux::kScrollbarHorizontalTrack; |
39 case WebKit::WebThemeEngine::PartScrollbarVerticalTrack: | 39 case WebKit::WebThemeEngine::PartScrollbarVerticalTrack: |
40 return gfx::NativeThemeLinux::kScrollbarVerticalTrack; | 40 return gfx::NativeThemeLinux::kScrollbarVerticalTrack; |
41 case WebKit::WebThemeEngine::PartCheckbox: | |
42 return gfx::NativeThemeLinux::kCheckbox; | |
43 case WebKit::WebThemeEngine::PartRadio: | |
44 return gfx::NativeThemeLinux::kRadio; | |
45 case WebKit::WebThemeEngine::PartButton: | |
46 return gfx::NativeThemeLinux::kPushButton; | |
47 case WebKit::WebThemeEngine::PartTextField: | |
48 return gfx::NativeThemeLinux::kTextField; | |
49 case WebKit::WebThemeEngine::PartMenuList: | |
50 return gfx::NativeThemeLinux::kMenuList; | |
51 case WebKit::WebThemeEngine::PartSliderTrack: | |
52 return gfx::NativeThemeLinux::kSliderTrack; | |
53 case WebKit::WebThemeEngine::PartSliderThumb: | |
54 return gfx::NativeThemeLinux::kSliderThumb; | |
55 case WebKit::WebThemeEngine::PartInnerSpinButton: | |
56 return gfx::NativeThemeLinux::kInnerSpinButton; | |
57 case WebKit::WebThemeEngine::PartProgressBar: | |
58 return gfx::NativeThemeLinux::kProgressBar; | |
41 default: | 59 default: |
42 return gfx::NativeThemeLinux::kScrollbarDownArrow; | 60 return gfx::NativeThemeLinux::kScrollbarDownArrow; |
43 } | 61 } |
44 } | 62 } |
45 | 63 |
46 static gfx::NativeThemeLinux::State NativeThemeState( | 64 static gfx::NativeThemeLinux::State NativeThemeState( |
47 WebKit::WebThemeEngine::State state) { | 65 WebKit::WebThemeEngine::State state) { |
48 switch (state) { | 66 switch (state) { |
49 case WebKit::WebThemeEngine::StateDisabled: | 67 case WebKit::WebThemeEngine::StateDisabled: |
50 return gfx::NativeThemeLinux::kDisabled; | 68 return gfx::NativeThemeLinux::kDisabled; |
(...skipping 16 matching lines...) Expand all Loading... | |
67 if (part == WebKit::WebThemeEngine::PartScrollbarHorizontalTrack || | 85 if (part == WebKit::WebThemeEngine::PartScrollbarHorizontalTrack || |
68 part == WebKit::WebThemeEngine::PartScrollbarVerticalTrack) { | 86 part == WebKit::WebThemeEngine::PartScrollbarVerticalTrack) { |
69 native_theme_extra_params->scrollbar_track.track_x = | 87 native_theme_extra_params->scrollbar_track.track_x = |
70 extra_params->scrollbarTrack.trackX; | 88 extra_params->scrollbarTrack.trackX; |
71 native_theme_extra_params->scrollbar_track.track_y = | 89 native_theme_extra_params->scrollbar_track.track_y = |
72 extra_params->scrollbarTrack.trackY; | 90 extra_params->scrollbarTrack.trackY; |
73 native_theme_extra_params->scrollbar_track.track_width = | 91 native_theme_extra_params->scrollbar_track.track_width = |
74 extra_params->scrollbarTrack.trackWidth; | 92 extra_params->scrollbarTrack.trackWidth; |
75 native_theme_extra_params->scrollbar_track.track_height = | 93 native_theme_extra_params->scrollbar_track.track_height = |
76 extra_params->scrollbarTrack.trackHeight; | 94 extra_params->scrollbarTrack.trackHeight; |
95 } else if (part == WebKit::WebThemeEngine::PartCheckbox) { | |
tony
2011/01/18 22:39:19
Should this be a switch instead of if/else if?
xiyuan
2011/01/19 19:06:42
Done.
| |
96 native_theme_extra_params->button.checked = extra_params->button.checked; | |
97 native_theme_extra_params->button.indeterminate = | |
98 extra_params->button.indeterminate; | |
99 } else if (part == WebKit::WebThemeEngine::PartRadio) { | |
100 native_theme_extra_params->button.checked = extra_params->button.checked; | |
101 } else if (part == WebKit::WebThemeEngine::PartButton) { | |
102 native_theme_extra_params->button.is_default = | |
103 extra_params->button.isDefault; | |
104 native_theme_extra_params->button.background_color = | |
105 extra_params->button.backgroundColor; | |
106 } else if (part == WebKit::WebThemeEngine::PartTextField) { | |
107 native_theme_extra_params->text_field.is_text_area = | |
108 extra_params->textField.isTextArea; | |
109 native_theme_extra_params->text_field.is_listbox = | |
110 extra_params->textField.isListbox; | |
111 native_theme_extra_params->text_field.background_color = | |
112 extra_params->textField.backgroundColor; | |
113 } else if (part == WebKit::WebThemeEngine::PartMenuList) { | |
114 native_theme_extra_params->menu_list.arrow_x = | |
115 extra_params->menuList.arrowX; | |
116 native_theme_extra_params->menu_list.arrow_y = | |
117 extra_params->menuList.arrowY; | |
118 native_theme_extra_params->menu_list.background_color = | |
119 extra_params->menuList.backgroundColor; | |
120 } else if (part == WebKit::WebThemeEngine::PartSliderTrack || | |
121 part == WebKit::WebThemeEngine::PartSliderThumb) { | |
122 native_theme_extra_params->slider.vertical = extra_params->slider.vertical; | |
123 native_theme_extra_params->slider.in_drag = extra_params->slider.inDrag; | |
124 } else if (part == WebKit::WebThemeEngine::PartInnerSpinButton) { | |
125 native_theme_extra_params->inner_spin.spin_up = | |
126 extra_params->innerSpin.spinUp; | |
127 native_theme_extra_params->inner_spin.read_only = | |
128 extra_params->innerSpin.readOnly; | |
129 } else if (part == WebKit::WebThemeEngine::PartProgressBar) { | |
130 native_theme_extra_params->progress_bar.determinate = | |
131 extra_params->progressBar.determinate; | |
132 native_theme_extra_params->progress_bar.value_rect_x = | |
133 extra_params->progressBar.valueRectX; | |
134 native_theme_extra_params->progress_bar.value_rect_y = | |
135 extra_params->progressBar.valueRectY; | |
136 native_theme_extra_params->progress_bar.value_rect_width = | |
137 extra_params->progressBar.valueRectWidth; | |
138 native_theme_extra_params->progress_bar.value_rect_height = | |
139 extra_params->progressBar.valueRectHeight; | |
77 } | 140 } |
78 } | 141 } |
79 | 142 |
80 WebKit::WebSize WebThemeEngineImpl::getSize(WebKit::WebThemeEngine::Part part) { | 143 WebKit::WebSize WebThemeEngineImpl::getSize(WebKit::WebThemeEngine::Part part) { |
81 return gfx::NativeThemeLinux::instance()->GetSize(NativeThemePart(part)); | 144 return gfx::NativeThemeLinux::instance()->GetSize(NativeThemePart(part)); |
82 } | 145 } |
83 | 146 |
84 void WebThemeEngineImpl::paint( | 147 void WebThemeEngineImpl::paint( |
85 WebKit::WebCanvas* canvas, | 148 WebKit::WebCanvas* canvas, |
86 WebKit::WebThemeEngine::Part part, | 149 WebKit::WebThemeEngine::Part part, |
87 WebKit::WebThemeEngine::State state, | 150 WebKit::WebThemeEngine::State state, |
88 const WebKit::WebRect& rect, | 151 const WebKit::WebRect& rect, |
89 const WebKit::WebThemeEngine::ExtraParams* extra_params) { | 152 const WebKit::WebThemeEngine::ExtraParams* extra_params) { |
90 gfx::NativeThemeLinux::ExtraParams native_theme_extra_params; | 153 gfx::NativeThemeLinux::ExtraParams native_theme_extra_params; |
91 GetNativeThemeExtraParams( | 154 GetNativeThemeExtraParams( |
92 part, state, extra_params, &native_theme_extra_params); | 155 part, state, extra_params, &native_theme_extra_params); |
93 gfx::NativeThemeLinux::instance()->Paint( | 156 gfx::NativeThemeLinux::instance()->Paint( |
94 canvas, | 157 canvas, |
95 NativeThemePart(part), | 158 NativeThemePart(part), |
96 NativeThemeState(state), | 159 NativeThemeState(state), |
97 WebRectToRect(rect), | 160 WebRectToRect(rect), |
98 native_theme_extra_params); | 161 native_theme_extra_params); |
99 } | 162 } |
100 } // namespace webkit_glue | 163 } // namespace webkit_glue |
OLD | NEW |