X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..6798451bb28561eb2e903ff43a9fa572824145a2:/include/wx/generic/calctrl.h?ds=sidebyside diff --git a/include/wx/generic/calctrl.h b/include/wx/generic/calctrl.h index 879ddcda07..08acaca363 100644 --- a/include/wx/generic/calctrl.h +++ b/include/wx/generic/calctrl.h @@ -6,22 +6,18 @@ // Created: 29.12.99 // RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(__APPLE__) - #pragma interface "calctrl.h" -#endif - #ifndef _WX_GENERIC_CALCTRL_H #define _WX_GENERIC_CALCTRL_H #include "wx/control.h" // the base class #include "wx/dcclient.h" // for wxPaintDC -class WXDLLEXPORT wxComboBox; -class WXDLLEXPORT wxStaticText; -class WXDLLEXPORT wxSpinCtrl; +class WXDLLIMPEXP_FWD_CORE wxComboBox; +class WXDLLIMPEXP_FWD_CORE wxStaticText; +class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; #define wxCalendarNameStr _T("CalendarCtrl") @@ -29,11 +25,8 @@ class WXDLLEXPORT wxSpinCtrl; // wxCalendarCtrl: a control allowing the user to pick a date interactively // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxCalendarCtrl : public wxControl +class WXDLLIMPEXP_ADV wxCalendarCtrl : public wxControl { -friend class wxMonthComboBox; -friend class wxYearSpinCtrl; - public: // construction wxCalendarCtrl() { Init(); } @@ -81,13 +74,13 @@ public: // should be used instead for them // corresponds to wxCAL_NO_YEAR_CHANGE bit - void EnableYearChange(bool enable = TRUE); + void EnableYearChange(bool enable = true); // corresponds to wxCAL_NO_MONTH_CHANGE bit - void EnableMonthChange(bool enable = TRUE); + void EnableMonthChange(bool enable = true); // corresponds to wxCAL_SHOW_HOLIDAYS bit - void EnableHolidayDisplay(bool display = TRUE); + void EnableHolidayDisplay(bool display = true); // customization // ------------- @@ -159,13 +152,34 @@ public: // ------------------------------- // forward these functions to all subcontrols - virtual bool Enable(bool enable = TRUE); - virtual bool Show(bool show = TRUE); + virtual bool Enable(bool enable = true); + virtual bool Show(bool show = true); + + virtual void SetWindowStyleFlag(long style); + + virtual wxVisualAttributes GetDefaultAttributes() const + { return GetClassDefaultAttributes(GetWindowVariant()); } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + + void OnSysColourChanged(wxSysColourChangedEvent& event); + +protected: + // override some base class virtuals + virtual wxSize DoGetBestSize() const; + virtual void DoGetPosition(int *x, int *y) const; + virtual void DoGetSize(int *width, int *height) const; + virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags); + virtual void DoMoveWindow(int x, int y, int width, int height); private: // common part of all ctors void Init(); + // startup colours and reinitialization after colour changes in system + void InitColours(); + // event handlers void OnPaint(wxPaintEvent& event); void OnClick(wxMouseEvent& event); @@ -173,13 +187,7 @@ private: void OnChar(wxKeyEvent& event); void OnMonthChange(wxCommandEvent& event); void OnYearChange(wxCommandEvent& event); - - // override some base class virtuals - virtual wxSize DoGetBestSize() const; - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags); - virtual void DoMoveWindow(int x, int y, int width, int height); + void OnYearTextChange(wxCommandEvent& event); // (re)calc m_widthCol and m_heightRow void RecalcGeometry(); @@ -242,20 +250,30 @@ private: // show the correct controls void ShowCurrentControls(); + // create the month combo and year spin controls + void CreateMonthComboBox(); + void CreateYearSpinCtrl(); + +public: // get the currently shown control for month/year wxControl *GetMonthControl() const; wxControl *GetYearControl() const; +private: // OnPaint helper-methods // Highlight the [fromdate : todate] range using pen and brush - void HighlightRange(wxPaintDC* dc, const wxDateTime& fromdate, const wxDateTime& todate, wxPen* pen, wxBrush* brush); + void HighlightRange(wxPaintDC* dc, const wxDateTime& fromdate, const wxDateTime& todate, const wxPen* pen, const wxBrush* brush); // Get the "coordinates" for the date relative to the month currently displayed. // using (day, week): upper left coord is (1, 1), lower right coord is (7, 6) // if the date isn't visible (-1, -1) is put in (day, week) and false is returned bool GetDateCoord(const wxDateTime& date, int *day, int *week) const; + // Set the flag for SetDate(): otherwise it would overwrite the year + // typed in by the user + void SetUserChangedYear() { m_userChangedYear = true; } + // the subcontrols wxStaticText *m_staticMonth; wxComboBox *m_comboMonth; @@ -276,7 +294,9 @@ private: m_colHolidayFg, m_colHolidayBg, m_colHeaderFg, - m_colHeaderBg; + m_colHeaderBg, + m_colBackground, + m_colSorrounding; // the attributes for each of the month days wxCalendarDateAttr *m_attrs[31]; @@ -292,12 +312,13 @@ private: // the week day names wxString m_weekdays[7]; - // TRUE if SetDate() is being called as the result of changing the year in + // true if SetDate() is being called as the result of changing the year in // the year control bool m_userChangedYear; DECLARE_DYNAMIC_CLASS(wxCalendarCtrl) DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxCalendarCtrl) }; #endif // _WX_GENERIC_CALCTRL_H