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

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

Issue 118453006: Mac: Send a synthetic mouseup event when <select> popup menu is opened. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « Source/web/ChromeClientImpl.cpp ('k') | Source/web/ExternalPopupMenu.cpp » ('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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef ExternalPopupMenu_h 31 #ifndef ExternalPopupMenu_h
32 #define ExternalPopupMenu_h 32 #define ExternalPopupMenu_h
33 33
34 #include "WebExternalPopupMenuClient.h" 34 #include "WebExternalPopupMenuClient.h"
35 #include "platform/PopupMenu.h" 35 #include "platform/PopupMenu.h"
36 #include "platform/Timer.h"
36 #include "public/platform/WebCanvas.h" 37 #include "public/platform/WebCanvas.h"
37 #include "public/platform/WebScrollbar.h" 38 #include "public/platform/WebScrollbar.h"
38 39
39 namespace WebCore { 40 namespace WebCore {
40 class FloatQuad; 41 class FloatQuad;
41 class Frame; 42 class Frame;
42 class FrameView; 43 class FrameView;
43 class IntRect; 44 class IntRect;
44 class IntSize; 45 class IntSize;
45 class PopupMenuClient; 46 class PopupMenuClient;
46 } 47 }
47 48
48 namespace blink { 49 namespace blink {
49 50
50 class WebExternalPopupMenu; 51 class WebExternalPopupMenu;
51 class WebViewClient; 52 class WebViewImpl;
52 struct WebPopupMenuInfo; 53 struct WebPopupMenuInfo;
53 class WebInputEvent; 54 class WebMouseEvent;
54 55
55 // The ExternalPopupMenu connects the actual implementation of the popup menu 56 // The ExternalPopupMenu connects the actual implementation of the popup menu
56 // to the WebCore popup menu. 57 // to the WebCore popup menu.
57 class ExternalPopupMenu : public WebCore::PopupMenu, 58 class ExternalPopupMenu : public WebCore::PopupMenu,
58 public WebExternalPopupMenuClient { 59 public WebExternalPopupMenuClient {
59 public: 60 public:
60 ExternalPopupMenu(WebCore::Frame&, WebCore::PopupMenuClient*, WebViewClient* ); 61 ExternalPopupMenu(WebCore::Frame&, WebCore::PopupMenuClient*, WebViewImpl&);
61 virtual ~ExternalPopupMenu(); 62 virtual ~ExternalPopupMenu();
62 63
63 private: 64 private:
64 // WebCore::PopupMenu methods: 65 // WebCore::PopupMenu methods:
65 virtual void show(const WebCore::FloatQuad& controlPosition, const WebCore:: IntSize&, int index) OVERRIDE; 66 virtual void show(const WebCore::FloatQuad& controlPosition, const WebCore:: IntSize&, int index) OVERRIDE;
66 virtual void hide() OVERRIDE; 67 virtual void hide() OVERRIDE;
67 virtual void updateFromElement() OVERRIDE; 68 virtual void updateFromElement() OVERRIDE;
68 virtual void disconnectClient() OVERRIDE; 69 virtual void disconnectClient() OVERRIDE;
69 70
70 // WebExternalPopupClient methods: 71 // WebExternalPopupClient methods:
71 virtual void didChangeSelection(int index); 72 virtual void didChangeSelection(int index);
72 virtual void didAcceptIndex(int index); 73 virtual void didAcceptIndex(int index);
73 virtual void didAcceptIndices(const WebVector<int>& indices); 74 virtual void didAcceptIndices(const WebVector<int>& indices);
74 virtual void didCancel(); 75 virtual void didCancel();
75 76
77 void dispatchEvent(WebCore::Timer<ExternalPopupMenu>*);
76 // Fills |info| with the popup menu information contained in the 78 // Fills |info| with the popup menu information contained in the
77 // WebCore::PopupMenuClient associated with this ExternalPopupMenu. 79 // WebCore::PopupMenuClient associated with this ExternalPopupMenu.
78 void getPopupMenuInfo(WebPopupMenuInfo* info); 80 void getPopupMenuInfo(WebPopupMenuInfo* info);
79 81
80 WebCore::PopupMenuClient* m_popupMenuClient; 82 WebCore::PopupMenuClient* m_popupMenuClient;
81 RefPtr<WebCore::FrameView> m_frameView; 83 RefPtr<WebCore::FrameView> m_frameView;
82 WebViewClient* m_webViewClient; 84 WebViewImpl& m_webView;
83 85 OwnPtr<WebMouseEvent> m_syntheticEvent;
86 WebCore::Timer<ExternalPopupMenu> m_dispatchEventTimer;
84 // The actual implementor of the show menu. 87 // The actual implementor of the show menu.
85 WebExternalPopupMenu* m_webExternalPopupMenu; 88 WebExternalPopupMenu* m_webExternalPopupMenu;
86 }; 89 };
87 90
88 } // namespace blink 91 } // namespace blink
89 92
90 #endif // ExternalPopupMenu_h 93 #endif // ExternalPopupMenu_h
OLDNEW
« no previous file with comments | « Source/web/ChromeClientImpl.cpp ('k') | Source/web/ExternalPopupMenu.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698