added API, docs and Win32 implementation of wxDatePickerCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
|
||||
#if wxUSE_CALENDARCTRL
|
||||
|
||||
#include "wx/datetime.h"
|
||||
#include "wx/dateevt.h"
|
||||
#include "wx/colour.h"
|
||||
#include "wx/font.h"
|
||||
|
||||
@@ -161,23 +161,23 @@ private:
|
||||
|
||||
class WXDLLIMPEXP_ADV wxCalendarCtrl;
|
||||
|
||||
class WXDLLIMPEXP_ADV wxCalendarEvent : public wxCommandEvent
|
||||
class WXDLLIMPEXP_ADV wxCalendarEvent : public wxDateEvent
|
||||
{
|
||||
friend class wxCalendarCtrl;
|
||||
public:
|
||||
wxCalendarEvent() { Init(); }
|
||||
wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type);
|
||||
|
||||
const wxDateTime& GetDate() const { return m_date; }
|
||||
void SetDate(const wxDateTime &date) { m_date = date; }
|
||||
void SetWeekDay(const wxDateTime::WeekDay wd) { m_wday = wd; }
|
||||
wxDateTime::WeekDay GetWeekDay() const { return m_wday; }
|
||||
|
||||
protected:
|
||||
void Init();
|
||||
void Init()
|
||||
{
|
||||
m_wday = wxDateTime::Inv_WeekDay;
|
||||
}
|
||||
|
||||
private:
|
||||
wxDateTime m_date;
|
||||
wxDateTime::WeekDay m_wday;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxCalendarEvent)
|
||||
@@ -190,6 +190,14 @@ private:
|
||||
// so far we only have a generic version, so keep it simple
|
||||
#include "wx/generic/calctrl.h"
|
||||
|
||||
|
||||
// now we can define the inline ctor using wxCalendarCtrl
|
||||
inline
|
||||
wxCalendarEvent::wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type)
|
||||
: wxDateEvent(cal, cal->GetDate(), type)
|
||||
{
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// calendar event types and macros for handling them
|
||||
// ----------------------------------------------------------------------------
|
||||
|
59
include/wx/datectrl.h
Normal file
59
include/wx/datectrl.h
Normal file
@@ -0,0 +1,59 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/datectrl.h
|
||||
// Purpose: implements wxDatePickerCtrl
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 2005-01-09
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_DATECTRL_H_
|
||||
#define _WX_DATECTRL_H_
|
||||
|
||||
#include "wx/control.h" // the base class
|
||||
#include "wx/datetime.h"
|
||||
|
||||
#define wxDatePickerCtrlNameStr _T("datectrl")
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDatePickerCtrl: allow the user to enter the date
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_ADV wxDatePickerCtrlBase : public wxControl
|
||||
{
|
||||
public:
|
||||
/*
|
||||
The derived classes should implement ctor and Create() method with the
|
||||
following signature:
|
||||
|
||||
bool Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxDateTime& dt = wxDefaultDateTime,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = 0,
|
||||
const wxValidator& validator = wxDefaultValidator,
|
||||
const wxString& name = wxDatePickerCtrlNameStr);
|
||||
*/
|
||||
|
||||
// set/get the date
|
||||
virtual void SetValue(const wxDateTime& dt) = 0;
|
||||
virtual wxDateTime GetValue() const = 0;
|
||||
|
||||
// set/get the allowed valid range for the dates, if either/both of them
|
||||
// are invalid, there is no corresponding limit and if neither is set
|
||||
// GetRange() returns false
|
||||
virtual void SetRange(const wxDateTime& dt1, const wxDateTime& dt2) = 0;
|
||||
virtual bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const = 0;
|
||||
};
|
||||
|
||||
#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
|
||||
#include "wx/msw/datectrl.h"
|
||||
#else
|
||||
// TODO: #include "wx/generic/datectrl.h"
|
||||
#endif
|
||||
|
||||
#endif // _WX_DATECTRL_H_
|
||||
|
61
include/wx/dateevt.h
Normal file
61
include/wx/dateevt.h
Normal file
@@ -0,0 +1,61 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/dateevt.h
|
||||
// Purpose: declares wxDateEvent class
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 2005-01-10
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org>
|
||||
// Licence: wxWindows licence
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_DATEEVT_H_
|
||||
#define _WX_DATEEVT_H_
|
||||
|
||||
#include "wx/event.h"
|
||||
#include "wx/datetime.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxDateEvent: used by wxCalendarCtrl and wxDatePickerCtrl
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class WXDLLIMPEXP_ADV wxDateEvent : public wxCommandEvent
|
||||
{
|
||||
public:
|
||||
wxDateEvent() { }
|
||||
wxDateEvent(wxWindow *win, const wxDateTime& dt, wxEventType type)
|
||||
: wxCommandEvent(type, win->GetId()),
|
||||
m_date(dt)
|
||||
{
|
||||
SetEventObject(win);
|
||||
}
|
||||
|
||||
const wxDateTime& GetDate() const { return m_date; }
|
||||
void SetDate(const wxDateTime &date) { m_date = date; }
|
||||
|
||||
private:
|
||||
wxDateTime m_date;
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxDateEvent)
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// event types and macros for handling them
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
BEGIN_DECLARE_EVENT_TYPES()
|
||||
DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, wxEVT_DATE_CHANGED, 1101)
|
||||
END_DECLARE_EVENT_TYPES()
|
||||
|
||||
typedef void (wxEvtHandler::*wxDateEventFunction)(wxDateEvent&);
|
||||
|
||||
#define EVT_DATE_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_DATE_CHANGED, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) wxStaticCastEvent( wxDateEventFunction, & fn ), (wxObject *) NULL),
|
||||
|
||||
#ifdef _WX_DEFINE_DATE_EVENTS_
|
||||
DEFINE_EVENT_TYPE(wxEVT_DATE_CHANGED)
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxDateEvent, wxCommandEvent)
|
||||
#endif
|
||||
|
||||
#endif // _WX_DATEEVT_H_
|
||||
|
Reference in New Issue
Block a user