]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/calctrlcmn.cpp
added native GTK implementation of wxCalendarCtrl (modified patch 1925439)
[wxWidgets.git] / src / common / calctrlcmn.cpp
diff --git a/src/common/calctrlcmn.cpp b/src/common/calctrlcmn.cpp
new file mode 100644 (file)
index 0000000..481be6e
--- /dev/null
@@ -0,0 +1,64 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        common/calctrlcmn.cpp
+// Author:      Marcin Wojdyr
+// Created:     2008-03-26
+// RCS-ID:      $Id$
+// Copyright:   (C) Marcin Wojdyr
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#endif //WX_PRECOMP
+
+#if wxUSE_CALENDARCTRL || wxUSE_DATEPICKCTRL
+
+#include "wx/dateevt.h"
+IMPLEMENT_DYNAMIC_CLASS(wxDateEvent, wxCommandEvent)
+DEFINE_EVENT_TYPE(wxEVT_DATE_CHANGED)
+
+#endif // wxUSE_CALENDARCTRL || wxUSE_DATEPICKCTRL
+
+
+#if wxUSE_CALENDARCTRL
+
+#include "wx/calctrl.h"
+
+// ----------------------------------------------------------------------------
+// events
+// ----------------------------------------------------------------------------
+IMPLEMENT_DYNAMIC_CLASS(wxCalendarEvent, wxDateEvent)
+
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_SEL_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_PAGE_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_DOUBLECLICKED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_WEEKDAY_CLICKED)
+
+// deprecated events
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_DAY_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_MONTH_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_YEAR_CHANGED)
+
+
+wxCalendarDateAttr wxCalendarDateAttr::m_mark(wxCAL_BORDER_SQUARE);
+
+bool wxCalendarCtrlBase::EnableMonthChange(bool enable)
+{
+    const long styleOrig = GetWindowStyle();
+    long style = enable ? styleOrig & ~wxCAL_NO_MONTH_CHANGE
+                        : styleOrig | wxCAL_NO_MONTH_CHANGE;
+    if ( style == styleOrig )
+        return false;
+
+    SetWindowStyle(style);
+
+    return true;
+}
+
+#endif // wxUSE_CALENDARCTRL
+