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

Reply via email to