[Title] Implement input data list picker.
[profile/ivi/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / InputPicker.h
1 /*
2  * Copyright (C) 2012 Samsung Electronics
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public License
15  * along with this library; see the file COPYING.LIB.  If not, write to
16  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19
20 #ifndef InputPicker_h
21 #define InputPicker_h
22
23 #if OS(TIZEN) && ENABLE(TIZEN_INPUT_TAG_EXTENSION)
24 #include "ewk_view.h"
25
26 #if ENABLE(TIZEN_DATALIST_ELEMENT)
27 #include "ewk_view_private.h"
28 #endif
29
30 typedef struct _Evas_Object Evas_Object;
31
32 struct Input_Date {
33     int year;
34     int mon;
35     int day;
36     int hour;
37     int min;
38     int sec;
39 };
40 struct Input_Date_Str {
41     char year[10];
42     char mon[10];
43     char day[10];
44     char hour[10];
45     char min[10];
46     char sec[10];
47 };
48 struct Input_Picker_Layout {
49     Evas_Object* popup;
50     Evas_Object* layout;
51     Evas_Object* timePicker;
52     Evas_Object* datePicker;
53     Evas_Object* colorRect;
54     Evas_Object* okButton;
55     Evas_Object* dataListEditField;
56     bool datetimeLocal;
57 };
58
59 namespace WebKit {
60
61     class InputPicker {
62     public:
63         InputPicker(Evas_Object*);
64         ~InputPicker();
65
66         void show(Ewk_Input_Type, const char*);
67
68 #if ENABLE(TIZEN_DATALIST_ELEMENT)
69         void showDataList(Ewk_Input_Type inputType, Eina_List* optionList);
70         void hideDataList(Ewk_Input_Type inputType);
71 #endif
72
73         void ewk_date_popup(const char*);
74         void ewk_time_popup(const char*);
75         void ewk_month_popup(const char*);
76         void ewk_week_popup(const char*);
77         void ewk_datetime_popup(const char*, bool);
78         void ewk_color_popup(const char*);
79     private:
80         static void _date_popup_response_cb(void*, Evas_Object*, void*);
81         static void _time_popup_response_cb(void*, Evas_Object*, void*);
82         static void _month_popup_response_cb(void*, Evas_Object*, void*);
83         static void _week_popup_response_cb(void*, Evas_Object*, void*);
84         static void _datetime_popup_response_cb(void*, Evas_Object*, void*);
85         static void _color_popup_response_cb(void*, Evas_Object*, void*);
86         static void _data_list_popup_response_cb(void*, Evas_Object*, void*);
87         static void _data_list_popup_response_cancel_cb(void*, Evas_Object*, void*);
88         static void _data_list_selected_cb(void*, Evas_Object*, void*);
89         static void _color_selected_cb(void*, Evas*, Evas_Object*, void*);
90
91         Evas_Object* m_ewkView;
92         Input_Picker_Layout* m_pickerLayout;
93         Eina_List* m_dataList;
94     };
95 } // namespace WebKit
96
97
98 #endif // OS(TIZEN) && ENABLE(TIZEN_INPUT_TAG_EXTENSION)
99
100 #endif // InputPicker_h