106f0d98f8
While GTK+ doesn't support imposing ranges for dates selection natively, we can do it ourselves by preventing the user from selecting any date outside of the currently valid range. This allows to use ranges under all platforms and not only in wxCalendarCtrl itself but in wxDatePickerCtrl as well. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
71 lines
2.4 KiB
C++
71 lines
2.4 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/calctrl.h
|
|
// Purpose: wxGtkCalendarCtrl control
|
|
// Author: Marcin Wojdyr
|
|
// RCS-ID: $Id$
|
|
// Copyright: (C) 2008 Marcin Wojdyr
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef GTK_CALCTRL_H__
|
|
#define GTK_CALCTRL_H__
|
|
|
|
class WXDLLIMPEXP_ADV wxGtkCalendarCtrl : public wxCalendarCtrlBase
|
|
{
|
|
public:
|
|
wxGtkCalendarCtrl() {}
|
|
wxGtkCalendarCtrl(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCAL_SHOW_HOLIDAYS,
|
|
const wxString& name = wxCalendarNameStr)
|
|
{
|
|
Create(parent, id, date, pos, size, style, name);
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxDateTime& date = wxDefaultDateTime,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxCAL_SHOW_HOLIDAYS,
|
|
const wxString& name = wxCalendarNameStr);
|
|
|
|
virtual ~wxGtkCalendarCtrl() {}
|
|
|
|
virtual bool SetDate(const wxDateTime& date);
|
|
virtual wxDateTime GetDate() const;
|
|
|
|
virtual bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime,
|
|
const wxDateTime& upperdate = wxDefaultDateTime);
|
|
virtual bool GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const;
|
|
|
|
virtual bool EnableMonthChange(bool enable = true);
|
|
|
|
virtual void Mark(size_t day, bool mark);
|
|
|
|
// implementation
|
|
// --------------
|
|
|
|
void GTKGenerateEvent(wxEventType type);
|
|
|
|
private:
|
|
bool IsInValidRange(const wxDateTime& dt) const;
|
|
|
|
// Range of the dates that can be selected by user, either or both may be
|
|
// invalid to indicate that no corresponding restriction is set.
|
|
wxDateTime m_validStart,
|
|
m_validEnd;
|
|
|
|
// Last known selected date, may be different from the real selection in
|
|
// the control while a handler for day-selected is running.
|
|
wxDateTime m_selectedDate;
|
|
|
|
DECLARE_DYNAMIC_CLASS(wxGtkCalendarCtrl)
|
|
wxDECLARE_NO_COPY_CLASS(wxGtkCalendarCtrl);
|
|
};
|
|
|
|
#endif // GTK_CALCTRL_H__
|