]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/calendar/calendar.cpp
Forgot to add this one
[wxWidgets.git] / samples / calendar / calendar.cpp
index 31c28a57a70bbaa9b1ba7d1332159340c5311551..9481cbfbd29e0fcf6af01180d6c6d947ad50d6a9 100644 (file)
@@ -2,7 +2,7 @@
 // Name:        calendar.cpp
 // Purpose:     wxCalendarCtrl sample
 // Author:      Vadim Zeitlin
-// Modified by:
+// Modified by: Mark Johnson : Added wxLayoutConstraints support for Ctrl
 // Created:     02.01.00
 // RCS-ID:      $Id$
 // Copyright:   (c) Vadim Zeitlin
@@ -67,6 +67,8 @@ public:
     void OnCalendar(wxCalendarEvent& event);
     void OnCalendarWeekDayClick(wxCalendarEvent& event);
     void OnCalendarChange(wxCalendarEvent& event);
+    void OnCalMonthChange(wxCalendarEvent& event);
+    void OnCalYearChange(wxCalendarEvent& event);
 
     wxCalendarCtrl *GetCal() const { return m_calendar; }
 
@@ -148,6 +150,8 @@ END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(MyPanel, wxPanel)
     EVT_CALENDAR            (Calendar_CalCtrl,   MyPanel::OnCalendar)
+    EVT_CALENDAR_MONTH      (Calendar_CalCtrl,   MyPanel::OnCalMonthChange)
+    EVT_CALENDAR_YEAR       (Calendar_CalCtrl,   MyPanel::OnCalYearChange)
     EVT_CALENDAR_SEL_CHANGED(Calendar_CalCtrl,   MyPanel::OnCalendarChange)
     EVT_CALENDAR_WEEKDAY_CLICKED(Calendar_CalCtrl, MyPanel::OnCalendarWeekDayClick)
 END_EVENT_TABLE()
@@ -172,7 +176,7 @@ bool MyApp::OnInit()
 {
     // Create the main application window
     MyFrame *frame = new MyFrame("Calendar wxWindows sample",
-                                 wxPoint(50, 50), wxSize(450, 340));
+                                 wxPoint(50, 50), wxSize(450, 375));
 
     // Show it and tell the application that it's our main window
     // @@@ what does it do exactly, in fact? is it necessary here?
@@ -238,6 +242,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     // create a status bar just for fun (by default with 1 pane only)
     CreateStatusBar(2);
     SetStatusText("Welcome to wxWindows!");
+    SetStatusText("Try changing the size of the Window !",1);
 #endif // wxUSE_STATUSBAR
 }
 
@@ -295,12 +300,13 @@ void MyFrame::OnAllowYearUpdate(wxUpdateUIEvent& event)
 MyPanel::MyPanel(wxFrame *frame)
        : wxPanel(frame, -1)
 {
-    SetAutoLayout(TRUE);
-
     wxString date;
-    date.Printf("Selected date: %s",
+    //------------------
+    SetAutoLayout(TRUE);
+    date.Printf("Selected date: %s ",
                 wxDateTime::Today().FormatISODate().c_str());
     m_date = new wxStaticText(this, -1, date);
+    //------------------
     m_calendar = new wxCalendarCtrl(this, Calendar_CalCtrl,
                                     wxDefaultDateTime,
                                     wxDefaultPosition,
@@ -309,21 +315,25 @@ MyPanel::MyPanel(wxFrame *frame)
                                     wxCAL_SHOW_HOLIDAYS |
                                     wxRAISED_BORDER);
 
+    m_calendar->SetAutoLayout(TRUE);
+    //------------------
     wxLayoutConstraints *c = new wxLayoutConstraints;
-    c->left.SameAs(this, wxLeft, 10);
-    c->centreY.SameAs(m_calendar, wxCentreY);
-    c->height.AsIs();
-    c->width.AsIs();
-
-    m_date->SetConstraints(c);
-
+    //------------------
+    c = new wxLayoutConstraints;
+    c->left.PercentOf(this, wxWidth, 10);
+    c->right.PercentOf(this, wxWidth, 60);
+    c->top.PercentOf(this, wxHeight, 10);
+    c->bottom.PercentOf(this, wxHeight, 60);
+    m_calendar->SetConstraints(c);
+    //------------------
     c = new wxLayoutConstraints;
-    c->left.SameAs(m_date, wxRight, 10);
-    c->top.SameAs(this, wxTop, 10);
+    c->left.SameAs(m_calendar, wxLeft, 10);
+    c->top.SameAs(m_calendar, wxBottom);
     c->height.AsIs();
     c->width.AsIs();
-
-    m_calendar->SetConstraints(c);
+    m_date->SetConstraints(c);
+    //------------------
+    Layout();
 }
 
 void MyPanel::OnCalendar(wxCalendarEvent& event)
@@ -340,6 +350,16 @@ void MyPanel::OnCalendarChange(wxCalendarEvent& event)
     m_date->SetLabel(s);
 }
 
+void MyPanel::OnCalMonthChange(wxCalendarEvent& WXUNUSED(event))
+{
+    wxLogStatus("Calendar month changed");
+}
+
+void MyPanel::OnCalYearChange(wxCalendarEvent& WXUNUSED(event))
+{
+    wxLogStatus("Calendar year changed");
+}
+
 void MyPanel::OnCalendarWeekDayClick(wxCalendarEvent& event)
 {
     wxLogMessage("Clicked on %s",