2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: datectrl.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxDatePickerCtrl
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxDatePickerCtrl
|
|
|
|
@wxheader{datectrl.h}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
|
|
|
This control allows the user to select a date. Unlike
|
2008-03-08 08:52:38 -05:00
|
|
|
wxCalendarCtrl, which is a relatively big control,
|
|
|
|
wxDatePickerCtrl is implemented as a small window showing the currently
|
|
|
|
selected date.
|
|
|
|
The control can be edited using the keyboard, and can also display a popup
|
|
|
|
window for more user-friendly date selection, depending on the styles used and
|
|
|
|
the platform, except PalmOS where date is selected using native dialog.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
It is only available if @c wxUSE_DATEPICKCTRL is set to 1.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@beginStyleTable
|
|
|
|
@style{wxDP_SPIN}:
|
|
|
|
Creates a control without a month calendar drop down but with
|
|
|
|
spin-control-like arrows to change individual date components. This
|
|
|
|
style is not supported by the generic version.
|
|
|
|
@style{wxDP_DROPDOWN}:
|
|
|
|
Creates a control with a month calendar drop-down part from which
|
|
|
|
the user can select a date.
|
|
|
|
@style{wxDP_DEFAULT}:
|
|
|
|
Creates a control with the style that is best supported for the
|
|
|
|
current platform (currently wxDP_SPIN under Windows and
|
|
|
|
wxDP_DROPDOWN elsewhere).
|
|
|
|
@style{wxDP_ALLOWNONE}:
|
|
|
|
With this style, the control allows the user to not enter any valid
|
|
|
|
date at all. Without it - the default - the control always has some
|
|
|
|
valid date.
|
|
|
|
@style{wxDP_SHOWCENTURY}:
|
|
|
|
Forces display of the century in the default date format. Without
|
|
|
|
this style the century could be displayed, or not, depending on the
|
|
|
|
default date representation in the system.
|
|
|
|
@endStyleTable
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@beginEventTable
|
2008-03-09 08:33:59 -04:00
|
|
|
@event{EVT_DATE_CHANGED(id, func)}:
|
2008-03-08 08:52:38 -05:00
|
|
|
This event fires when the user changes the current selection in the
|
|
|
|
control.
|
|
|
|
@endEventTable
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxadv}
|
|
|
|
@category{miscpickers}
|
|
|
|
@appearance{datepickerctrl.png}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-10 11:24:38 -04:00
|
|
|
@see wxCalendarCtrl, wxDateEvent
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxDatePickerCtrl : public wxControl
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
Initializes the object and calls Create() with
|
|
|
|
all the parameters.
|
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
wxDatePickerCtrl(wxWindow* parent, wxWindowID id,
|
2008-03-08 08:52:38 -05:00
|
|
|
const wxDateTime& dt = wxDefaultDateTime,
|
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
|
|
|
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
|
|
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
|
|
const wxString& name = "datectrl");
|
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
@param parent
|
2008-03-09 08:33:59 -04:00
|
|
|
Parent window, must not be non-@NULL.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param id
|
2008-03-09 08:33:59 -04:00
|
|
|
The identifier for the control.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param dt
|
2008-03-09 08:33:59 -04:00
|
|
|
The initial value of the control, if an invalid date (such as the
|
|
|
|
default value) is used, the control is set to today.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param pos
|
2008-03-09 08:33:59 -04:00
|
|
|
Initial position.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param size
|
2008-03-09 08:33:59 -04:00
|
|
|
Initial size. If left at default value, the control chooses its
|
|
|
|
own best size by using the height approximately equal to a text control and
|
|
|
|
width large enough to show the date string fully.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param style
|
2008-03-09 08:33:59 -04:00
|
|
|
The window style, should be left at 0 as there are no
|
|
|
|
special styles for this control in this version.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param validator
|
2008-03-09 08:33:59 -04:00
|
|
|
Validator which can be used for additional date checks.
|
2008-03-08 09:43:31 -05:00
|
|
|
@param name
|
2008-03-09 08:33:59 -04:00
|
|
|
Control name.
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
@returns @true if the control was successfully created or @false if
|
2008-03-09 08:33:59 -04:00
|
|
|
creation failed.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 08:33:59 -04:00
|
|
|
bool Create(wxWindow* parent, wxWindowID id,
|
2008-03-08 08:52:38 -05:00
|
|
|
const wxDateTime& dt = wxDefaultDateTime,
|
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
|
|
|
long style = wxDP_DEFAULT | wxDP_SHOWCENTURY,
|
|
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
|
|
const wxString& name = "datectrl");
|
|
|
|
|
|
|
|
/**
|
2008-03-08 09:43:31 -05:00
|
|
|
If the control had been previously limited to a range of dates using
|
2008-03-08 08:52:38 -05:00
|
|
|
SetRange(), returns the lower and upper
|
|
|
|
bounds of this range. If no range is set (or only one of the bounds is set),
|
2008-03-09 08:33:59 -04:00
|
|
|
@a dt1 and/or @a dt2 are set to be invalid.
|
2008-03-08 08:52:38 -05:00
|
|
|
|
2008-03-08 09:43:31 -05:00
|
|
|
@param dt1
|
2008-03-09 08:33:59 -04:00
|
|
|
Pointer to the object which receives the lower range limit or
|
|
|
|
becomes invalid if it is not set. May be @NULL if the caller is not
|
|
|
|
interested in lower limit
|
2008-03-08 09:43:31 -05:00
|
|
|
@param dt2
|
2008-03-09 08:33:59 -04:00
|
|
|
Same as above but for the upper limit
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
@returns @false if no range limits are currently set, @true if at least one
|
2008-03-09 08:33:59 -04:00
|
|
|
bound is set.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
bool GetRange(wxDateTime* dt1, wxDateTime dt2) const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Returns the currently selected. If there is no selection or the selection is
|
|
|
|
outside of the current range, an invalid object is returned.
|
|
|
|
*/
|
2008-03-09 12:24:26 -04:00
|
|
|
wxDateTime GetValue() const;
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
|
|
|
Please note that this function is only available in the generic version of this
|
|
|
|
control. The native version always uses the current system locale.
|
|
|
|
Sets the display format for the date in the control. See wxDateTime for the
|
|
|
|
meaning of format strings.
|
|
|
|
|
|
|
|
@remarks If the format parameter is invalid, the behaviour is undefined.
|
|
|
|
*/
|
|
|
|
void SetFormat(const wxChar* format);
|
|
|
|
|
|
|
|
/**
|
2008-03-09 08:33:59 -04:00
|
|
|
Sets the valid range for the date selection. If @a dt1 is valid, it becomes
|
|
|
|
the earliest date (inclusive) accepted by the control. If @a dt2 is valid,
|
2008-03-08 08:52:38 -05:00
|
|
|
it becomes the latest possible date.
|
|
|
|
|
|
|
|
@remarks If the current value of the control is outside of the newly set
|
2008-03-09 08:33:59 -04:00
|
|
|
range bounds, the behaviour is undefined.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
void SetRange(const wxDateTime& dt1, const wxDateTime& dt2);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Changes the current value of the control. The date should be valid and included
|
|
|
|
in the currently selected range, if any.
|
|
|
|
Calling this method does not result in a date change event.
|
|
|
|
*/
|
|
|
|
void SetValue(const wxDateTime& dt);
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|