Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Side by Side Diff: Source/WebCore/html/HTMLOptGroupElement.h

Issue 14096013: Implement select element list box with shadow DOM. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@shadowselect
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2010 Apple Inc. All rights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2010 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 10 matching lines...) Expand all
21 * 21 *
22 */ 22 */
23 23
24 #ifndef HTMLOptGroupElement_h 24 #ifndef HTMLOptGroupElement_h
25 #define HTMLOptGroupElement_h 25 #define HTMLOptGroupElement_h
26 26
27 #include "HTMLElement.h" 27 #include "HTMLElement.h"
28 28
29 namespace WebCore { 29 namespace WebCore {
30 30
31 class HTMLDivElement;
31 class HTMLSelectElement; 32 class HTMLSelectElement;
32 33
33 class HTMLOptGroupElement : public HTMLElement { 34 class HTMLOptGroupElement : public HTMLElement {
34 public: 35 public:
35 static PassRefPtr<HTMLOptGroupElement> create(const QualifiedName&, Document *); 36 static PassRefPtr<HTMLOptGroupElement> create(const QualifiedName&, Document *);
36 37
37 virtual bool isDisabledFormControl() const OVERRIDE; 38 virtual bool isDisabledFormControl() const OVERRIDE;
38 HTMLSelectElement* ownerSelectElement() const; 39 HTMLSelectElement* ownerSelectElement() const;
39 40
40 String groupLabelText() const; 41 String groupLabelText() const;
41 42
42 private: 43 private:
43 HTMLOptGroupElement(const QualifiedName&, Document*); 44 HTMLOptGroupElement(const QualifiedName&, Document*);
44 45
45 virtual const AtomicString& formControlType() const; 46 virtual const AtomicString& formControlType() const;
46 virtual bool supportsFocus() const; 47 virtual bool supportsFocus() const;
47 virtual bool isFocusable() const; 48 virtual bool isFocusable() const;
48 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR IDE; 49 virtual void parseAttribute(const QualifiedName&, const AtomicString&) OVERR IDE;
49 virtual bool rendererIsNeeded(const NodeRenderingContext&) { return false; } 50 virtual void didAddUserAgentShadowRoot(ShadowRoot*) OVERRIDE;
50 virtual void attach();
51 virtual void detach();
52 51
53 virtual void childrenChanged(bool changedByParser = false, Node* beforeChang e = 0, Node* afterChange = 0, int childCountDelta = 0); 52 virtual void childrenChanged(bool changedByParser = false, Node* beforeChang e = 0, Node* afterChange = 0, int childCountDelta = 0);
54 53
55 virtual void accessKeyAction(bool sendMouseEvents); 54 virtual void accessKeyAction(bool sendMouseEvents);
56 55
57 // <optgroup> never has a renderer so we manually manage a cached style. 56 void recalcSelectOptions();
58 void updateNonRenderStyle(); 57 void updateGroupLabel();
59 virtual RenderStyle* nonRendererStyle() const OVERRIDE;
60 virtual PassRefPtr<RenderStyle> customStyleForRenderer() OVERRIDE;
61 58
62 void recalcSelectOptions(); 59 HTMLDivElement* m_groupLabelElement;
60 };
63 61
64 RefPtr<RenderStyle> m_style; 62 HTMLOptGroupElement* toHTMLOptGroupElement(Node*);
65 };
66 63
67 } //namespace 64 } //namespace
68 65
69 #endif 66 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698