#include <stdlib.h>
#include <string.h>
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+#include <efl_assist.h>
+#endif
#if OS(TIZEN) && ENABLE(TIZEN_INPUT_TAG_EXTENSION)
, colorRect(0)
, okButton(0)
, dataListEditField(0)
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ , initial_r(0)
+ , initial_g(0)
+ , initial_b(0)
+#endif
, datetimeLocal(false)
{
evas_object_focus_set(m_ewkView, false);
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select data list");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _data_list_popup_response_cancel_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","data_list_picker");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select color");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ m_pickerLayout->initial_r = r;
+ m_pickerLayout->initial_g = g;
+ m_pickerLayout->initial_b = b;
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _color_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","color_picker");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_weight_set(m_pickerLayout->colorRect, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(m_pickerLayout->colorRect);
- printf("\n<<<<<<<< r = [%d], g = [%d], b = [%d] >>>>>>>>>>\n", r, g, b);
-
evas_object_color_set(m_pickerLayout->colorRect, r, g, b, 255);
elm_object_part_content_set(m_pickerLayout->layout, "elm.swallow.color_rect", m_pickerLayout->colorRect);
#if ENABLE(ELM_COLORPALLETE)
inputPicker->hideColorPicker();
}
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+void InputPicker::_color_back_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ InputPicker* inputPicker = static_cast<InputPicker*>(data);
+
+ int r = inputPicker->m_pickerLayout->initial_r;
+ int g = inputPicker->m_pickerLayout->initial_g;
+ int b = inputPicker->m_pickerLayout->initial_b;
+ int a = 255;
+ ewk_view_color_picker_color_set(inputPicker->m_ewkView, r, g, b, a);
+
+ inputPicker->hideColorPicker();
+}
+#endif
+
void InputPicker::ewk_date_popup(const char* inputValue)
{
struct tm* currentTime;
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select date");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _popup_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","elm/datepicker");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select date");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _popup_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","elm/datepicker");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select time");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _popup_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","elm/datepicker");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
win = m_ewkView;
m_pickerLayout->popup = elm_popup_add(win);
-
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select month");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _popup_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","elm/datepicker");
m_pickerLayout->popup = elm_popup_add(win);
elm_object_part_text_set(m_pickerLayout->popup, "title,text", "Select datetime");
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ ea_object_event_callback_add(m_pickerLayout->popup, EA_CALLBACK_BACK, _popup_back_cb, this);
+#endif
+
m_pickerLayout->layout = elm_layout_add(m_pickerLayout->popup);
elm_layout_file_set(m_pickerLayout->layout, EDJE_DIR"/control.edj","datepicker_popup");
evas_object_size_hint_weight_set(m_pickerLayout->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
inputPicker->m_pickerLayout = 0;
}
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+void InputPicker::_popup_back_cb(void* data, Evas_Object* obj, void* event_info)
+{
+ InputPicker* inputPicker = static_cast<InputPicker*>(data);
+
+ if (!inputPicker->m_pickerLayout)
+ return;
+
+ if (inputPicker->m_pickerLayout->popup) {
+ evas_object_del(inputPicker->m_pickerLayout->popup);
+ inputPicker->m_pickerLayout->popup = 0;
+ }
+
+ delete inputPicker->m_pickerLayout;
+ inputPicker->m_pickerLayout = 0;
+}
+#endif
+
} // namespace WebKit
#endif // OS(TIZEN) && ENABLE(TIZEN_INPUT_TAG_EXTENSION)
Evas_Object* colorRect;
Evas_Object* okButton;
Evas_Object* dataListEditField;
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ int initial_r;
+ int initial_g;
+ int initial_b;
+#endif
bool datetimeLocal;
};
namespace WebKit {
- class InputPicker {
- public:
- InputPicker(Evas_Object*);
- ~InputPicker();
+class InputPicker {
+public:
+ InputPicker(Evas_Object*);
+ ~InputPicker();
- void show(Ewk_Input_Type, const char*);
+ void show(Ewk_Input_Type, const char*);
#if ENABLE(TIZEN_DATALIST_ELEMENT)
- void showDataList(Ewk_Input_Type inputType, Eina_List* optionList);
- void hideDataList(Ewk_Input_Type inputType);
+ void showDataList(Ewk_Input_Type inputType, Eina_List* optionList);
+ void hideDataList(Ewk_Input_Type inputType);
#endif
#if ENABLE(TIZEN_INPUT_COLOR_PICKER)
- void showColorPicker(int, int, int, int);
- void hideColorPicker();
- bool isColorPickerShown() { return m_isColorPickerShown; }
+ void showColorPicker(int, int, int, int);
+ void hideColorPicker();
+ bool isColorPickerShown() { return m_isColorPickerShown; }
#endif
- void ewk_date_popup(const char*);
- void ewk_time_popup(const char*);
- void ewk_month_popup(const char*);
- void ewk_week_popup(const char*);
- void ewk_datetime_popup(const char*, bool);
- void ewk_color_popup(int, int, int);
- private:
- static void _date_popup_response_cb(void*, Evas_Object*, void*);
- static void _time_popup_response_cb(void*, Evas_Object*, void*);
- static void _month_popup_response_cb(void*, Evas_Object*, void*);
- static void _week_popup_response_cb(void*, Evas_Object*, void*);
- static void _datetime_popup_response_cb(void*, Evas_Object*, void*);
- static void _color_popup_response_cb(void*, Evas_Object*, void*);
- static void _data_list_popup_response_cb(void*, Evas_Object*, void*);
- static void _data_list_popup_response_cancel_cb(void*, Evas_Object*, void*);
- static void _data_list_selected_cb(void*, Evas_Object*, void*);
- static void _color_selected_cb(void*, Evas*, Evas_Object*, void*);
-
- Evas_Object* m_ewkView;
- Input_Picker_Layout* m_pickerLayout;
- Eina_List* m_dataList;
+ void ewk_date_popup(const char*);
+ void ewk_time_popup(const char*);
+ void ewk_month_popup(const char*);
+ void ewk_week_popup(const char*);
+ void ewk_datetime_popup(const char*, bool);
+ void ewk_color_popup(int, int, int);
+
+private:
+ static void _date_popup_response_cb(void*, Evas_Object*, void*);
+ static void _time_popup_response_cb(void*, Evas_Object*, void*);
+ static void _month_popup_response_cb(void*, Evas_Object*, void*);
+ static void _week_popup_response_cb(void*, Evas_Object*, void*);
+ static void _datetime_popup_response_cb(void*, Evas_Object*, void*);
+ static void _color_popup_response_cb(void*, Evas_Object*, void*);
+ static void _data_list_popup_response_cb(void*, Evas_Object*, void*);
+ static void _data_list_popup_response_cancel_cb(void*, Evas_Object*, void*);
+ static void _data_list_selected_cb(void*, Evas_Object*, void*);
+ static void _color_selected_cb(void*, Evas*, Evas_Object*, void*);
+
+#if ENABLE(TIZEN_HW_MORE_BACK_KEY)
+ static void _color_back_cb(void*, Evas_Object*, void*);
+ static void _popup_back_cb(void*, Evas_Object*, void*);
+#endif
+
+ Evas_Object* m_ewkView;
+ Input_Picker_Layout* m_pickerLayout;
+ Eina_List* m_dataList;
#if ENABLE(TIZEN_INPUT_COLOR_PICKER)
- bool m_isColorPickerShown;
+ bool m_isColorPickerShown;
#endif
};
} // namespace WebKit