On Tue, Jan 8, 2013 at 12:16 AM, Flávio Ceolin <[email protected] > wrote:
> 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 ? > Yes I think it will be better to make it optional and leave the default bahevior. Thanks for the reply. Daniel Juyung Seo (SeoZ) > > > > > 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 > ------------------------------------------------------------------------------ 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
