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

Unified Diff: Source/web/PopupMenuImpl.h

Issue 736883002: Implement <select> Popup Menu using PagePopup (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: Source/web/PopupMenuImpl.h
diff --git a/Source/web/DateTimeChooserImpl.h b/Source/web/PopupMenuImpl.h
similarity index 66%
copy from Source/web/DateTimeChooserImpl.h
copy to Source/web/PopupMenuImpl.h
index 83eb256fa86b567364ffd032647fd89825055299..833d5f60cb48be143f2e11ed27391b469264d0b9 100644
--- a/Source/web/DateTimeChooserImpl.h
+++ b/Source/web/PopupMenuImpl.h
@@ -28,34 +28,47 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef DateTimeChooserImpl_h
-#define DateTimeChooserImpl_h
+#ifndef PopupMenuImpl_h
+#define PopupMenuImpl_h
-#if ENABLE(INPUT_MULTIPLE_FIELDS_UI)
-#include "core/html/forms/DateTimeChooser.h"
+#include "core/html/forms/PopupMenuClient.h"
#include "core/page/PagePopupClient.h"
+#include "platform/PopupMenu.h"
namespace blink {
class ChromeClientImpl;
-class DateTimeChooserClient;
class PagePopup;
+class HTMLElement;
+class HTMLHRElement;
+class HTMLOptGroupElement;
+class HTMLOptionElement;
-class DateTimeChooserImpl final : public DateTimeChooser, public PagePopupClient {
+class PopupMenuImpl final : public PopupMenu, public PagePopupClient {
public:
- static PassRefPtr<DateTimeChooserImpl> create(ChromeClientImpl*, DateTimeChooserClient*, const DateTimeChooserParameters&);
- virtual ~DateTimeChooserImpl();
+ static PassRefPtr<PopupMenuImpl> create(ChromeClientImpl*, PopupMenuClient*);
+ virtual ~PopupMenuImpl();
+ virtual void trace(Visitor*) override;
- // DateTimeChooser functions:
- virtual void endChooser() override;
- virtual AXObject* rootAXObject() override;
+ virtual void show(const FloatQuad& controlPosition, const IntSize& controlSize, int index) override;
+ virtual void hide() override;
+ virtual void updateFromElement() override;
+ virtual void disconnectClient() override;
+
+ void dispose();
private:
- DateTimeChooserImpl(ChromeClientImpl*, DateTimeChooserClient*, const DateTimeChooserParameters&);
+ PopupMenuImpl(ChromeClientImpl*, PopupMenuClient*);
+
+ void addOption(HTMLOptionElement&, SharedBuffer*);
+ void addOptGroup(HTMLOptGroupElement&, SharedBuffer*);
+ void addSeparator(HTMLHRElement&, SharedBuffer*);
+ void addElementStyle(HTMLElement&, SharedBuffer*);
+
// PagePopupClient functions:
virtual IntSize contentSize() override;
virtual void writeDocument(SharedBuffer*) override;
- virtual Locale& locale() override;
+ virtual void didWriteDocument(Document*) override;
virtual void setValueAndClosePopup(int, const String&) override;
virtual void setValue(const String&) override;
virtual void closePopup() override;
@@ -63,14 +76,10 @@ private:
virtual void didClosePopup() override;
ChromeClientImpl* m_chromeClient;
- DateTimeChooserClient* m_client;
+ PopupMenuClient* m_client;
PagePopup* m_popup;
- DateTimeChooserParameters m_parameters;
- OwnPtr<Locale> m_locale;
};
}
-#endif // ENABLE(INPUT_MULTIPLE_FIELDS_UI)
-
-#endif // DateTimeChooserImpl_h
+#endif // PopupMenuImpl_h

Powered by Google App Engine
This is Rietveld 408576698