seoz pushed a commit to branch master.

http://git.enlightenment.org/tools/elm-theme-viewer.git/commit/?id=20f889a7cb2bc4ca90570911df86daaab5a34d0c

commit 20f889a7cb2bc4ca90570911df86daaab5a34d0c
Author: Daniel Juyung Seo <[email protected]>
Date:   Fri Dec 5 03:48:46 2014 +0900

    widget/widget_option: Add datetime support with some options.
---
 src/bin/widget.c        | 26 ++++++++++++++++++++++++++
 src/bin/widget_option.c | 35 +++++++++++++++++++++++++++++++++++
 src/bin/widget_option.h |  8 ++++++++
 3 files changed, 69 insertions(+)

diff --git a/src/bin/widget.c b/src/bin/widget.c
index 8126ff8..08d952f 100644
--- a/src/bin/widget.c
+++ b/src/bin/widget.c
@@ -345,6 +345,31 @@ _widget_colorselector_create(Evas_Object *parent, const 
char *style)
    return o;
 }
 
+// datetime
+static Evas_Object *
+_widget_datetime_create(Evas_Object *parent, const char *style)
+{
+   Evas_Object *o = NULL;
+
+   o = elm_datetime_add(parent);
+   EXPAND(o); FILL(o);
+   elm_object_style_set(o, style);
+
+   if (wod)
+     {
+        elm_datetime_field_visible_set(o, ELM_DATETIME_YEAR, wod->dt_year);
+        elm_datetime_field_visible_set(o, ELM_DATETIME_MONTH, wod->dt_month);
+        elm_datetime_field_visible_set(o, ELM_DATETIME_DATE, wod->dt_date);
+        elm_datetime_field_visible_set(o, ELM_DATETIME_HOUR, wod->dt_hour);
+        elm_datetime_field_visible_set(o, ELM_DATETIME_MINUTE, wod->dt_minute);
+        elm_datetime_field_visible_set(o, ELM_DATETIME_AMPM, wod->dt_ampm);
+     }
+
+   evas_object_show(o);
+
+   return o;
+}
+
 // entry
 static Evas_Object *
 _widget_entry_create(Evas_Object *parent, const char *orig_style, const char* 
style)
@@ -2163,6 +2188,7 @@ widget_create(Evas_Object *parent, Widget_Type widget, 
const char *orig_style)
    ADD_WIDGET(check, ETV_ID_CHECK, style);
    ADD_WIDGET(clock, ETV_ID_CLOCK, style);
    ADD_WIDGET(colorselector, ETV_ID_COLORSELECTOR, style);
+   ADD_WIDGET(datetime, ETV_ID_DATETIME, style);
    ADD_WIDGET2(entry, ETV_ID_ENTRY, orig_style, style);
    ADD_WIDGET(ews, ETV_ID_EWS, orig_style);
    ADD_WIDGET(fileselector, ETV_ID_FILESELECTOR, style);
diff --git a/src/bin/widget_option.c b/src/bin/widget_option.c
index 71eaab9..332ccff 100644
--- a/src/bin/widget_option.c
+++ b/src/bin/widget_option.c
@@ -201,6 +201,34 @@ _widget_option_check_create(Evas_Object *box)
    WIDGET_OPTION_CHECK_ADD("Image", wod->chk_image, _chk_image_changed_cb);
 }
 
+// datetime
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_year, wod->dt_year);
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_month, wod->dt_month);
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_date, wod->dt_date);
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_hour, wod->dt_hour);
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_minute, wod->dt_minute);
+WIDGET_OPTION_CHECK_CHANGED_CB(datetime_ampm, wod->dt_ampm);
+
+static void
+_widget_option_datetime_create(Evas_Object *box)
+{
+   Evas_Object *o = NULL;
+
+   WIDGET_OPTION_CHECK_ADD("Year", wod->dt_year,
+                           _datetime_year_changed_cb);
+   WIDGET_OPTION_CHECK_ADD("Month", wod->dt_month,
+                           _datetime_month_changed_cb);
+   WIDGET_OPTION_CHECK_ADD("Date", wod->dt_date,
+                           _datetime_date_changed_cb);
+   WIDGET_OPTION_CHECK_ADD("Hour", wod->dt_hour,
+                           _datetime_hour_changed_cb);
+   WIDGET_OPTION_CHECK_ADD("Minute", wod->dt_minute,
+                           _datetime_minute_changed_cb);
+   WIDGET_OPTION_CHECK_ADD("AMPM", wod->dt_ampm,
+                           _datetime_ampm_changed_cb);
+}
+
+
 // entry
 WIDGET_OPTION_HOVERSEL_CHANGED_CB(_entry_text_len_changed_cb,
                                   _text_len, wod->entry_text_len);
@@ -710,6 +738,12 @@ _wod_init(void)
    wod->actslider_indi_pos = 0;
    wod->btn_text = EINA_TRUE;
    wod->chk_text = EINA_TRUE;
+   wod->dt_year = EINA_TRUE;
+   wod->dt_month = EINA_TRUE;
+   wod->dt_date = EINA_TRUE;
+   wod->dt_hour = EINA_TRUE;
+   wod->dt_minute = EINA_TRUE;
+   wod->dt_ampm = EINA_TRUE;
    wod->entry_text_len = 2;
    wod->gengrid_item_width = 168;
    wod->gengrid_item_height = 168;
@@ -772,6 +806,7 @@ widget_option_content_update(Widget_Type type)
    WIDGET_OPTION(actionslider, ETV_ID_ACTIONSLIDER)
    WIDGET_OPTION(button, ETV_ID_BUTTON)
    WIDGET_OPTION(check, ETV_ID_CHECK)
+   WIDGET_OPTION(datetime, ETV_ID_DATETIME)
    WIDGET_OPTION(entry, ETV_ID_ENTRY)
    WIDGET_OPTION(gengrid, ETV_ID_GENGRID)
    WIDGET_OPTION(genlist, ETV_ID_GENLIST)
diff --git a/src/bin/widget_option.h b/src/bin/widget_option.h
index 9871045..95e3fb0 100644
--- a/src/bin/widget_option.h
+++ b/src/bin/widget_option.h
@@ -21,6 +21,14 @@ struct _Widget_Option_Data
    Eina_Bool chk_image : 1;
    Eina_Bool chk_text : 1;
 
+   // datetime
+   Eina_Bool dt_year : 1; // ELM_DATETIME_YEAR
+   Eina_Bool dt_month : 1; // ELM_DATETIME_MONTH
+   Eina_Bool dt_date : 1; // ELM_DATETIME_DATE
+   Eina_Bool dt_hour : 1; // ELM_DATETIME_HOUR
+   Eina_Bool dt_minute : 1; // ELM_DATETIME_MINUTE
+   Eina_Bool dt_ampm : 1; // ELM_DATETIME_AMPM
+
    // entry
    int entry_text_len;
    Eina_Bool entry_guide_text : 1;

-- 


Reply via email to