|
Lines 28-40
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec1
|
| 28 |
#include "CSSValueKeywords.h" |
28 |
#include "CSSValueKeywords.h" |
| 29 |
#include "Color.h" |
29 |
#include "Color.h" |
| 30 |
#include "PaintInfo.h" |
30 |
#include "PaintInfo.h" |
| 31 |
#include "PlatformSupport.h" |
31 |
#include "PlatformContextSkia.h" |
| 32 |
#include "RenderObject.h" |
32 |
#include "RenderObject.h" |
| 33 |
#include "RenderProgress.h" |
33 |
#include "RenderProgress.h" |
| 34 |
#include "RenderSlider.h" |
34 |
#include "RenderSlider.h" |
| 35 |
#include "ScrollbarTheme.h" |
35 |
#include "ScrollbarTheme.h" |
| 36 |
#include "UserAgentStyleSheets.h" |
36 |
#include "UserAgentStyleSheets.h" |
| 37 |
|
37 |
|
|
|
38 |
#include <public/Platform.h> |
| 39 |
#include <public/WebRect.h> |
| 40 |
#include <public/linux/WebThemeEngine.h> |
| 41 |
|
| 38 |
namespace WebCore { |
42 |
namespace WebCore { |
| 39 |
|
43 |
|
| 40 |
unsigned RenderThemeChromiumLinux::m_activeSelectionBackgroundColor = |
44 |
unsigned RenderThemeChromiumLinux::m_activeSelectionBackgroundColor = |
|
Lines 50-68
double RenderThemeChromiumLinux::m_caret
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec2
|
| 50 |
|
54 |
|
| 51 |
static const unsigned defaultButtonBackgroundColor = 0xffdddddd; |
55 |
static const unsigned defaultButtonBackgroundColor = 0xffdddddd; |
| 52 |
|
56 |
|
| 53 |
static PlatformSupport::ThemePaintState getWebThemeState(const RenderTheme* theme, const RenderObject* o) |
57 |
static WebKit::WebThemeEngine::State getWebThemeState(const RenderTheme* theme, const RenderObject* o) |
| 54 |
{ |
58 |
{ |
| 55 |
if (!theme->isEnabled(o)) |
59 |
if (!theme->isEnabled(o)) |
| 56 |
return PlatformSupport::StateDisabled; |
60 |
return WebKit::WebThemeEngine::StateDisabled; |
| 57 |
if (theme->isPressed(o)) |
61 |
if (theme->isPressed(o)) |
| 58 |
return PlatformSupport::StatePressed; |
62 |
return WebKit::WebThemeEngine::StatePressed; |
| 59 |
if (theme->isHovered(o)) |
63 |
if (theme->isHovered(o)) |
| 60 |
return PlatformSupport::StateHover; |
64 |
return WebKit::WebThemeEngine::StateHover; |
| 61 |
|
65 |
|
| 62 |
return PlatformSupport::StateNormal; |
66 |
return WebKit::WebThemeEngine::StateNormal; |
| 63 |
} |
67 |
} |
| 64 |
|
68 |
|
| 65 |
|
|
|
| 66 |
PassRefPtr<RenderTheme> RenderThemeChromiumLinux::create() |
69 |
PassRefPtr<RenderTheme> RenderThemeChromiumLinux::create() |
| 67 |
{ |
70 |
{ |
| 68 |
return adoptRef(new RenderThemeChromiumLinux()); |
71 |
return adoptRef(new RenderThemeChromiumLinux()); |
|
Lines 160-166
int RenderThemeChromiumLinux::sliderTick
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec3
|
| 160 |
|
163 |
|
| 161 |
void RenderThemeChromiumLinux::adjustSliderThumbSize(RenderStyle* style, Element* element) const |
164 |
void RenderThemeChromiumLinux::adjustSliderThumbSize(RenderStyle* style, Element* element) const |
| 162 |
{ |
165 |
{ |
| 163 |
IntSize size = PlatformSupport::getThemePartSize(PlatformSupport::PartSliderThumb); |
166 |
IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartSliderThumb); |
| 164 |
|
167 |
|
| 165 |
if (style->appearance() == SliderThumbHorizontalPart) { |
168 |
if (style->appearance() == SliderThumbHorizontalPart) { |
| 166 |
style->setWidth(Length(size.width(), Fixed)); |
169 |
style->setWidth(Length(size.width(), Fixed)); |
|
Lines 201-211
void RenderThemeChromiumLinux::setSelect
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec4
|
| 201 |
|
204 |
|
| 202 |
bool RenderThemeChromiumLinux::paintCheckbox(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
205 |
bool RenderThemeChromiumLinux::paintCheckbox(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 203 |
{ |
206 |
{ |
| 204 |
PlatformSupport::ThemePaintExtraParams extraParams; |
207 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
208 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 205 |
extraParams.button.checked = isChecked(o); |
209 |
extraParams.button.checked = isChecked(o); |
| 206 |
extraParams.button.indeterminate = isIndeterminate(o); |
210 |
extraParams.button.indeterminate = isIndeterminate(o); |
| 207 |
|
211 |
|
| 208 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartCheckbox, getWebThemeState(this, o), rect, &extraParams); |
212 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
213 |
canvas, |
| 214 |
WebKit::WebThemeEngine::PartCheckbox, |
| 215 |
getWebThemeState(this, o), |
| 216 |
WebKit::WebRect(rect), |
| 217 |
&extraParams); |
| 209 |
return false; |
218 |
return false; |
| 210 |
} |
219 |
} |
| 211 |
|
220 |
|
|
Lines 215-230
void RenderThemeChromiumLinux::setCheckb
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec5
|
| 215 |
if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) |
224 |
if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) |
| 216 |
return; |
225 |
return; |
| 217 |
|
226 |
|
| 218 |
IntSize size = PlatformSupport::getThemePartSize(PlatformSupport::PartCheckbox); |
227 |
IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartCheckbox); |
| 219 |
setSizeIfAuto(style, size); |
228 |
setSizeIfAuto(style, size); |
| 220 |
} |
229 |
} |
| 221 |
|
230 |
|
| 222 |
bool RenderThemeChromiumLinux::paintRadio(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
231 |
bool RenderThemeChromiumLinux::paintRadio(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 223 |
{ |
232 |
{ |
| 224 |
PlatformSupport::ThemePaintExtraParams extraParams; |
233 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
234 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 225 |
extraParams.button.checked = isChecked(o); |
235 |
extraParams.button.checked = isChecked(o); |
| 226 |
|
236 |
|
| 227 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartRadio, getWebThemeState(this, o), rect, &extraParams); |
237 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
238 |
canvas, |
| 239 |
WebKit::WebThemeEngine::PartRadio, |
| 240 |
getWebThemeState(this, o), |
| 241 |
WebKit::WebRect(rect), |
| 242 |
&extraParams); |
| 228 |
return false; |
243 |
return false; |
| 229 |
} |
244 |
} |
| 230 |
|
245 |
|
|
Lines 234-253
void RenderThemeChromiumLinux::setRadioS
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec6
|
| 234 |
if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) |
249 |
if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto()) |
| 235 |
return; |
250 |
return; |
| 236 |
|
251 |
|
| 237 |
IntSize size = PlatformSupport::getThemePartSize(PlatformSupport::PartRadio); |
252 |
IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartRadio); |
| 238 |
setSizeIfAuto(style, size); |
253 |
setSizeIfAuto(style, size); |
| 239 |
} |
254 |
} |
| 240 |
|
255 |
|
| 241 |
bool RenderThemeChromiumLinux::paintButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
256 |
bool RenderThemeChromiumLinux::paintButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 242 |
{ |
257 |
{ |
| 243 |
PlatformSupport::ThemePaintExtraParams extraParams; |
258 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
259 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 244 |
extraParams.button.isDefault = isDefault(o); |
260 |
extraParams.button.isDefault = isDefault(o); |
| 245 |
extraParams.button.hasBorder = true; |
261 |
extraParams.button.hasBorder = true; |
| 246 |
extraParams.button.backgroundColor = defaultButtonBackgroundColor; |
262 |
extraParams.button.backgroundColor = defaultButtonBackgroundColor; |
| 247 |
if (o->hasBackground()) |
263 |
if (o->hasBackground()) |
| 248 |
extraParams.button.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb(); |
264 |
extraParams.button.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb(); |
| 249 |
|
265 |
|
| 250 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartButton, getWebThemeState(this, o), rect, &extraParams); |
266 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
267 |
canvas, |
| 268 |
WebKit::WebThemeEngine::PartButton, |
| 269 |
getWebThemeState(this, o), |
| 270 |
WebKit::WebRect(rect), |
| 271 |
&extraParams); |
| 251 |
return false; |
272 |
return false; |
| 252 |
} |
273 |
} |
| 253 |
|
274 |
|
|
Lines 260-276
bool RenderThemeChromiumLinux::paintText
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec7
|
| 260 |
|
281 |
|
| 261 |
ControlPart part = o->style()->appearance(); |
282 |
ControlPart part = o->style()->appearance(); |
| 262 |
|
283 |
|
| 263 |
PlatformSupport::ThemePaintExtraParams extraParams; |
284 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
| 264 |
extraParams.textField.isTextArea = part == TextAreaPart; |
285 |
extraParams.textField.isTextArea = part == TextAreaPart; |
| 265 |
extraParams.textField.isListbox = part == ListboxPart; |
286 |
extraParams.textField.isListbox = part == ListboxPart; |
| 266 |
|
287 |
|
|
|
288 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 289 |
|
| 267 |
// Fallback to white if the specified color object is invalid. |
290 |
// Fallback to white if the specified color object is invalid. |
| 268 |
Color backgroundColor(Color::white); |
291 |
Color backgroundColor(Color::white); |
| 269 |
if (o->style()->visitedDependentColor(CSSPropertyBackgroundColor).isValid()) |
292 |
if (o->style()->visitedDependentColor(CSSPropertyBackgroundColor).isValid()) |
| 270 |
backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor); |
293 |
backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor); |
| 271 |
extraParams.textField.backgroundColor = backgroundColor.rgb(); |
294 |
extraParams.textField.backgroundColor = backgroundColor.rgb(); |
| 272 |
|
295 |
|
| 273 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartTextField, getWebThemeState(this, o), rect, &extraParams); |
296 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
297 |
canvas, |
| 298 |
WebKit::WebThemeEngine::PartTextField, |
| 299 |
getWebThemeState(this, o), |
| 300 |
WebKit::WebRect(rect), |
| 301 |
&extraParams); |
| 274 |
return false; |
302 |
return false; |
| 275 |
} |
303 |
} |
| 276 |
|
304 |
|
|
Lines 282-288
bool RenderThemeChromiumLinux::paintMenu
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec8
|
| 282 |
const int right = rect.x() + rect.width(); |
310 |
const int right = rect.x() + rect.width(); |
| 283 |
const int middle = rect.y() + rect.height() / 2; |
311 |
const int middle = rect.y() + rect.height() / 2; |
| 284 |
|
312 |
|
| 285 |
PlatformSupport::ThemePaintExtraParams extraParams; |
313 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
| 286 |
extraParams.menuList.arrowX = (o->style()->direction() == RTL) ? rect.x() + 7 : right - 13; |
314 |
extraParams.menuList.arrowX = (o->style()->direction() == RTL) ? rect.x() + 7 : right - 13; |
| 287 |
extraParams.menuList.arrowY = middle; |
315 |
extraParams.menuList.arrowY = middle; |
| 288 |
const RenderBox* box = toRenderBox(o); |
316 |
const RenderBox* box = toRenderBox(o); |
|
Lines 294-309
bool RenderThemeChromiumLinux::paintMenu
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec9
|
| 294 |
if (o->hasBackground()) |
322 |
if (o->hasBackground()) |
| 295 |
extraParams.menuList.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb(); |
323 |
extraParams.menuList.backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroundColor).rgb(); |
| 296 |
|
324 |
|
| 297 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartMenuList, getWebThemeState(this, o), rect, &extraParams); |
325 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
|
|
326 |
|
| 327 |
WebKit::Platform::current()->themeEngine()->paint( |
| 328 |
canvas, |
| 329 |
WebKit::WebThemeEngine::PartMenuList, |
| 330 |
getWebThemeState(this, o), |
| 331 |
WebKit::WebRect(rect), |
| 332 |
&extraParams); |
| 298 |
return false; |
333 |
return false; |
| 299 |
} |
334 |
} |
| 300 |
|
335 |
|
| 301 |
bool RenderThemeChromiumLinux::paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
336 |
bool RenderThemeChromiumLinux::paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 302 |
{ |
337 |
{ |
| 303 |
PlatformSupport::ThemePaintExtraParams extraParams; |
338 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
339 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 304 |
extraParams.slider.vertical = o->style()->appearance() == SliderVerticalPart; |
340 |
extraParams.slider.vertical = o->style()->appearance() == SliderVerticalPart; |
| 305 |
|
341 |
|
| 306 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartSliderTrack, getWebThemeState(this, o), rect, &extraParams); |
342 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
343 |
canvas, |
| 344 |
WebKit::WebThemeEngine::PartSliderTrack, |
| 345 |
getWebThemeState(this, o), |
| 346 |
WebKit::WebRect(rect), |
| 347 |
&extraParams); |
| 307 |
|
348 |
|
| 308 |
#if ENABLE(DATALIST_ELEMENT) |
349 |
#if ENABLE(DATALIST_ELEMENT) |
| 309 |
paintSliderTicks(o, i, rect); |
350 |
paintSliderTicks(o, i, rect); |
|
Lines 314-330
bool RenderThemeChromiumLinux::paintSlid
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec10
|
| 314 |
|
355 |
|
| 315 |
bool RenderThemeChromiumLinux::paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
356 |
bool RenderThemeChromiumLinux::paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 316 |
{ |
357 |
{ |
| 317 |
PlatformSupport::ThemePaintExtraParams extraParams; |
358 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
359 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 318 |
extraParams.slider.vertical = o->style()->appearance() == SliderThumbVerticalPart; |
360 |
extraParams.slider.vertical = o->style()->appearance() == SliderThumbVerticalPart; |
| 319 |
extraParams.slider.inDrag = isPressed(o); |
361 |
extraParams.slider.inDrag = isPressed(o); |
| 320 |
|
362 |
|
| 321 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartSliderThumb, getWebThemeState(this, o), rect, &extraParams); |
363 |
WebKit::Platform::current()->themeEngine()->paint(canvas, |
|
|
364 |
WebKit::WebThemeEngine::PartSliderThumb, |
| 365 |
getWebThemeState(this, o), |
| 366 |
WebKit::WebRect(rect), |
| 367 |
&extraParams); |
| 322 |
return false; |
368 |
return false; |
| 323 |
} |
369 |
} |
| 324 |
|
370 |
|
| 325 |
void RenderThemeChromiumLinux::adjustInnerSpinButtonStyle(StyleResolver*, RenderStyle* style, Element*) const |
371 |
void RenderThemeChromiumLinux::adjustInnerSpinButtonStyle(StyleResolver*, RenderStyle* style, Element*) const |
| 326 |
{ |
372 |
{ |
| 327 |
IntSize size = PlatformSupport::getThemePartSize(PlatformSupport::PartInnerSpinButton); |
373 |
IntSize size = WebKit::Platform::current()->themeEngine()->getSize(WebKit::WebThemeEngine::PartInnerSpinButton); |
| 328 |
|
374 |
|
| 329 |
style->setWidth(Length(size.width(), Fixed)); |
375 |
style->setWidth(Length(size.width(), Fixed)); |
| 330 |
style->setMinWidth(Length(size.width(), Fixed)); |
376 |
style->setMinWidth(Length(size.width(), Fixed)); |
|
Lines 332-342
void RenderThemeChromiumLinux::adjustInn
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec11
|
| 332 |
|
378 |
|
| 333 |
bool RenderThemeChromiumLinux::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
379 |
bool RenderThemeChromiumLinux::paintInnerSpinButton(RenderObject* o, const PaintInfo& i, const IntRect& rect) |
| 334 |
{ |
380 |
{ |
| 335 |
PlatformSupport::ThemePaintExtraParams extraParams; |
381 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
|
|
382 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
| 336 |
extraParams.innerSpin.spinUp = (controlStatesForRenderer(o) & SpinUpState); |
383 |
extraParams.innerSpin.spinUp = (controlStatesForRenderer(o) & SpinUpState); |
| 337 |
extraParams.innerSpin.readOnly = isReadOnlyControl(o); |
384 |
extraParams.innerSpin.readOnly = isReadOnlyControl(o); |
| 338 |
|
385 |
|
| 339 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartInnerSpinButton, getWebThemeState(this, o), rect, &extraParams); |
386 |
WebKit::Platform::current()->themeEngine()->paint( |
|
|
387 |
canvas, |
| 388 |
WebKit::WebThemeEngine::PartInnerSpinButton, |
| 389 |
getWebThemeState(this, o), |
| 390 |
WebKit::WebRect(rect), |
| 391 |
&extraParams); |
| 340 |
return false; |
392 |
return false; |
| 341 |
} |
393 |
} |
| 342 |
|
394 |
|
|
Lines 350-356
bool RenderThemeChromiumLinux::paintProg
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec12
|
| 350 |
RenderProgress* renderProgress = toRenderProgress(o); |
402 |
RenderProgress* renderProgress = toRenderProgress(o); |
| 351 |
IntRect valueRect = progressValueRectFor(renderProgress, rect); |
403 |
IntRect valueRect = progressValueRectFor(renderProgress, rect); |
| 352 |
|
404 |
|
| 353 |
PlatformSupport::ThemePaintExtraParams extraParams; |
405 |
WebKit::WebThemeEngine::ExtraParams extraParams; |
| 354 |
extraParams.progressBar.determinate = renderProgress->isDeterminate(); |
406 |
extraParams.progressBar.determinate = renderProgress->isDeterminate(); |
| 355 |
extraParams.progressBar.valueRectX = valueRect.x(); |
407 |
extraParams.progressBar.valueRectX = valueRect.x(); |
| 356 |
extraParams.progressBar.valueRectY = valueRect.y(); |
408 |
extraParams.progressBar.valueRectY = valueRect.y(); |
|
Lines 358-364
bool RenderThemeChromiumLinux::paintProg
Source/WebCore/rendering/RenderThemeChromiumLinux.cpp_sec13
|
| 358 |
extraParams.progressBar.valueRectHeight = valueRect.height(); |
410 |
extraParams.progressBar.valueRectHeight = valueRect.height(); |
| 359 |
|
411 |
|
| 360 |
DirectionFlippingScope scope(o, i, rect); |
412 |
DirectionFlippingScope scope(o, i, rect); |
| 361 |
PlatformSupport::paintThemePart(i.context, PlatformSupport::PartProgressBar, getWebThemeState(this, o), rect, &extraParams); |
413 |
WebKit::WebCanvas* canvas = i.context->platformContext()->canvas(); |
|
|
414 |
WebKit::Platform::current()->themeEngine()->paint( |
| 415 |
canvas, |
| 416 |
WebKit::WebThemeEngine::PartProgressBar, |
| 417 |
getWebThemeState(this, o), |
| 418 |
WebKit::WebRect(rect), |
| 419 |
&extraParams); |
| 362 |
return false; |
420 |
return false; |
| 363 |
} |
421 |
} |
| 364 |
|
422 |
|