]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/calendar/calendar.cpp
don't use wxFromSystemTime() with possibly invalid date (closes bug 1596606)
[wxWidgets.git] / samples / calendar / calendar.cpp
index 9874f0f54770ef69af179f0ce78c8035fbaa4622..6370bb2411f903b242f13b4b75209695cb9d67e4 100644 (file)
 // headers
 // ----------------------------------------------------------------------------
 
-#if defined(__GNUG__) && !defined(__APPLE__)
-    #pragma implementation "calendar.cpp"
-    #pragma interface "calendar.cpp"
-#endif
-
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
     #include "wx/menu.h"
     #include "wx/layout.h"
     #include "wx/msgdlg.h"
+    #include "wx/icon.h"
+    #include "wx/button.h"
+    #include "wx/sizer.h"
+    #include "wx/textctrl.h"
+    #include "wx/settings.h"
 #endif
 
-#include "wx/sizer.h"
-#include "wx/textctrl.h"
-
 #include "wx/calctrl.h"
 
 #if wxUSE_DATEPICKCTRL
     #endif // wxUSE_DATEPICKCTRL_GENERIC
 #endif // wxUSE_DATEPICKCTRL
 
-// the application icon (under Windows and OS/2 it is in resources and even
-// though we could still include the XPM here it would be unused)
-#if !defined(__WXMSW__) && !defined(__WXPM__)
-    #include "../sample.xpm"
-#endif
+#include "../sample.xpm"
+
+#define USE_SIZABLE_CALENDAR 0
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -109,7 +104,7 @@ class MyFrame : public wxFrame
 {
 public:
     // ctor(s)
-    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
+    MyFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
 
     // event handlers (these functions should _not_ be virtual)
     void OnQuit(wxCommandEvent& event);
@@ -262,8 +257,11 @@ IMPLEMENT_APP(MyApp)
 bool MyApp::OnInit()
 {
     // Create the main application window
-    MyFrame *frame = new MyFrame(_T("Calendar wxWidgets sample"),
-                                 wxPoint(50, 50), wxSize(450, 340));
+    MyFrame *frame = new MyFrame(_T("Calendar wxWidgets sample")
+#ifndef __WXWINCE__
+                                 ,wxPoint(50, 50), wxSize(450, 340)
+#endif
+                                                                );
 
     frame->Show(true);
 
@@ -282,7 +280,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
        : wxFrame((wxFrame *)NULL, wxID_ANY, title, pos, size)
 {
     // set the frame icon
-    SetIcon(wxICON(sample));
+    SetIcon(wxIcon(sample_xpm));
 
     // create a menu bar
     wxMenu *menuFile = new wxMenu;
@@ -497,11 +495,21 @@ MyPanel::MyPanel(wxFrame *frame)
                                     wxCAL_SHOW_HOLIDAYS |
                                     wxRAISED_BORDER);
 
-    wxBoxSizer *m_sizer = new wxBoxSizer( wxHORIZONTAL );
+#if USE_SIZABLE_CALENDAR
+    wxCalendarCtrl *sizableCalendar = new wxCalendarCtrl(this, wxID_ANY);
+#endif
+
+    // adjust to vertical/horizontal display, check mostly dedicated to WinCE
+    bool horizontal = ( wxSystemSettings::GetMetric(wxSYS_SCREEN_X) > wxSystemSettings::GetMetric(wxSYS_SCREEN_Y) );
+    wxBoxSizer *m_sizer = new wxBoxSizer( horizontal ? wxHORIZONTAL : wxVERTICAL );
 
     m_sizer->Add(m_date, 0, wxALIGN_CENTER | wxALL, 10 );
     m_sizer->Add(m_calendar, 0, wxALIGN_CENTER | wxALIGN_LEFT);
 
+#if USE_SIZABLE_CALENDAR
+    m_sizer->Add(sizableCalendar, 1, wxEXPAND);
+#endif
+
     SetSizer( m_sizer );
     m_sizer->SetSizeHints( this );
 }
@@ -647,4 +655,3 @@ void MyDialog::OnDateChange(wxDateEvent& event)
 }
 
 #endif // wxUSE_DATEPICKCTRL
-