Ticket #7947: time_weekday_27082011.patch

File time_weekday_27082011.patch, 3.8 KB (added by hamish, 13 years ago)

query locale kit for week start

  • src/preferences/time/DateTimeView.h

     
    3434    virtual                     ~DateTimeView();
    3535
    3636    virtual void                AttachedToWindow();
    37     virtual void                Draw(BRect updaterect);
    3837    virtual void                MessageReceived(BMessage* message);
    3938
    4039            bool                CheckCanRevert();
  • src/preferences/time/DateTimeView.cpp

     
    4646
    4747
    4848DateTimeView::DateTimeView(const char* name)
    49     : 
     49    :
    5050    BGroupView(name, B_HORIZONTAL, 5),
    5151    fGmtTime(NULL),
    5252    fUseGmtTime(false),
     
    8282
    8383
    8484void
    85 DateTimeView::Draw(BRect /*updateRect*/)
    86 {
    87     rgb_color viewcolor = ViewColor();
    88     rgb_color dark = tint_color(viewcolor, B_DARKEN_4_TINT);
    89     rgb_color light = tint_color(viewcolor, B_LIGHTEN_MAX_TINT);
    90 
    91     // draw a separator line
    92     BRect bounds(Bounds());
    93     BPoint start(bounds.Width() / 2.0f, bounds.top + 5.0f);
    94     BPoint end(bounds.Width() / 2.0, bounds.bottom - 5.0f);
    95 
    96     BeginLineArray(2);
    97         AddLine(start, end, dark);
    98         start.x++;
    99         end.x++;
    100         AddLine(start, end, light);
    101     EndLineArray();
    102 
    103     fTimeEdit->Draw(bounds);
    104     fDateEdit->Draw(bounds);
    105 }
    106 
    107 
    108 void
    10985DateTimeView::MessageReceived(BMessage* message)
    11086{
    11187    int32 change;
     
    211187void
    212188DateTimeView::_InitView()
    213189{
    214     fCalendarView = new BCalendarView("calendar");
     190    BPrivate::week_start weekStart = (BPrivate::week_start)
     191        BLocale::Default()->StartOfWeek();
     192    fCalendarView = new BCalendarView("calendar", weekStart);
    215193    fCalendarView->SetWeekNumberHeaderVisible(false);
    216194    fCalendarView->SetSelectionMessage(new BMessage(kDayChanged));
    217195    fCalendarView->SetInvocationMessage(new BMessage(kDayChanged));
     
    219197    fDateEdit = new TDateEdit("dateEdit", 3);
    220198    fTimeEdit = new TTimeEdit("timeEdit", 4);
    221199    fClock = new TAnalogClock("analogClock");
    222    
     200
    223201    BTime time(BTime::CurrentTime(B_LOCAL_TIME));
    224202    fClock->SetTime(time.Hour(), time.Minute(), time.Second());
    225203
  • headers/private/shared/CalendarView.h

     
    3636                                BCalendarView(BRect frame, const char *name, week_start start,
    3737                                    uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP,
    3838                                    uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE);
    39                                
     39
    4040                                BCalendarView(const char* name,
    4141                                    uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE);
    4242
     43                                BCalendarView(const char* name, week_start start,
     44                                    uint32 flags = B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE);
     45
    4346        virtual                 ~BCalendarView();
    4447
    4548                                BCalendarView(BMessage *archive);
     
    9194
    9295        virtual void            ResizeToPreferred();
    9396        virtual void            GetPreferredSize(float *width, float *height);
    94        
     97
    9598        virtual BSize           MaxSize();
    9699        virtual BSize           MinSize();
    97100        virtual BSize           PreferredSize();
  • src/kits/shared/CalendarView.cpp

     
    9191}
    9292
    9393
     94BCalendarView::BCalendarView(const char* name, week_start start,
     95    uint32 flags)
     96    :
     97    BView(name, flags),
     98    BInvoker(),
     99    fSelectionMessage(NULL),
     100    fDay(0),
     101    fYear(0),
     102    fMonth(0),
     103    fFocusChanged(false),
     104    fSelectionChanged(false),
     105    fWeekStart(start),
     106    fDayNameHeaderVisible(true),
     107    fWeekNumberHeaderVisible(true)
     108{
     109    _InitObject();
     110}
     111
     112
    94113BCalendarView::~BCalendarView()
    95114{
    96115    SetSelectionMessage(NULL);