OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Inc. | 2 * Copyright (C) 2007 Apple Inc. |
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> | 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> |
4 * Copyright (C) 2008 Collabora Ltd. | 4 * Copyright (C) 2008 Collabora Ltd. |
5 * Copyright (C) 2008, 2009 Google Inc. | 5 * Copyright (C) 2008, 2009 Google Inc. |
6 * Copyright (C) 2009 Kenneth Rohde Christiansen | 6 * Copyright (C) 2009 Kenneth Rohde Christiansen |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 setSizeIfAuto(style, size); | 265 setSizeIfAuto(style, size); |
266 } | 266 } |
267 | 267 |
268 bool RenderThemeChromiumDefault::paintButton(RenderObject* o, const PaintInfo& i
, const IntRect& rect) | 268 bool RenderThemeChromiumDefault::paintButton(RenderObject* o, const PaintInfo& i
, const IntRect& rect) |
269 { | 269 { |
270 WebKit::WebThemeEngine::ExtraParams extraParams; | 270 WebKit::WebThemeEngine::ExtraParams extraParams; |
271 WebKit::WebCanvas* canvas = i.context->canvas(); | 271 WebKit::WebCanvas* canvas = i.context->canvas(); |
272 extraParams.button.hasBorder = true; | 272 extraParams.button.hasBorder = true; |
273 extraParams.button.backgroundColor = defaultButtonBackgroundColor; | 273 extraParams.button.backgroundColor = defaultButtonBackgroundColor; |
274 if (o->hasBackground()) | 274 if (o->hasBackground()) |
275 extraParams.button.backgroundColor = o->style()->visitedDependentColor(C
SSPropertyBackgroundColor).rgb(); | 275 extraParams.button.backgroundColor = o->resolveColor(CSSPropertyBackgrou
ndColor).rgb(); |
276 | 276 |
277 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartButton, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams
); | 277 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartButton, getWebThemeState(this, o), WebKit::WebRect(rect), &extraParams
); |
278 return false; | 278 return false; |
279 } | 279 } |
280 | 280 |
281 bool RenderThemeChromiumDefault::paintTextField(RenderObject* o, const PaintInfo
& i, const IntRect& rect) | 281 bool RenderThemeChromiumDefault::paintTextField(RenderObject* o, const PaintInfo
& i, const IntRect& rect) |
282 { | 282 { |
283 // WebThemeEngine does not handle border rounded corner and background image | 283 // WebThemeEngine does not handle border rounded corner and background image |
284 // so return true to draw CSS border and background. | 284 // so return true to draw CSS border and background. |
285 if (o->style()->hasBorderRadius() || o->style()->hasBackgroundImage()) | 285 if (o->style()->hasBorderRadius() || o->style()->hasBackgroundImage()) |
286 return true; | 286 return true; |
287 | 287 |
288 ControlPart part = o->style()->appearance(); | 288 ControlPart part = o->style()->appearance(); |
289 | 289 |
290 WebKit::WebThemeEngine::ExtraParams extraParams; | 290 WebKit::WebThemeEngine::ExtraParams extraParams; |
291 extraParams.textField.isTextArea = part == TextAreaPart; | 291 extraParams.textField.isTextArea = part == TextAreaPart; |
292 extraParams.textField.isListbox = part == ListboxPart; | 292 extraParams.textField.isListbox = part == ListboxPart; |
293 | 293 |
294 WebKit::WebCanvas* canvas = i.context->canvas(); | 294 WebKit::WebCanvas* canvas = i.context->canvas(); |
295 | 295 |
296 // Fallback to white if the specified color object is invalid. | 296 // Fallback to white if the specified color object is invalid. |
297 Color backgroundColor(Color::white); | 297 Color backgroundColor = o->resolveColor(CSSPropertyBackgroundColor, Color::w
hite); |
298 if (o->style()->visitedDependentColor(CSSPropertyBackgroundColor).isValid()) | |
299 backgroundColor = o->style()->visitedDependentColor(CSSPropertyBackgroun
dColor); | |
300 extraParams.textField.backgroundColor = backgroundColor.rgb(); | 298 extraParams.textField.backgroundColor = backgroundColor.rgb(); |
301 | 299 |
302 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartTextField, getWebThemeState(this, o), WebKit::WebRect(rect), &extraPar
ams); | 300 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartTextField, getWebThemeState(this, o), WebKit::WebRect(rect), &extraPar
ams); |
303 return false; | 301 return false; |
304 } | 302 } |
305 | 303 |
306 bool RenderThemeChromiumDefault::paintMenuList(RenderObject* o, const PaintInfo&
i, const IntRect& rect) | 304 bool RenderThemeChromiumDefault::paintMenuList(RenderObject* o, const PaintInfo&
i, const IntRect& rect) |
307 { | 305 { |
308 if (!o->isBox()) | 306 if (!o->isBox()) |
309 return false; | 307 return false; |
310 | 308 |
311 const int right = rect.x() + rect.width(); | 309 const int right = rect.x() + rect.width(); |
312 const int middle = rect.y() + rect.height() / 2; | 310 const int middle = rect.y() + rect.height() / 2; |
313 | 311 |
314 WebKit::WebThemeEngine::ExtraParams extraParams; | 312 WebKit::WebThemeEngine::ExtraParams extraParams; |
315 extraParams.menuList.arrowX = (o->style()->direction() == RTL) ? rect.x() +
7 : right - 13; | 313 extraParams.menuList.arrowX = (o->style()->direction() == RTL) ? rect.x() +
7 : right - 13; |
316 extraParams.menuList.arrowY = middle; | 314 extraParams.menuList.arrowY = middle; |
317 const RenderBox* box = toRenderBox(o); | 315 const RenderBox* box = toRenderBox(o); |
318 // Match Chromium Win behaviour of showing all borders if any are shown. | 316 // Match Chromium Win behaviour of showing all borders if any are shown. |
319 extraParams.menuList.hasBorder = box->borderRight() || box->borderLeft() ||
box->borderTop() || box->borderBottom(); | 317 extraParams.menuList.hasBorder = box->borderRight() || box->borderLeft() ||
box->borderTop() || box->borderBottom(); |
320 extraParams.menuList.hasBorderRadius = o->style()->hasBorderRadius(); | 318 extraParams.menuList.hasBorderRadius = o->style()->hasBorderRadius(); |
321 // Fallback to transparent if the specified color object is invalid. | 319 // Fallback to transparent if the specified color object is invalid. |
322 extraParams.menuList.backgroundColor = Color::transparent; | 320 extraParams.menuList.backgroundColor = Color::transparent; |
323 if (o->hasBackground()) | 321 if (o->hasBackground()) |
324 extraParams.menuList.backgroundColor = o->style()->visitedDependentColor
(CSSPropertyBackgroundColor).rgb(); | 322 extraParams.menuList.backgroundColor = o->resolveColor(CSSPropertyBackgr
oundColor).rgb(); |
325 | 323 |
326 WebKit::WebCanvas* canvas = i.context->canvas(); | 324 WebKit::WebCanvas* canvas = i.context->canvas(); |
327 | 325 |
328 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartMenuList, getWebThemeState(this, o), WebKit::WebRect(rect), &extraPara
ms); | 326 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartMenuList, getWebThemeState(this, o), WebKit::WebRect(rect), &extraPara
ms); |
329 return false; | 327 return false; |
330 } | 328 } |
331 | 329 |
332 bool RenderThemeChromiumDefault::paintSliderTrack(RenderObject* o, const PaintIn
fo& i, const IntRect& rect) | 330 bool RenderThemeChromiumDefault::paintSliderTrack(RenderObject* o, const PaintIn
fo& i, const IntRect& rect) |
333 { | 331 { |
334 WebKit::WebThemeEngine::ExtraParams extraParams; | 332 WebKit::WebThemeEngine::ExtraParams extraParams; |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartProgressBar, getWebThemeState(this, o), WebKit::WebRect(rect), &extraP
arams); | 412 WebKit::Platform::current()->themeEngine()->paint(canvas, WebKit::WebThemeEn
gine::PartProgressBar, getWebThemeState(this, o), WebKit::WebRect(rect), &extraP
arams); |
415 return false; | 413 return false; |
416 } | 414 } |
417 | 415 |
418 bool RenderThemeChromiumDefault::shouldOpenPickerWithF4Key() const | 416 bool RenderThemeChromiumDefault::shouldOpenPickerWithF4Key() const |
419 { | 417 { |
420 return true; | 418 return true; |
421 } | 419 } |
422 | 420 |
423 } // namespace WebCore | 421 } // namespace WebCore |
OLD | NEW |