カレンダーコントロールで表示する順序を任意に設定するには

【ご質問】
Curl標準のカレンダーコントロールにて、スピンコントロールが月→年の順に表示されていますが、
年→月の順とすることは可能でしょうか。

【回答】
CalendarControlに用意されているオプション等を設定するだけで、
スピンコントロールの並びを任意に変えることは出来ません。

しかし、CalendarControlのグラフィック階層をたどる方法で変更することは可能です。
この方法は、CalendarControlのグラフィック階層は固定であるということを前提としています。
バージョンが代わった際にCalendarControlのグラフィック階層が変更されていると、
この方法は使えなくなりますので御注意下さい。

詳細は以下のサンプルをご参照ください。

{curl 7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{value
    let calendar:CalendarControl = {CalendarControl}
    let cal-ui:SkinnableCalendarControlUI = calendar.ui-object asa SkinnableCalendarControlUI
    let internal-frame:Frame = {cal-ui.graphical-children.read-one} asa Frame
    let internal-grid:Grid = {internal-frame.graphical-children.read-one} asa Grid
    let calendar-objects:{Array-of Graphic} = {{Array-of Graphic}}
    {for g:Graphic in internal-grid.graphical-children do
        {calendar-objects.append g}
    }

    def v-fid = {GridFiducial internal-grid, horizontal? = false}
    def h-fid = {GridFiducial internal-grid, horizontal? = true}

    {internal-grid.add
        calendar-objects[1],
        left = {internal-grid.left}, top = {internal-grid.top},
        right = v-fid, bottom = h-fid
    }   
    {internal-grid.add
        calendar-objects[0],
        left = v-fid, top = {internal-grid.top},
        right = {internal-grid.right}, bottom = h-fid,
        vorigin = {internal-grid.vorigin-fiducial}
    }
    {internal-grid.add
        calendar-objects[2],
        left = {internal-grid.left}, top = h-fid,
        right = {internal-grid.right}, bottom = {internal-grid.bottom}
    }

    {Table columns = 2,
        {text 通常のCalendar}, {text カスタマイズしたCalendar},
        {CalendarControl}, calendar
    }
}