]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/calctrlg.h
Use wxGetTranslation() instead of _() in the public headers.
[wxWidgets.git] / include / wx / generic / calctrlg.h
index e4d3beabff8c31cb75ed89113ebbbd2415f289c8..8e430b6231a1f8402b4e1207c9cc080625e73b32 100644 (file)
@@ -1,10 +1,9 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        generic/calctrlg.h
+// Name:        wx/generic/calctrlg.h
 // Purpose:     generic implementation of date-picker control
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     29.12.99
-// RCS-ID:      $Id$
 // Copyright:   (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -18,6 +17,7 @@
 class WXDLLIMPEXP_FWD_CORE wxComboBox;
 class WXDLLIMPEXP_FWD_CORE wxStaticText;
 class WXDLLIMPEXP_FWD_CORE wxSpinCtrl;
+class WXDLLIMPEXP_FWD_CORE wxSpinEvent;
 
 // ----------------------------------------------------------------------------
 // wxGenericCalendarCtrl
@@ -84,9 +84,6 @@ public:
     // corresponds to wxCAL_NO_YEAR_CHANGE bit, deprecated, generic only
     void EnableYearChange(bool enable = true);
 
-    // corresponds to wxCAL_SHOW_HOLIDAYS bit, generic only
-    virtual void EnableHolidayDisplay(bool display = true);
-
 
     // customization
     // -------------
@@ -127,14 +124,14 @@ public:
 
     virtual wxCalendarDateAttr *GetAttr(size_t day) const
     {
-        wxCHECK_MSG( day > 0 && day < 32, NULL, _T("invalid day") );
+        wxCHECK_MSG( day > 0 && day < 32, NULL, wxT("invalid day") );
 
         return m_attrs[day - 1];
     }
 
     virtual void SetAttr(size_t day, wxCalendarDateAttr *attr)
     {
-        wxCHECK_RET( day > 0 && day < 32, _T("invalid day") );
+        wxCHECK_RET( day > 0 && day < 32, wxT("invalid day") );
 
         delete m_attrs[day - 1];
         m_attrs[day - 1] = attr;
@@ -169,6 +166,7 @@ protected:
     // override some base class virtuals
     virtual wxSize DoGetBestSize() const;
     virtual void DoMoveWindow(int x, int y, int width, int height);
+    virtual void DoGetSize(int *width, int *height) const;
 
 private:
     // common part of all ctors
@@ -183,7 +181,9 @@ private:
     void OnDClick(wxMouseEvent& event);
     void OnChar(wxKeyEvent& event);
     void OnMonthChange(wxCommandEvent& event);
-    void OnYearChange(wxCommandEvent& event);
+
+    void HandleYearChange(wxCommandEvent& event);
+    void OnYearChange(wxSpinEvent& event);
     void OnYearTextChange(wxCommandEvent& event);
 
     // (re)calc m_widthCol and m_heightRow
@@ -198,15 +198,29 @@ private:
     // get the date from which we start drawing days
     wxDateTime GetStartDate() const;
 
+    // get the first/last days of the week corresponding to the current style
+    wxDateTime::WeekDay GetWeekStart() const
+    {
+        return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Mon
+                                           : wxDateTime::Sun;
+    }
+
+    wxDateTime::WeekDay GetWeekEnd() const
+    {
+        return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Sun
+                                           : wxDateTime::Sat;
+    }
+
+
     // is this date shown?
     bool IsDateShown(const wxDateTime& date) const;
 
-    // is this date in the given range?
+    // is this date in the currently allowed range?
     bool IsDateInRange(const wxDateTime& date) const;
 
-    // range helpers
-    bool ChangeYear(wxDateTime* target) const;
-    bool ChangeMonth(wxDateTime* target) const;
+    // adjust the date to the currently allowed range, return true if it was
+    // changed
+    bool AdjustDateToRange(wxDateTime *date) const;
 
     // redraw the given date
     void RefreshDate(const wxDateTime& date);
@@ -214,12 +228,6 @@ private:
     // change the date inside the same month/year
     void ChangeDay(const wxDateTime& date);
 
-    // set the attributes for the holidays if needed
-    void SetHolidayAttrs();
-
-    // reset all holidays
-    void ResetHolidayAttrs();
-
     // deprecated
     bool AllowYearChange() const
     {
@@ -239,6 +247,9 @@ public:
     wxControl *GetYearControl() const;
 
 private:
+    virtual void ResetHolidayAttrs();
+    virtual void RefreshHolidays() { Refresh(); }
+
     // OnPaint helper-methods
 
     // Highlight the [fromdate : todate] range using pen and brush
@@ -284,7 +295,8 @@ private:
     // the width and height of one column/row in the calendar
     wxCoord m_widthCol,
             m_heightRow,
-            m_rowOffset;
+            m_rowOffset,
+            m_calendarWeekWidth;
 
     wxRect m_leftArrowRect,
            m_rightArrowRect;
@@ -298,7 +310,7 @@ private:
 
     DECLARE_DYNAMIC_CLASS(wxGenericCalendarCtrl)
     DECLARE_EVENT_TABLE()
-    DECLARE_NO_COPY_CLASS(wxGenericCalendarCtrl)
+    wxDECLARE_NO_COPY_CLASS(wxGenericCalendarCtrl);
 };
 
 #endif // _WX_GENERIC_CALCTRLG_H