| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of the select element renderer in WebCore. | 2 * This file is part of the select element renderer in WebCore. |
| 3 * | 3 * |
| 4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). | 4 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
| 5 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv
ed. |
| 6 * 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 6 * 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
| 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 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 // Try to retrieve the style of an option element we know exists (index
0). | 495 // Try to retrieve the style of an option element we know exists (index
0). |
| 496 listIndex = 0; | 496 listIndex = 0; |
| 497 } | 497 } |
| 498 HTMLElement* element = listItems[listIndex]; | 498 HTMLElement* element = listItems[listIndex]; |
| 499 | 499 |
| 500 Color itemBackgroundColor; | 500 Color itemBackgroundColor; |
| 501 bool itemHasCustomBackgroundColor; | 501 bool itemHasCustomBackgroundColor; |
| 502 getItemBackgroundColor(listIndex, itemBackgroundColor, itemHasCustomBackgrou
ndColor); | 502 getItemBackgroundColor(listIndex, itemBackgroundColor, itemHasCustomBackgrou
ndColor); |
| 503 | 503 |
| 504 RenderStyle* style = element->renderStyle() ? element->renderStyle() : eleme
nt->computedStyle(); | 504 RenderStyle* style = element->renderStyle() ? element->renderStyle() : eleme
nt->computedStyle(); |
| 505 bool displayNone = style && style->display() == NONE; |
| 506 if (!displayNone) { |
| 507 HTMLElement* parent = Traversal<HTMLElement>::firstAncestor(*element); |
| 508 ASSERT(parent); |
| 509 if (parent->hasTagName(optgroupTag)) { |
| 510 RenderStyle* parentStyle = parent->renderStyle() ? parent->renderSty
le() : parent->computedStyle(); |
| 511 if (parentStyle && parentStyle->display() == NONE) |
| 512 displayNone = true; |
| 513 } |
| 514 } |
| 505 return style ? PopupMenuStyle(resolveColor(style, CSSPropertyColor), itemBac
kgroundColor, style->font(), style->visibility() == VISIBLE, | 515 return style ? PopupMenuStyle(resolveColor(style, CSSPropertyColor), itemBac
kgroundColor, style->font(), style->visibility() == VISIBLE, |
| 506 style->display() == NONE, style->textIndent(), style->direction(), isOve
rride(style->unicodeBidi()), | 516 displayNone, style->textIndent(), style->direction(), isOverride(style->
unicodeBidi()), |
| 507 itemHasCustomBackgroundColor ? PopupMenuStyle::CustomBackgroundColor : P
opupMenuStyle::DefaultBackgroundColor) : menuStyle(); | 517 itemHasCustomBackgroundColor ? PopupMenuStyle::CustomBackgroundColor : P
opupMenuStyle::DefaultBackgroundColor) : menuStyle(); |
| 508 } | 518 } |
| 509 | 519 |
| 510 void RenderMenuList::getItemBackgroundColor(unsigned listIndex, Color& itemBackg
roundColor, bool& itemHasCustomBackgroundColor) const | 520 void RenderMenuList::getItemBackgroundColor(unsigned listIndex, Color& itemBackg
roundColor, bool& itemHasCustomBackgroundColor) const |
| 511 { | 521 { |
| 512 const WillBeHeapVector<RawPtrWillBeMember<HTMLElement> >& listItems = select
Element()->listItems(); | 522 const WillBeHeapVector<RawPtrWillBeMember<HTMLElement> >& listItems = select
Element()->listItems(); |
| 513 if (listIndex >= listItems.size()) { | 523 if (listIndex >= listItems.size()) { |
| 514 itemBackgroundColor = resolveColor(CSSPropertyBackgroundColor); | 524 itemBackgroundColor = resolveColor(CSSPropertyBackgroundColor); |
| 515 itemHasCustomBackgroundColor = false; | 525 itemHasCustomBackgroundColor = false; |
| 516 return; | 526 return; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 HTMLElement* element = listItems[listIndex]; | 613 HTMLElement* element = listItems[listIndex]; |
| 604 return isHTMLOptionElement(*element) && toHTMLOptionElement(*element).select
ed(); | 614 return isHTMLOptionElement(*element) && toHTMLOptionElement(*element).select
ed(); |
| 605 } | 615 } |
| 606 | 616 |
| 607 void RenderMenuList::setTextFromItem(unsigned listIndex) | 617 void RenderMenuList::setTextFromItem(unsigned listIndex) |
| 608 { | 618 { |
| 609 setTextFromOption(selectElement()->listToOptionIndex(listIndex)); | 619 setTextFromOption(selectElement()->listToOptionIndex(listIndex)); |
| 610 } | 620 } |
| 611 | 621 |
| 612 } | 622 } |
| OLD | NEW |