]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/calctrl.h
make popup on mac behave as on msw
[wxWidgets.git] / include / wx / generic / calctrl.h
index c6d66e237274d95c7f0bf56b473c4cb3d47a2e17..08acaca363c38fa348b9f0bb2a9872c53b1a41c5 100644 (file)
@@ -9,19 +9,15 @@
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-    #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")
 
@@ -31,9 +27,6 @@ class WXDLLEXPORT wxSpinCtrl;
 
 class WXDLLIMPEXP_ADV wxCalendarCtrl : public wxControl
 {
-friend class wxMonthComboBox;
-friend class wxYearSpinCtrl;
-
 public:
     // construction
     wxCalendarCtrl() { Init(); }
@@ -162,10 +155,31 @@ public:
     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,6 +250,10 @@ 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;
@@ -251,7 +263,7 @@ 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)
@@ -282,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];