Chromium Code Reviews| 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 |