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

Side by Side Diff: Source/web/PopupListBox.h

Issue 462613002: Cleanup namespace usage in Source/web/[A-V]*.h (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Addressing comments Created 6 years, 4 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
« no previous file with comments | « Source/web/PopupContainer.h ('k') | Source/web/PopupMenuChromium.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011, Google Inc. All rights reserved. 2 * Copyright (c) 2011, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 19 matching lines...) Expand all
30 30
31 #ifndef PopupListBox_h 31 #ifndef PopupListBox_h
32 #define PopupListBox_h 32 #define PopupListBox_h
33 33
34 #include "core/dom/Element.h" 34 #include "core/dom/Element.h"
35 #include "platform/scroll/FramelessScrollView.h" 35 #include "platform/scroll/FramelessScrollView.h"
36 #include "platform/text/TextDirection.h" 36 #include "platform/text/TextDirection.h"
37 #include "wtf/text/WTFString.h" 37 #include "wtf/text/WTFString.h"
38 38
39 namespace blink { 39 namespace blink {
40
40 class Font; 41 class Font;
41 class GraphicsContext; 42 class GraphicsContext;
42 class IntRect; 43 class IntRect;
43 class PlatformKeyboardEvent; 44 class PlatformKeyboardEvent;
44 class PlatformMouseEvent; 45 class PlatformMouseEvent;
45 class PlatformGestureEvent; 46 class PlatformGestureEvent;
46 class PlatformTouchEvent; 47 class PlatformTouchEvent;
47 class PlatformWheelEvent; 48 class PlatformWheelEvent;
48 class PopupMenuClient; 49 class PopupMenuClient;
49 }
50
51 namespace blink {
52
53 typedef unsigned long long TimeStamp; 50 typedef unsigned long long TimeStamp;
54 51
55 class PopupContent { 52 class PopupContent {
56 public: 53 public:
57 virtual void layout() = 0; 54 virtual void layout() = 0;
58 virtual void setMaxHeight(int) = 0; 55 virtual void setMaxHeight(int) = 0;
59 virtual void setMaxWidthAndLayout(int) = 0; 56 virtual void setMaxWidthAndLayout(int) = 0;
60 virtual int popupContentHeight() const = 0; 57 virtual int popupContentHeight() const = 0;
61 virtual ~PopupContent() { }; 58 virtual ~PopupContent() { };
62 }; 59 };
63 60
64 // A container for the data for each menu item (e.g. represented by <option> 61 // A container for the data for each menu item (e.g. represented by <option>
65 // or <optgroup> in a <select> widget) and is used by PopupListBox. 62 // or <optgroup> in a <select> widget) and is used by PopupListBox.
66 struct PopupItem { 63 struct PopupItem {
67 enum Type { 64 enum Type {
68 TypeOption, 65 TypeOption,
69 TypeGroup, 66 TypeGroup,
70 TypeSeparator 67 TypeSeparator
71 }; 68 };
72 69
73 PopupItem(const String& label, Type type) 70 PopupItem(const String& label, Type type)
74 : label(label) 71 : label(label)
75 , type(type) 72 , type(type)
76 , yOffset(0) 73 , yOffset(0)
77 { 74 {
78 } 75 }
79 String label; 76 String label;
80 Type type; 77 Type type;
81 int yOffset; // y offset of this item, relative to the top of the popup. 78 int yOffset; // y offset of this item, relative to the top of the popup.
82 blink::TextDirection textDirection; 79 TextDirection textDirection;
83 bool hasTextDirectionOverride; 80 bool hasTextDirectionOverride;
84 bool enabled; 81 bool enabled;
85 bool displayNone; 82 bool displayNone;
86 }; 83 };
87 84
88 // This class uses WebCore code to paint and handle events for a drop-down list 85 // This class uses WebCore code to paint and handle events for a drop-down list
89 // box ("combobox" on Windows). 86 // box ("combobox" on Windows).
90 class PopupListBox FINAL : public blink::FramelessScrollView, public PopupConten t { 87 class PopupListBox FINAL : public FramelessScrollView, public PopupContent {
91 public: 88 public:
92 static PassRefPtr<PopupListBox> create(blink::PopupMenuClient* client, bool deviceSupportsTouch) 89 static PassRefPtr<PopupListBox> create(PopupMenuClient* client, bool deviceS upportsTouch)
93 { 90 {
94 return adoptRef(new PopupListBox(client, deviceSupportsTouch)); 91 return adoptRef(new PopupListBox(client, deviceSupportsTouch));
95 } 92 }
96 93
97 // FramelessScrollView 94 // FramelessScrollView
98 virtual void paint(blink::GraphicsContext*, const blink::IntRect&) OVERRIDE; 95 virtual void paint(GraphicsContext*, const IntRect&) OVERRIDE;
99 virtual bool handleMouseDownEvent(const blink::PlatformMouseEvent&) OVERRIDE ; 96 virtual bool handleMouseDownEvent(const PlatformMouseEvent&) OVERRIDE;
100 virtual bool handleMouseMoveEvent(const blink::PlatformMouseEvent&) OVERRIDE ; 97 virtual bool handleMouseMoveEvent(const PlatformMouseEvent&) OVERRIDE;
101 virtual bool handleMouseReleaseEvent(const blink::PlatformMouseEvent&) OVERR IDE; 98 virtual bool handleMouseReleaseEvent(const PlatformMouseEvent&) OVERRIDE;
102 virtual bool handleWheelEvent(const blink::PlatformWheelEvent&) OVERRIDE; 99 virtual bool handleWheelEvent(const PlatformWheelEvent&) OVERRIDE;
103 virtual bool handleKeyEvent(const blink::PlatformKeyboardEvent&) OVERRIDE; 100 virtual bool handleKeyEvent(const PlatformKeyboardEvent&) OVERRIDE;
104 virtual bool handleTouchEvent(const blink::PlatformTouchEvent&) OVERRIDE; 101 virtual bool handleTouchEvent(const PlatformTouchEvent&) OVERRIDE;
105 virtual bool handleGestureEvent(const blink::PlatformGestureEvent&) OVERRIDE ; 102 virtual bool handleGestureEvent(const PlatformGestureEvent&) OVERRIDE;
106 103
107 // ScrollView 104 // ScrollView
108 virtual blink::HostWindow* hostWindow() const OVERRIDE; 105 virtual HostWindow* hostWindow() const OVERRIDE;
109 virtual bool shouldPlaceVerticalScrollbarOnLeft() const OVERRIDE; 106 virtual bool shouldPlaceVerticalScrollbarOnLeft() const OVERRIDE;
110 107
111 // PopupListBox methods 108 // PopupListBox methods
112 109
113 // Closes the popup 110 // Closes the popup
114 void abandon(); 111 void abandon();
115 112
116 // Updates our internal list to match the client. 113 // Updates our internal list to match the client.
117 void updateFromElement(); 114 void updateFromElement();
118 115
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 const Vector<PopupItem*>& items() const { return m_items; } 156 const Vector<PopupItem*>& items() const { return m_items; }
160 157
161 virtual int popupContentHeight() const OVERRIDE; 158 virtual int popupContentHeight() const OVERRIDE;
162 159
163 static const int defaultMaxHeight; 160 static const int defaultMaxHeight;
164 161
165 private: 162 private:
166 friend class PopupContainer; 163 friend class PopupContainer;
167 friend class RefCounted<PopupListBox>; 164 friend class RefCounted<PopupListBox>;
168 165
169 PopupListBox(blink::PopupMenuClient*, bool deviceSupportsTouch); 166 PopupListBox(PopupMenuClient*, bool deviceSupportsTouch);
170 167
171 virtual ~PopupListBox() 168 virtual ~PopupListBox()
172 { 169 {
173 clear(); 170 clear();
174 } 171 }
175 172
176 // Hides the popup. Other classes should not call this. Use abandon instead. 173 // Hides the popup. Other classes should not call this. Use abandon instead.
177 void hidePopup(); 174 void hidePopup();
178 175
179 // Returns true if the selection can be changed to index. 176 // Returns true if the selection can be changed to index.
(...skipping 12 matching lines...) Expand all
192 void clearSelection(); 189 void clearSelection();
193 190
194 // Scrolls to reveal the given index. 191 // Scrolls to reveal the given index.
195 void scrollToRevealRow(int index); 192 void scrollToRevealRow(int index);
196 void scrollToRevealSelection() { scrollToRevealRow(m_selectedIndex); } 193 void scrollToRevealSelection() { scrollToRevealRow(m_selectedIndex); }
197 194
198 // Invalidates the row at the given index. 195 // Invalidates the row at the given index.
199 void invalidateRow(int index); 196 void invalidateRow(int index);
200 197
201 // Get the bounds of a row. 198 // Get the bounds of a row.
202 blink::IntRect getRowBounds(int index); 199 IntRect getRowBounds(int index);
203 200
204 // Converts a point to an index of the row the point is over 201 // Converts a point to an index of the row the point is over
205 int pointToRowIndex(const blink::IntPoint&); 202 int pointToRowIndex(const IntPoint&);
206 203
207 // Paint an individual row 204 // Paint an individual row
208 void paintRow(blink::GraphicsContext*, const blink::IntRect&, int rowIndex); 205 void paintRow(GraphicsContext*, const IntRect&, int rowIndex);
209 206
210 // Test if the given point is within the bounds of the popup window. 207 // Test if the given point is within the bounds of the popup window.
211 bool isPointInBounds(const blink::IntPoint&); 208 bool isPointInBounds(const IntPoint&);
212 209
213 // Called when the user presses a text key. Does a prefix-search of the item s. 210 // Called when the user presses a text key. Does a prefix-search of the item s.
214 void typeAheadFind(const blink::PlatformKeyboardEvent&); 211 void typeAheadFind(const PlatformKeyboardEvent&);
215 212
216 // Returns the font to use for the given row 213 // Returns the font to use for the given row
217 blink::Font getRowFont(int index); 214 Font getRowFont(int index);
218 215
219 // Moves the selection down/up one item, taking care of looping back to the 216 // Moves the selection down/up one item, taking care of looping back to the
220 // first/last element if m_loopSelectionNavigation is true. 217 // first/last element if m_loopSelectionNavigation is true.
221 void selectPreviousRow(); 218 void selectPreviousRow();
222 void selectNextRow(); 219 void selectNextRow();
223 220
224 // If the device is a touch screen we increase the height of menu items 221 // If the device is a touch screen we increase the height of menu items
225 // to make it easier to unambiguously touch them. 222 // to make it easier to unambiguously touch them.
226 bool m_deviceSupportsTouch; 223 bool m_deviceSupportsTouch;
227 224
(...skipping 20 matching lines...) Expand all
248 // Our suggested width, not including scrollbar. 245 // Our suggested width, not including scrollbar.
249 int m_baseWidth; 246 int m_baseWidth;
250 247
251 // The maximum height we can be without being off-screen. 248 // The maximum height we can be without being off-screen.
252 int m_maxHeight; 249 int m_maxHeight;
253 250
254 // A list of the options contained within the <select> 251 // A list of the options contained within the <select>
255 Vector<PopupItem*> m_items; 252 Vector<PopupItem*> m_items;
256 253
257 // The <select> PopupMenuClient that opened us. 254 // The <select> PopupMenuClient that opened us.
258 blink::PopupMenuClient* m_popupClient; 255 PopupMenuClient* m_popupClient;
259 256
260 // The scrollbar which has mouse capture. Mouse events go straight to this 257 // The scrollbar which has mouse capture. Mouse events go straight to this
261 // if not null. 258 // if not null.
262 RefPtr<blink::Scrollbar> m_capturingScrollbar; 259 RefPtr<Scrollbar> m_capturingScrollbar;
263 260
264 // The last scrollbar that the mouse was over. Used for mouseover highlights . 261 // The last scrollbar that the mouse was over. Used for mouseover highlights .
265 RefPtr<blink::Scrollbar> m_lastScrollbarUnderMouse; 262 RefPtr<Scrollbar> m_lastScrollbarUnderMouse;
266 263
267 // The string the user has typed so far into the popup. Used for typeAheadFi nd. 264 // The string the user has typed so far into the popup. Used for typeAheadFi nd.
268 String m_typedString; 265 String m_typedString;
269 266
270 // The char the user has hit repeatedly. Used for typeAheadFind. 267 // The char the user has hit repeatedly. Used for typeAheadFind.
271 UChar m_repeatingChar; 268 UChar m_repeatingChar;
272 269
273 // The last time the user hit a key. Used for typeAheadFind. 270 // The last time the user hit a key. Used for typeAheadFind.
274 TimeStamp m_lastCharTime; 271 TimeStamp m_lastCharTime;
275 272
276 // If width exeeds screen width, we have to clip it. 273 // If width exeeds screen width, we have to clip it.
277 int m_maxWindowWidth; 274 int m_maxWindowWidth;
278 275
279 // To forward last mouse release event. 276 // To forward last mouse release event.
280 RefPtrWillBePersistent<blink::Element> m_focusedElement; 277 RefPtrWillBePersistent<Element> m_focusedElement;
281 }; 278 };
282 279
283 } // namespace blink 280 } // namespace blink
284 281
285 #endif 282 #endif
OLDNEW
« no previous file with comments | « Source/web/PopupContainer.h ('k') | Source/web/PopupMenuChromium.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698