Hi, On Mon, Jan 7, 2013 at 12:38 PM, Daniel Juyung Seo <[email protected]> wrote: > Is there any updated for this question? > > Daniel Juyung Seo (SeoZ)
Sorry for the late. I see your point, maybe it's a theme api break. About it be optional, what you have in mind ? > > On Sat, Jan 5, 2013 at 2:47 PM, Daniel Juyung Seo <[email protected]>wrote: > >> This looks good but isn't this be a theme api break? >> Elementary was already released. >> Maybe this needs to be optional? >> >> Daniel Juyung Seo (SeoZ) >> >> >> On Fri, Jan 4, 2013 at 5:50 AM, Enlightenment SVN < >> [email protected]> wrote: >> >>> Log: >>> [elm] calendar: spinners for month and year now >>> >>> Adding a separated spinner for year. >>> >>> >>> >>> Author: ceolin >>> Date: 2013-01-03 12:50:10 -0800 (Thu, 03 Jan 2013) >>> New Revision: 82108 >>> Trac: http://trac.enlightenment.org/e/changeset/82108 >>> >>> Modified: >>> trunk/elementary/data/themes/widgets/calendar.edc >>> trunk/elementary/src/lib/elm_calendar.c >>> trunk/elementary/src/lib/elm_calendar.h >>> trunk/elementary/src/lib/elm_widget_calendar.h >>> >>> Modified: trunk/elementary/data/themes/widgets/calendar.edc >>> =================================================================== >>> --- trunk/elementary/data/themes/widgets/calendar.edc 2013-01-03 >>> 20:48:52 UTC (rev 82107) >>> +++ trunk/elementary/data/themes/widgets/calendar.edc 2013-01-03 >>> 20:50:10 UTC (rev 82108) >>> @@ -1,3 +1,293 @@ >>> +#define CAL_SPIN(_sufix, _relative)\ >>> + part { name: "left_bt_"#_sufix;\ >>> + mouse_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1 { to: #_relative;\ >>> + offset: 2 2;\ >>> + }\ >>> + rel2 { to: #_relative;\ >>> + offset: -3 -3;\ >>> + }\ >>> + align: 0.0 0.5;\ >>> + min: 24 24;\ >>> + max: 24 24;\ >>> + fixed: 1 1;\ >>> + image {\ >>> + normal: "bt_base1.png";\ >>> + border: 6 6 6 6;\ >>> + }\ >>> + fill.smooth : 0;\ >>> + }\ >>> + description { state: "clicked" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + image.normal: "bt_base1.png";\ >>> + image.middle: SOLID;\ >>> + }\ >>> + }\ >>> + part { name: "left_bt_"#_sufix"_over1";\ >>> + mouse_events: 0;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "left_bt_"#_sufix;\ >>> + rel2 { to: "left_bt_"#_sufix;\ >>> + relative: 1.0 0.5;\ >>> + }\ >>> + image {\ >>> + normal: "bt_hilight.png";\ >>> + border: 7 7 7 0;\ >>> + }\ >>> + }\ >>> + }\ >>> + part { name: "left_bt_"#_sufix"_over2";\ >>> + mouse_events: 1;\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "left_bt_"#_sufix;\ >>> + rel2.to: "left_bt_"#_sufix;\ >>> + image {\ >>> + normal: "bt_shine.png";\ >>> + border: 7 7 7 7;\ >>> + }\ >>> + }\ >>> + }\ >>> + part { name: "left_bt_"#_sufix"_over3";\ >>> + mouse_events: 1;\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + color: 255 255 255 0;\ >>> + rel1.to: "left_bt_"#_sufix;\ >>> + rel2.to: "left_bt_"#_sufix;\ >>> + image {\ >>> + normal: "bt_glow.png";\ >>> + border: 12 12 12 12;\ >>> + }\ >>> + fill.smooth : 0;\ >>> + }\ >>> + description { state: "clicked" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + visible: 1;\ >>> + color: 255 255 255 255;\ >>> + }\ >>> + } \ >>> + part { name: "left_bt_"#_sufix"_icon";\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "left_bt_"#_sufix;\ >>> + rel2.to: "left_bt_"#_sufix;\ >>> + align: 0.5 0.5;\ >>> + min: 16 16;\ >>> + max: 16 16;\ >>> + image.normal: "sp_bt_l.png";\ >>> + }\ >>> + description { state: "rtl" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + image.normal: "sp_bt_r.png";\ >>> + }\ >>> + }\ >>> + part { name: "right_bt_"#_sufix;\ >>> + mouse_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1 { to: #_relative;\ >>> + offset: -27 2;\ >>> + }\ >>> + rel2 { to: #_relative;\ >>> + offset: -3 -3;\ >>> + }\ >>> + align: 1.0 0.5;\ >>> + min: 24 24;\ >>> + max: 24 24;\ >>> + fixed: 1 1;\ >>> + image {\ >>> + normal: "bt_base1.png";\ >>> + border: 5 5 4 12;\ >>> + }\ >>> + fill.smooth : 0;\ >>> + }\ >>> + description { state: "clicked" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + image.normal: "bt_base1.png";\ >>> + image.middle: SOLID;\ >>> + }\ >>> + }\ >>> + part { name: "right_bt_"#_sufix"_over1";\ >>> + mouse_events: 0;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "right_bt_"#_sufix;\ >>> + rel2 { to: "right_bt_"#_sufix;\ >>> + relative: 1.0 0.5;\ >>> + }\ >>> + image {\ >>> + normal: "bt_hilight.png";\ >>> + border: 7 7 7 0;\ >>> + }\ >>> + }\ >>> + }\ >>> + part { name: "right_bt_"#_sufix"_over2";\ >>> + mouse_events: 1;\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "right_bt_"#_sufix;\ >>> + rel2.to: "right_bt_"#_sufix;\ >>> + image {\ >>> + normal: "bt_shine.png";\ >>> + border: 7 7 7 7;\ >>> + }\ >>> + }\ >>> + }\ >>> + part { name: "right_bt_"#_sufix"_over3";\ >>> + mouse_events: 1;\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + color: 255 255 255 0;\ >>> + rel1.to: "right_bt_"#_sufix;\ >>> + rel2.to: "right_bt_"#_sufix;\ >>> + image {\ >>> + normal: "bt_glow.png";\ >>> + border: 12 12 12 12;\ >>> + }\ >>> + fill.smooth : 0;\ >>> + }\ >>> + description { state: "clicked" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + visible: 1;\ >>> + color: 255 255 255 255;\ >>> + }\ >>> + }\ >>> + part { name: "right_bt_"#_sufix"_icon";\ >>> + repeat_events: 1;\ >>> + description { state: "default" 0.0;\ >>> + rel1.to: "right_bt_"#_sufix;\ >>> + rel2.to: "right_bt_"#_sufix;\ >>> + align: 0.5 0.5;\ >>> + min: 16 16;\ >>> + max: 16 16;\ >>> + image.normal: "sp_bt_r.png";\ >>> + }\ >>> + description { state: "rtl" 0.0;\ >>> + inherit: "default" 0.0;\ >>> + image.normal: "sp_bt_l.png";\ >>> + }\ >>> + }\ >>> + part { name: "text_"#_sufix;\ >>> + type: TEXT;\ >>> + mouse_events: 0;\ >>> + scale: 1;\ >>> + description { state: "default" 0.0;\ >>> + align: 0 0.5;\ >>> + fixed: 1 1;\ >>> + rel1 { relative: 1.0 0.0;\ >>> + offset: 3 2;\ >>> + to: "left_bt_"#_sufix;\ >>> + to_y: #_relative;\ >>> + }\ >>> + rel2 { relative: 0.0 1.0;\ >>> + offset: -3 -2;\ >>> + to_x: "right_bt_"#_sufix;\ >>> + to_y: #_relative;\ >>> + }\ >>> + color: 0 0 0 255;\ >>> + text {\ >>> + font: "Sans,Edje-Vera";\ >>> + size: 12;\ >>> + min: 1 1;\ >>> + align: 0.5 0.5;\ >>> + }\ >>> + }\ >>> + }\ >>> + programs {\ >>> + program { name: "dec_"#_sufix"_start";\ >>> + signal: "mouse,down,1";\ >>> + source: "left_bt_"#_sufix;\ >>> + action: SIGNAL_EMIT "elm,action,decrement,"#_sufix",start" >>> "";\ >>> + }\ >>> + program { name: "dec_"#_sufix"_stop";\ >>> + signal: "mouse,up,1";\ >>> + source: "left_bt_"#_sufix;\ >>> + action: SIGNAL_EMIT "elm,action,"#_sufix",stop" ""; \ >>> + }\ >>> + program {\ >>> + name: "left_bt_"#_sufix"_click";\ >>> + signal: "mouse,down,1";\ >>> + source: "left_bt_"#_sufix"_over2";\ >>> + action: STATE_SET "clicked" 0.0;\ >>> + target: "left_bt_"#_sufix;\ >>> + }\ >>> + program {\ >>> + name: "left_bt_"#_sufix"_unclick";\ >>> + signal: "mouse,up,1";\ >>> + source: "left_bt_"#_sufix"over2";\ >>> + action: STATE_SET "default" 0.0;\ >>> + target: "left_bt_"#_sufix;\ >>> + }\ >>> + program {\ >>> + name: "left_bt_"#_sufix"_click2";\ >>> + signal: "mouse,down,1";\ >>> + source: "left_bt_"#_sufix"_over3";\ >>> + action: STATE_SET "clicked" 0.0;\ >>> + target: "left_bt_"#_sufix"_over3";\ >>> + }\ >>> + program {\ >>> + name: "left_bt_"#_sufix"_unclick2";\ >>> + signal: "mouse,up,1";\ >>> + source: "left_bt_"#_sufix"_over3";\ >>> + action: STATE_SET "default" 0.0;\ >>> + transition: DECELERATE 0.5;\ >>> + target: "left_bt_"#_sufix"_over3";\ >>> + }\ >>> + program { name: "inc_"#_sufix"_start";\ >>> + signal: "mouse,down,1";\ >>> + source: "right_bt_"#_sufix;\ >>> + action: SIGNAL_EMIT "elm,action,increment,"#_sufix",start" >>> "";\ >>> + }\ >>> + program { name: "inc_"#_sufix"_stop";\ >>> + signal: "mouse,up,1";\ >>> + source: "right_bt_"#_sufix;\ >>> + action: SIGNAL_EMIT "elm,action,"#_sufix",stop" "";\ >>> + }\ >>> + program {\ >>> + name: "right_bt_"#_sufix"_click";\ >>> + signal: "mouse,down,1";\ >>> + source: "right_bt_"#_sufix"_over2";\ >>> + action: STATE_SET "clicked" 0.0;\ >>> + target: "right_bt_"#_sufix;\ >>> + }\ >>> + program {\ >>> + name: "right_bt_"#_sufix"_unclick";\ >>> + signal: "mouse,up,1";\ >>> + source: "right_bt_"#_sufix"_over2";\ >>> + action: STATE_SET "default" 0.0;\ >>> + target: "right_bt_"#_sufix;\ >>> + }\ >>> + program {\ >>> + name: "right_bt_"#_sufix"_click2";\ >>> + signal: "mouse,down,1";\ >>> + source: "right_bt_"#_sufix"_over3";\ >>> + action: STATE_SET "clicked" 0.0;\ >>> + target: "right_bt_"#_sufix"_over3";\ >>> + }\ >>> + program {\ >>> + name: "right_bt_"#_sufix"_unclick2";\ >>> + signal: "mouse,up,1";\ >>> + source: "right_bt_"#_sufix"_over3";\ >>> + action: STATE_SET "default" 0.0;\ >>> + transition: DECELERATE 0.5;\ >>> + target: "right_bt_"#_sufix"_over3";\ >>> + }\ >>> + program { name: "to_rtl_"#_sufix;\ >>> + signal: "edje,state,rtl";\ >>> + source: "edje";\ >>> + action: STATE_SET "rtl" 0.0;\ >>> + target: "left_bt_"#_sufix"_icon";\ >>> + target: "right_bt_"#_sufix"_icon";\ >>> + }\ >>> + program { name: "to_ltr_"#_sufix;\ >>> + signal: "edje,state,ltr";\ >>> + source: "edje";\ >>> + action: STATE_SET "default" 0.0;\ >>> + target: "left_bt_"#_sufix"_icon";\ >>> + target: "right_bt_"#_sufix"_icon";\ >>> + }\ >>> + } >>> + >>> #define CH(_pos) \ >>> part { name: "ch_"#_pos".base"; \ >>> type: RECT; \ >>> @@ -363,7 +653,7 @@ >>> align: 0.0 0.5; >>> } >>> } >>> - part { name: "spinner-base"; >>> + part { name: "spinner-base1"; >>> type: RECT; >>> mouse_events: 0; >>> description { state: "default" 0.0; >>> @@ -372,17 +662,18 @@ >>> rel1.to: "bg"; >>> rel1.offset: 6 6; >>> rel2.to: "bg"; >>> + rel2.relative: 0.5 1.0; >>> rel2.offset: -7 -7; >>> color: 255 255 255 0; >>> align: 0.0 0.0; >>> } >>> } >>> - part { name: "conf_over_spinner"; >>> + part { name: "conf_over_spinner1"; >>> mouse_events: 0; >>> description { state: "default" 0.0; >>> - rel1.to: "spinner-base"; >>> + rel1.to: "spinner-base1"; >>> rel1.offset: -3 -3; >>> - rel2.to: "spinner-base"; >>> + rel2.to: "spinner-base1"; >>> rel2.offset: 2 2; >>> image { >>> normal: "shelf_inset.png"; >>> @@ -392,13 +683,44 @@ >>> fill.smooth : 0; >>> } >>> } >>> + part { name: "spinner-base2"; >>> + type: RECT; >>> + mouse_events: 0; >>> + description { state: "default" 0.0; >>> + min: 24 24; >>> + max: 999999 24; >>> + rel1.to_x: "spinner-base1"; >>> + rel1.to_y: "bg"; >>> + rel1.relative: 1.0 0; >>> + rel1.offset: 6 6; >>> + rel2.to: "bg"; >>> + rel2.offset: -7 -7; >>> + color: 255 255 255 0; >>> + align: 0.0 0.0; >>> + } >>> + } >>> + part { name: "conf_over_spinner2"; >>> + mouse_events: 0; >>> + description { state: "default" 0.0; >>> + rel1.to: "spinner-base2"; >>> + rel1.offset: -2 -2; >>> + rel2.to: "spinner-base2"; >>> + rel2.offset: 2 2; >>> + image { >>> + normal: "shelf_inset.png"; >>> + border: 7 7 7 7; >>> + middle: 0; >>> + } >>> + fill.smooth : 0; >>> + } >>> + } >>> part { name: "table-base"; >>> type: RECT; >>> mouse_events: 0; >>> description { state: "default" 0.0; >>> min: 256 220; >>> rel1.to_x: "bg"; >>> - rel1.to_y: "spinner-base"; >>> + rel1.to_y: "spinner-base1"; >>> rel1.offset: 6 6; >>> rel1.relative: 0 1; >>> rel2.to: "bg"; >>> @@ -445,200 +767,10 @@ >>> color: 255 255 255 0; >>> } >>> } >>> - part { name: "left_bt"; >>> - mouse_events: 1; >>> - description { state: "default" 0.0; >>> - rel1 { to: "spinner-base"; >>> - offset: 2 2; >>> - } >>> - rel2 { to: "spinner-base"; >>> - offset: -3 -3; >>> - } >>> - align: 0.0 0.5; >>> - min: 24 24; >>> - max: 24 24; >>> - fixed: 1 1; >>> - image { >>> - normal: "bt_base1.png"; >>> - border: 6 6 6 6; >>> - } >>> - fill.smooth : 0; >>> - } >>> - description { state: "clicked" 0.0; >>> - inherit: "default" 0.0; >>> - image.normal: "bt_base1.png"; >>> - image.middle: SOLID; >>> - } >>> - } >>> - part { name: "left_over1"; >>> - mouse_events: 0; >>> - description { state: "default" 0.0; >>> - rel1.to: "left_bt"; >>> - rel2 { to: "left_bt"; >>> - relative: 1.0 0.5; >>> - } >>> - image { >>> - normal: "bt_hilight.png"; >>> - border: 7 7 7 0; >>> - } >>> - } >>> - } >>> - part { name: "left_over2"; >>> - mouse_events: 1; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - rel1.to: "left_bt"; >>> - rel2.to: "left_bt"; >>> - image { >>> - normal: "bt_shine.png"; >>> - border: 7 7 7 7; >>> - } >>> - } >>> - } >>> - part { name: "left_over3"; >>> - mouse_events: 1; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - color: 255 255 255 0; >>> - rel1.to: "left_bt"; >>> - rel2.to: "left_bt"; >>> - image { >>> - normal: "bt_glow.png"; >>> - border: 12 12 12 12; >>> - } >>> - fill.smooth : 0; >>> - } >>> - description { state: "clicked" 0.0; >>> - inherit: "default" 0.0; >>> - visible: 1; >>> - color: 255 255 255 255; >>> - } >>> - } >>> - part { name: "right_bt"; >>> - mouse_events: 1; >>> - description { state: "default" 0.0; >>> - rel1 { to: "spinner-base"; >>> - offset: -27 3; >>> - } >>> - rel2 { to: "spinner-base"; >>> - offset: -3 -3; >>> - } >>> - align: 1.0 0.5; >>> - min: 24 24; >>> - max: 24 24; >>> - fixed: 1 1; >>> - image { >>> - normal: "bt_base1.png"; >>> - border: 5 5 4 12; >>> - } >>> - fill.smooth : 0; >>> - } >>> - description { state: "clicked" 0.0; >>> - inherit: "default" 0.0; >>> - image.normal: "bt_base1.png"; >>> - image.middle: SOLID; >>> - } >>> - } >>> - part { name: "right_over1"; >>> - mouse_events: 0; >>> - description { state: "default" 0.0; >>> - rel1.to: "right_bt"; >>> - rel2 { to: "right_bt"; >>> - relative: 1.0 0.5; >>> - } >>> - image { >>> - normal: "bt_hilight.png"; >>> - border: 7 7 7 0; >>> - } >>> - } >>> - } >>> - part { name: "right_over2"; >>> - mouse_events: 1; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - rel1.to: "right_bt"; >>> - rel2.to: "right_bt"; >>> - image { >>> - normal: "bt_shine.png"; >>> - border: 7 7 7 7; >>> - } >>> - } >>> - } >>> - part { name: "right_over3"; >>> - mouse_events: 1; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - color: 255 255 255 0; >>> - rel1.to: "right_bt"; >>> - rel2.to: "right_bt"; >>> - image { >>> - normal: "bt_glow.png"; >>> - border: 12 12 12 12; >>> - } >>> - fill.smooth : 0; >>> - } >>> - description { state: "clicked" 0.0; >>> - inherit: "default" 0.0; >>> - visible: 1; >>> - color: 255 255 255 255; >>> - } >>> - } >>> - part { name: "left_bt_icon"; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - rel1.to: "left_bt"; >>> - rel2.to: "left_bt"; >>> - align: 0.5 0.5; >>> - min: 16 16; >>> - max: 16 16; >>> - image.normal: "sp_bt_l.png"; >>> - } >>> - description { state: "rtl" 0.0; >>> - inherit: "default" 0.0; >>> - image.normal: "sp_bt_r.png"; >>> - } >>> - } >>> - part { name: "right_bt_icon"; >>> - repeat_events: 1; >>> - description { state: "default" 0.0; >>> - rel1.to: "right_bt"; >>> - rel2.to: "right_bt"; >>> - align: 0.5 0.5; >>> - min: 16 16; >>> - max: 16 16; >>> - image.normal: "sp_bt_r.png"; >>> - } >>> - description { state: "rtl" 0.0; >>> - inherit: "default" 0.0; >>> - image.normal: "sp_bt_l.png"; >>> - } >>> - } >>> - part { name: "month_text"; >>> - type: TEXT; >>> - mouse_events: 0; >>> - scale: 1; >>> - description { state: "default" 0.0; >>> - align: 0 0.5; >>> - fixed: 1 1; >>> - rel1 { relative: 1.0 0.0; >>> - offset: 3 2; >>> - to: "left_bt"; >>> - to_y: "spinner-base"; >>> - } >>> - rel2 { relative: 0.0 1.0; >>> - offset: -3 -2; >>> - to_x: "right_bt"; >>> - to_y: "spinner-base"; >>> - } >>> - color: 0 0 0 255; >>> - text { >>> - font: "Sans,Edje-Vera"; >>> - size: 12; >>> - min: 1 1; >>> - align: 0.5 0.5; >>> - } >>> - } >>> - } >>> + >>> + CAL_SPIN(month, spinner-base1) >>> + CAL_SPIN(year, spinner-base2) >>> + >>> CH(0) CH(1) CH(2) CH(3) CH(4) CH(5) CH(6) >>> CIT(0) CIT(1) CIT(2) CIT(3) CIT(4) CIT(5) CIT(6) >>> CIT(7) CIT(8) CIT(9) CIT(10) CIT(11) CIT(12) CIT(13) >>> @@ -647,100 +779,6 @@ >>> CIT(28) CIT(29) CIT(30) CIT(31) CIT(32) CIT(33) CIT(34) >>> CIT(35) CIT(36) CIT(37) CIT(38) CIT(39) CIT(40) CIT(41) >>> } >>> - programs { >>> - program { name: "dec_start"; >>> - signal: "mouse,down,1"; >>> - source: "left_bt"; >>> - action: SIGNAL_EMIT "elm,action,decrement,start" ""; >>> - } >>> - program { name: "dec_stop"; >>> - signal: "mouse,up,1"; >>> - source: "left_bt"; >>> - action: SIGNAL_EMIT "elm,action,stop" ""; >>> - } >>> - program { name: "inc_start"; >>> - signal: "mouse,down,1"; >>> - source: "right_bt"; >>> - action: SIGNAL_EMIT "elm,action,increment,start" ""; >>> - } >>> - program { name: "inc_stop"; >>> - signal: "mouse,up,1"; >>> - source: "right_bt"; >>> - action: SIGNAL_EMIT "elm,action,stop" ""; >>> - } >>> - program { >>> - name: "left_bt_click"; >>> - signal: "mouse,down,1"; >>> - source: "left_over2"; >>> - action: STATE_SET "clicked" 0.0; >>> - target: "left_bt"; >>> - } >>> - program { >>> - name: "left_bt_unclick"; >>> - signal: "mouse,up,1"; >>> - source: "left_over2"; >>> - action: STATE_SET "default" 0.0; >>> - target: "left_bt"; >>> - } >>> - program { >>> - name: "left_bt_click2"; >>> - signal: "mouse,down,1"; >>> - source: "left_over3"; >>> - action: STATE_SET "clicked" 0.0; >>> - target: "left_over3"; >>> - } >>> - program { >>> - name: "left_bt_unclick2"; >>> - signal: "mouse,up,1"; >>> - source: "left_over3"; >>> - action: STATE_SET "default" 0.0; >>> - transition: DECELERATE 0.5; >>> - target: "left_over3"; >>> - } >>> - program { >>> - name: "right_bt_click"; >>> - signal: "mouse,down,1"; >>> - source: "right_over2"; >>> - action: STATE_SET "clicked" 0.0; >>> - target: "right_bt"; >>> - } >>> - program { >>> - name: "right_bt_unclick"; >>> - signal: "mouse,up,1"; >>> - source: "right_over2"; >>> - action: STATE_SET "default" 0.0; >>> - target: "right_bt"; >>> - } >>> - program { >>> - name: "right_bt_click2"; >>> - signal: "mouse,down,1"; >>> - source: "right_over3"; >>> - action: STATE_SET "clicked" 0.0; >>> - target: "right_over3"; >>> - } >>> - program { >>> - name: "right_bt_unclick2"; >>> - signal: "mouse,up,1"; >>> - source: "right_over3"; >>> - action: STATE_SET "default" 0.0; >>> - transition: DECELERATE 0.5; >>> - target: "right_over3"; >>> - } >>> - program { name: "to_rtl"; >>> - signal: "edje,state,rtl"; >>> - source: "edje"; >>> - action: STATE_SET "rtl" 0.0; >>> - target: "right_bt_icon"; >>> - target: "left_bt_icon"; >>> - } >>> - program { name: "to_ltr"; >>> - signal: "edje,state,ltr"; >>> - source: "edje"; >>> - action: STATE_SET "default" 0.0; >>> - target: "right_bt_icon"; >>> - target: "left_bt_icon"; >>> - } >>> - } >>> } >>> >>> #undef CIT >>> >>> Modified: trunk/elementary/src/lib/elm_calendar.c >>> =================================================================== >>> --- trunk/elementary/src/lib/elm_calendar.c 2013-01-03 20:48:52 UTC >>> (rev 82107) >>> +++ trunk/elementary/src/lib/elm_calendar.c 2013-01-03 20:50:10 UTC >>> (rev 82108) >>> @@ -136,6 +136,24 @@ >>> return strdup(buf); >>> } >>> >>> +static char * >>> +_format_month(struct tm *selected_time) >>> +{ >>> + char buf[32]; >>> + >>> + if (!strftime(buf, sizeof(buf), E_("%B"), selected_time)) return NULL; >>> + return strdup(buf); >>> +} >>> + >>> +static char * >>> +_format_year(struct tm *selected_time) >>> +{ >>> + char buf[32]; >>> + >>> + if (!strftime(buf, sizeof(buf), E_("%Y"), selected_time)) return NULL; >>> + return strdup(buf); >>> +} >>> + >>> static inline void >>> _cit_mark(Evas_Object *cal, >>> int cit, >>> @@ -187,14 +205,21 @@ >>> { >>> char *buf; >>> >>> - /* Set selected month */ >>> - buf = sd->format_func(&sd->shown_time); >>> + buf = _format_month(&sd->shown_time); >>> if (buf) >>> { >>> - elm_layout_text_set(sd->obj, "month_text", buf); >>> + elm_layout_text_set(sd->obj, "text_month", buf); >>> free(buf); >>> } >>> - else elm_layout_text_set(sd->obj, "month_text", ""); >>> + else elm_layout_text_set(sd->obj, "text_month", ""); >>> + >>> + buf = _format_year(&sd->shown_time); >>> + if (buf) >>> + { >>> + elm_layout_text_set(sd->obj, "text_year", buf); >>> + free(buf); >>> + } >>> + else elm_layout_text_set(sd->obj, "text_year", ""); >>> } >>> >>> static char * >>> @@ -255,28 +280,43 @@ >>> Elm_Access_Info *ai; >>> ELM_CALENDAR_DATA_GET(obj, sd); >>> >>> - // decrement button >>> - sd->dec_btn_access = _elm_access_edje_object_part_object_register >>> - (obj, elm_layout_edje_get(obj), "left_bt"); >>> - ai = _elm_access_object_get(sd->dec_btn_access); >>> - _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar decrement >>> button")); >>> + sd->dec_btn_month_access = >>> _elm_access_edje_object_part_object_register >>> + (obj, elm_layout_edje_get(obj), >>> "left_bt_month"); >>> + ai = _elm_access_object_get(sd->dec_btn_month_access); >>> + _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar decrement >>> month button")); >>> >>> - // increment button >>> - sd->inc_btn_access = _elm_access_edje_object_part_object_register >>> - (obj, elm_layout_edje_get(obj), "right_bt"); >>> - ai = _elm_access_object_get(sd->inc_btn_access); >>> - _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar increment >>> button")); >>> + sd->dec_btn_year_access = _elm_access_edje_object_part_object_register >>> + (obj, elm_layout_edje_get(obj), >>> "left_bt_year"); >>> + ai = _elm_access_object_get(sd->dec_btn_year_access); >>> + _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar decrement year >>> button")); >>> >>> - // month text >>> + sd->inc_btn_month_access = >>> _elm_access_edje_object_part_object_register >>> + (obj, elm_layout_edje_get(obj), >>> "right_bt_month"); >>> + ai = _elm_access_object_get(sd->inc_btn_month_access); >>> + _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar increment >>> month button")); >>> + >>> + sd->inc_btn_year_access = _elm_access_edje_object_part_object_register >>> + (obj, elm_layout_edje_get(obj), >>> "right_bt_year"); >>> + ai = _elm_access_object_get(sd->inc_btn_year_access); >>> + _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar increment year >>> button")); >>> + >>> sd->month_access = _elm_access_edje_object_part_object_register >>> - (obj, elm_layout_edje_get(obj), "month_text"); >>> + (obj, elm_layout_edje_get(obj), "text_month"); >>> ai = _elm_access_object_get(sd->month_access); >>> _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar month")); >>> >>> + sd->year_access = _elm_access_edje_object_part_object_register >>> + (obj, elm_layout_edje_get(obj), "text_year"); >>> + ai = _elm_access_object_get(sd->year_access); >>> + _elm_access_text_set(ai, ELM_ACCESS_TYPE, E_("calendar year")); >>> + >>> po = (Evas_Object *)edje_object_part_object_get >>> - (elm_layout_edje_get(obj), "month_text"); >>> + (elm_layout_edje_get(obj), "text_month"); >>> evas_object_pass_events_set(po, EINA_FALSE); >>> >>> + po = (Evas_Object *)edje_object_part_object_get >>> + (elm_layout_edje_get(obj), "text_year"); >>> + evas_object_pass_events_set(po, EINA_FALSE); >>> } >>> >>> static void >>> @@ -517,7 +557,7 @@ >>> } >>> >>> static Eina_Bool >>> -_update_month(Evas_Object *obj, >>> +_update_data(Evas_Object *obj, Eina_Bool month, >>> int delta) >>> { >>> struct tm time_check; >>> @@ -527,30 +567,40 @@ >>> >>> /* check if it's a valid time. for 32 bits, year greater than 2037 is >>> not */ >>> time_check = sd->shown_time; >>> - time_check.tm_mon += delta; >>> + if (month) >>> + time_check.tm_mon += delta; >>> + else >>> + time_check.tm_year += delta; >>> if (mktime(&time_check) == -1) >>> return EINA_FALSE; >>> >>> - sd->shown_time.tm_mon += delta; >>> - if (sd->shown_time.tm_mon < 0) >>> + if (month) >>> { >>> - if (sd->shown_time.tm_year == sd->year_min) >>> - { >>> - sd->shown_time.tm_mon++; >>> - return EINA_FALSE; >>> - } >>> - sd->shown_time.tm_mon = 11; >>> - sd->shown_time.tm_year--; >>> + sd->shown_time.tm_mon += delta; >>> + if (sd->shown_time.tm_mon < 0) >>> + { >>> + if (sd->shown_time.tm_year == sd->year_min) >>> + { >>> + sd->shown_time.tm_mon++; >>> + return EINA_FALSE; >>> + } >>> + sd->shown_time.tm_mon = 11; >>> + sd->shown_time.tm_year--; >>> + } >>> + else if (sd->shown_time.tm_mon > 11) >>> + { >>> + if (sd->shown_time.tm_year == sd->year_max) >>> + { >>> + sd->shown_time.tm_mon--; >>> + return EINA_FALSE; >>> + } >>> + sd->shown_time.tm_mon = 0; >>> + sd->shown_time.tm_year++; >>> + } >>> } >>> - else if (sd->shown_time.tm_mon > 11) >>> + else >>> { >>> - if (sd->shown_time.tm_year == sd->year_max) >>> - { >>> - sd->shown_time.tm_mon--; >>> - return EINA_FALSE; >>> - } >>> - sd->shown_time.tm_mon = 0; >>> - sd->shown_time.tm_year++; >>> + sd->shown_time.tm_year += delta; >>> } >>> >>> if ((sd->select_mode != ELM_CALENDAR_SELECT_MODE_ONDEMAND) >>> @@ -569,21 +619,35 @@ >>> } >>> >>> static Eina_Bool >>> -_spin_value(void *data) >>> +_spin_month_value(void *data) >>> { >>> ELM_CALENDAR_DATA_GET(data, sd); >>> >>> - if (_update_month(data, sd->spin_speed)) >>> + if (_update_data(data, EINA_TRUE, sd->spin_speed)) >>> evas_object_smart_changed(data); >>> >>> sd->interval = sd->interval / 1.05; >>> - ecore_timer_interval_set(sd->spin, sd->interval); >>> + ecore_timer_interval_set(sd->spin_month, sd->interval); >>> >>> return ECORE_CALLBACK_RENEW; >>> } >>> >>> +static Eina_Bool >>> +_spin_year_value(void *data) >>> +{ >>> + ELM_CALENDAR_DATA_GET(data, sd); >>> + >>> + if (_update_data(data, EINA_FALSE, sd->spin_speed)) >>> + evas_object_smart_changed(data); >>> + >>> + sd->interval = sd->interval / 1.05; >>> + ecore_timer_interval_set(sd->spin_year, sd->interval); >>> + >>> + return ECORE_CALLBACK_RENEW; >>> +} >>> + >>> static void >>> -_button_inc_start(void *data, >>> +_button_month_inc_start(void *data, >>> Evas_Object *obj __UNUSED__, >>> const char *emission __UNUSED__, >>> const char *source __UNUSED__) >>> @@ -592,14 +656,14 @@ >>> >>> sd->interval = sd->first_interval; >>> sd->spin_speed = 1; >>> - if (sd->spin) ecore_timer_del(sd->spin); >>> - sd->spin = ecore_timer_add(sd->interval, _spin_value, data); >>> + if (sd->spin_month) ecore_timer_del(sd->spin_month); >>> + sd->spin_month = ecore_timer_add(sd->interval, _spin_month_value, >>> data); >>> >>> - _spin_value(data); >>> + _spin_month_value(data); >>> } >>> >>> static void >>> -_button_dec_start(void *data, >>> +_button_month_dec_start(void *data, >>> Evas_Object *obj __UNUSED__, >>> const char *emission __UNUSED__, >>> const char *source __UNUSED__) >>> @@ -608,25 +672,70 @@ >>> >>> sd->interval = sd->first_interval; >>> sd->spin_speed = -1; >>> - if (sd->spin) ecore_timer_del(sd->spin); >>> - sd->spin = ecore_timer_add(sd->interval, _spin_value, data); >>> + if (sd->spin_month) ecore_timer_del(sd->spin_month); >>> + sd->spin_month = ecore_timer_add(sd->interval, _spin_month_value, >>> data); >>> >>> - _spin_value(data); >>> + _spin_month_value(data); >>> } >>> >>> static void >>> -_button_stop(void *data, >>> - Evas_Object *obj __UNUSED__, >>> - const char *emission __UNUSED__, >>> - const char *source __UNUSED__) >>> +_button_month_stop(void *data, >>> + Evas_Object *obj __UNUSED__, >>> + const char *emission __UNUSED__, >>> + const char *source __UNUSED__) >>> { >>> ELM_CALENDAR_DATA_GET(data, sd); >>> >>> sd->interval = sd->first_interval; >>> - if (sd->spin) ecore_timer_del(sd->spin); >>> - sd->spin = NULL; >>> + if (sd->spin_month) ecore_timer_del(sd->spin_month); >>> + sd->spin_month = NULL; >>> } >>> >>> +static void >>> +_button_year_inc_start(void *data, >>> + Evas_Object *obj __UNUSED__, >>> + const char *emission __UNUSED__, >>> + const char *source __UNUSED__) >>> +{ >>> + ELM_CALENDAR_DATA_GET(data, sd); >>> + >>> + sd->interval = sd->first_interval; >>> + sd->spin_speed = 1; >>> + if (sd->spin_year) ecore_timer_del(sd->spin_year); >>> + sd->spin_year = ecore_timer_add(sd->interval, _spin_year_value, data); >>> + >>> + _spin_year_value(data); >>> +} >>> + >>> +static void >>> +_button_year_dec_start(void *data, >>> + Evas_Object *obj __UNUSED__, >>> + const char *emission __UNUSED__, >>> + const char *source __UNUSED__) >>> +{ >>> + ELM_CALENDAR_DATA_GET(data, sd); >>> + >>> + sd->interval = sd->first_interval; >>> + sd->spin_speed = -1; >>> + if (sd->spin_year) ecore_timer_del(sd->spin_year); >>> + sd->spin_year = ecore_timer_add(sd->interval, _spin_year_value, data); >>> + >>> + _spin_year_value(data); >>> +} >>> + >>> +static void >>> +_button_year_stop(void *data, >>> + Evas_Object *obj __UNUSED__, >>> + const char *emission __UNUSED__, >>> + const char *source __UNUSED__) >>> +{ >>> + ELM_CALENDAR_DATA_GET(data, sd); >>> + >>> + sd->interval = sd->first_interval; >>> + if (sd->spin_year) ecore_timer_del(sd->spin_year); >>> + sd->spin_year = NULL; >>> +} >>> + >>> static int >>> _get_item_day(Evas_Object *obj, >>> int selected_it) >>> @@ -735,12 +844,12 @@ >>> if ((!strcmp(ev->keyname, "Prior")) || >>> ((!strcmp(ev->keyname, "KP_Prior")) && (!ev->string))) >>> { >>> - if (_update_month(obj, -1)) _populate(obj); >>> + if (_update_data(obj, EINA_TRUE, -1)) _populate(obj); >>> } >>> else if ((!strcmp(ev->keyname, "Next")) || >>> ((!strcmp(ev->keyname, "KP_Next")) && (!ev->string))) >>> { >>> - if (_update_month(obj, 1)) _populate(obj); >>> + if (_update_data(obj, EINA_TRUE, 1)) _populate(obj); >>> } >>> else if ((sd->select_mode != ELM_CALENDAR_SELECT_MODE_NONE) >>> && ((sd->select_mode != ELM_CALENDAR_SELECT_MODE_ONDEMAND) >>> @@ -819,15 +928,24 @@ >>> priv->selectable = (~(ELM_CALENDAR_SELECTABLE_NONE)); >>> >>> edje_object_signal_callback_add >>> - (wd->resize_obj, "elm,action,increment,start", "*", >>> - _button_inc_start, obj); >>> + (wd->resize_obj, "elm,action,increment,month,start", "*", >>> + _button_month_inc_start, obj); >>> edje_object_signal_callback_add >>> - (wd->resize_obj, "elm,action,decrement,start", "*", >>> - _button_dec_start, obj); >>> + (wd->resize_obj, "elm,action,decrement,month,start", "*", >>> + _button_month_dec_start, obj); >>> edje_object_signal_callback_add >>> - (wd->resize_obj, "elm,action,stop", "*", >>> - _button_stop, obj); >>> + (wd->resize_obj, "elm,action,increment,year,start", "*", >>> + _button_year_inc_start, obj); >>> edje_object_signal_callback_add >>> + (wd->resize_obj, "elm,action,decrement,year,start", "*", >>> + _button_year_dec_start, obj); >>> + edje_object_signal_callback_add >>> + (wd->resize_obj, "elm,action,month,stop", "*", >>> + _button_month_stop, obj); >>> + edje_object_signal_callback_add >>> + (wd->resize_obj, "elm,action,year,stop", "*", >>> + _button_year_stop, obj); >>> + edje_object_signal_callback_add >>> (wd->resize_obj, "elm,action,selected", "*", >>> _day_selected, obj); >>> >>> @@ -875,7 +993,8 @@ >>> Elm_Calendar_Mark *mark; >>> Elm_Calendar_Smart_Data *sd = _pd; >>> >>> - if (sd->spin) ecore_timer_del(sd->spin); >>> + if (sd->spin_month) ecore_timer_del(sd->spin_month); >>> + if (sd->spin_year) ecore_timer_del(sd->spin_year); >>> if (sd->update_timer) ecore_timer_del(sd->update_timer); >>> >>> if (sd->marks) >>> @@ -925,9 +1044,13 @@ >>> Elm_Calendar_Smart_Data *sd = _pd; >>> >>> items = eina_list_append(items, sd->month_access); >>> - items = eina_list_append(items, sd->dec_btn_access); >>> - items = eina_list_append(items, sd->inc_btn_access); >>> + items = eina_list_append(items, sd->dec_btn_month_access); >>> + items = eina_list_append(items, sd->inc_btn_month_access); >>> >>> + items = eina_list_append(items, sd->year_access); >>> + items = eina_list_append(items, sd->dec_btn_year_access); >>> + items = eina_list_append(items, sd->inc_btn_year_access); >>> + >>> day = 0; >>> maxdays = _maxdays_get(&sd->shown_time); >>> for (i = 0; i < 42; i++) >>> @@ -976,15 +1099,25 @@ >>> } >>> } >>> >>> - if (sd->dec_btn_access) >>> + if (sd->dec_btn_month_access) >>> _elm_access_edje_object_part_object_unregister >>> - (obj, elm_layout_edje_get(obj), "left_bt"); >>> - if (sd->inc_btn_access) >>> + (obj, elm_layout_edje_get(obj), "left_bt_month"); >>> + if (sd->inc_btn_month_access) >>> _elm_access_edje_object_part_object_unregister >>> - (obj, elm_layout_edje_get(obj), "right_bt"); >>> + (obj, elm_layout_edje_get(obj), "right_bt_month"); >>> if (sd->month_access) >>> _elm_access_edje_object_part_object_unregister >>> - (obj, elm_layout_edje_get(obj), "month_text"); >>> + (obj, elm_layout_edje_get(obj), "text_month"); >>> + >>> + if (sd->dec_btn_year_access) >>> + _elm_access_edje_object_part_object_unregister >>> + (obj, elm_layout_edje_get(obj), "left_bt_year"); >>> + if (sd->inc_btn_year_access) >>> + _elm_access_edje_object_part_object_unregister >>> + (obj, elm_layout_edje_get(obj), "right_bt_year"); >>> + if (sd->year_access) >>> + _elm_access_edje_object_part_object_unregister >>> + (obj, elm_layout_edje_get(obj), "text_year"); >>> } >>> } >>> >>> @@ -1238,7 +1371,7 @@ >>> *ret = EINA_TRUE; >>> } >>> >>> -EAPI void >>> +EINA_DEPRECATED EAPI void >>> elm_calendar_format_function_set(Evas_Object *obj, >>> Elm_Calendar_Format_Cb format_function) >>> { >>> @@ -1253,7 +1386,6 @@ >>> Elm_Calendar_Smart_Data *sd = _pd; >>> >>> sd->format_func = format_function; >>> - _set_month_year(sd); >>> } >>> >>> EAPI Elm_Calendar_Mark * >>> >>> Modified: trunk/elementary/src/lib/elm_calendar.h >>> =================================================================== >>> --- trunk/elementary/src/lib/elm_calendar.h 2013-01-03 20:48:52 UTC >>> (rev 82107) >>> +++ trunk/elementary/src/lib/elm_calendar.h 2013-01-03 20:50:10 UTC >>> (rev 82108) >>> @@ -640,7 +640,7 @@ >>> * >>> * @ingroup Calendar >>> */ >>> -EAPI void elm_calendar_format_function_set(Evas_Object >>> *obj, Elm_Calendar_Format_Cb format_func); >>> +EINA_DEPRECATED EAPI void >>> elm_calendar_format_function_set(Evas_Object *obj, Elm_Calendar_Format_Cb >>> format_func); >>> >>> /** >>> * Add a new mark to the calendar >>> >>> Modified: trunk/elementary/src/lib/elm_widget_calendar.h >>> =================================================================== >>> --- trunk/elementary/src/lib/elm_widget_calendar.h 2013-01-03 >>> 20:48:52 UTC (rev 82107) >>> +++ trunk/elementary/src/lib/elm_widget_calendar.h 2013-01-03 >>> 20:50:10 UTC (rev 82108) >>> @@ -34,15 +34,18 @@ >>> int year_min, year_max, spin_speed; >>> int today_it, selected_it, first_day_it; >>> Elm_Calendar_Weekday first_week_day; >>> - Ecore_Timer *spin, *update_timer; >>> + Ecore_Timer *spin_month, *spin_year, *update_timer; >>> Elm_Calendar_Format_Cb format_func; >>> const char *weekdays[ELM_DAY_LAST]; >>> struct tm current_time, selected_time, shown_time; >>> Day_Color day_color[42]; // EINA_DEPRECATED >>> Elm_Calendar_Select_Mode select_mode; >>> - Evas_Object *inc_btn_access; >>> - Evas_Object *dec_btn_access; >>> + Evas_Object *inc_btn_month_access; >>> + Evas_Object *dec_btn_month_access; >>> Evas_Object *month_access; >>> + Evas_Object *inc_btn_year_access; >>> + Evas_Object *dec_btn_year_access; >>> + Evas_Object *year_access; >>> Eina_Bool selected : 1; >>> Elm_Calendar_Selectable selectable; >>> }; >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, >>> MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current >>> with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft >>> MVPs and experts. ON SALE this month only -- learn more at: >>> http://p.sf.net/sfu/learnmore_122712 >>> _______________________________________________ >>> enlightenment-svn mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >>> >> >> > ------------------------------------------------------------------------------ > Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, > MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current > with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft > MVPs and experts. SALE $99.99 this month only -- learn more at: > http://p.sf.net/sfu/learnmore_122412 > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel Regards, Flávio Ceolin ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122412 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
