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

Reply via email to