521f160c686bd3e8f830c02e8ff150cd7d4bd935
[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     bool datetimeLocal;
56 };
57
58 namespace WebKit {
59
60     class InputPicker {
61     public:
62         InputPicker(Evas_Object*);
63         ~InputPicker();
64
65         void show(Ewk_Input_Type, const char*);
66
67 #if ENABLE(TIZEN_DATALIST_ELEMENT)
68         void showDataList(Ewk_Input_Type inputType, Eina_List* optionList);
69         void hideDataList(Ewk_Input_Type inputType);
70 #endif
71
72         void ewk_date_popup(const char*);
73         void ewk_time_popup(const char*);
74         void ewk_month_popup(const char*);
75         void ewk_week_popup(const char*);
76         void ewk_datetime_popup(const char*, bool);
77         void ewk_color_popup(const char*);
78     private:
79         static void _date_popup_response_cb(void*, Evas_Object*, void*);
80         static void _time_popup_response_cb(void*, Evas_Object*, void*);
81         static void _month_popup_response_cb(void*, Evas_Object*, void*);
82         static void _week_popup_response_cb(void*, Evas_Object*, void*);
83         static void _datetime_popup_response_cb(void*, Evas_Object*, void*);
84         static void _color_popup_response_cb(void*, Evas_Object*, void*);
85         static void _color_selected_cb(void*, Evas*, Evas_Object*, void*);
86
87         Evas_Object* m_ewkView;
88         Input_Picker_Layout* m_pickerLayout;
89     };
90 } // namespace WebKit
91
92
93 #endif // OS(TIZEN) && ENABLE(TIZEN_INPUT_TAG_EXTENSION)
94
95 #endif // InputPicker_h