calctrl.h

Clase wxCalendarCtrl

El control de calendario permite al usuario seleccionar una fecha.

Jerarquía:

Jerarquía de la clase wxCalendarCtrl

El usuario puede mover la selección actual utilizando el teclado y seleccionar la fecha (generando el evento EVT_CALENDAR) pulsando intro o haciendo doble clic sobre ella.

El calendario genérico tiene posibilidades avanzadas para la personalización de su visualización, que se describen a continuación. Si se desea utilizar estas posibilidades en todas las plataformas, utilizar wxGenericCalendarCtrl en lugar de wxCalendarCtrl.

Todos los ajustes globales (como colores y fuentes utilizadas) pueden, por supuesto, cambiarse. Pero además, el estilo de visualización para cada día del mes puede establecerse independientemente utilizando la clase wxCalendarDateAttr.

Un elemento sin atributos personalizados se dibuja con los colores y fuente por defecto y sin borde, pero si se establecen atributos personalizados con SetAttr() se puede modificar su apariencia. Sólo se tiene que crear un objeto de atributo personalizado y establecerlo para el día que desea que se muestre especialmente (hay que tener en cuenta que el control tomará posesión del puntero, es decir, lo borrará él mismo). Un día puede ser marcado como festivo, aunque no sea reconocido como tal por wxDateTime utilizando el método wxCalendarDateAttr::SetHoliday().

Como los atributos se especifican para cada día, pueden cambiar cuando se cambia el mes, por lo que a menudo se querrá actualizarlos en el manejador de eventos EVT_CALENDAR_PAGE_CHANGED.

Si no se dan los estilos wxCAL_SUNDAY_FIRST o wxCAL_MONDAY_FIRST, el primer día de la semana se determina a partir de la configuración del sistema operativo, si es posible. El calendario nativo wxGTK elige el primer día de la semana en función de la configuración regional, y estos estilos no tienen ningún efecto sobre él.

Estilos

Esta clase admite los siguientes estilos:

wxCAL_SUNDAY_FIRST
Muestra el domingo como primer día de la semana (no en wxGTK)
wxCAL_MONDAY_FIRST
Mostrar el lunes como primer día de la semana (no en wxGTK)
wxCAL_SHOW_HOLIDAYS
Resaltar los días festivos en el calendario (sólo genérico)
wxCAL_NO_YEAR_CHANGE
Desactiva el cambio de año (obsoleto, sólo genérico).
wxCAL_NO_MONTH_CHANGE
Desactiva el cambio de mes (e, implícitamente, de año).
wxCAL_SHOW_SURROUNDING_WEEKS
Mostrar las semanas vecinas en los meses anterior y siguiente (sólo genérico, siempre activado para los controles nativos).
wxCAL_SEQUENTIAL_MONTH_SELECTION
Utilizar un estilo alternativo, más compacto, para los controles de selección de mes y año. (sólo genérico).
wxCAL_SHOW_WEEK_NUMBERS
Mostrar los números de semana en la parte izquierda del calendario. (no en genérico).

Eventos emitidos por esta clase

Las siguientes macros de manejador de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:

void handlerFuncName(wxCalendarEvent& event)

Macros de eventos para eventos emitidos por esta clase:

EVT_CALENDAR(id, func)
Se ha hecho doble clic en un día del calendario.
EVT_CALENDAR_SEL_CHANGED(id, func)
La fecha seleccionada ha cambiado.
EVT_CALENDAR_PAGE_CHANGED(id, func)
El mes (y/o año) seleccionado ha cambiado.
EVT_CALENDAR_WEEKDAY_CLICKED(id, func)
El usuario ha hecho clic en la cabecera del día de la semana (sólo genérico).
EVT_CALENDAR_WEEK_CLICKED(id, func)
El usuario ha hecho clic en el número de la semana del año (sólo genérico).

Nota: Al cambiar la fecha seleccionada se activará un evento EVT_CALENDAR_DAY, MONTH o YEAR así como un evento EVT_CALENDAR_SEL_CHANGED.

Funciones miembro

wxCalendarCtrl()

wxCalendarCtrl::wxCalendarCtrl()

Constructor por defecto.

wxCalendarCtrl()

wxCalendarCtrl::wxCalendarCtrl( 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 )

Hace lo mismo que el método Create().

~wxCalendarCtrl()

wxCalendarCtrl::~wxCalendarCtrl()

Destruye el control.

Create()

bool wxCalendarCtrl::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 )

Crea el control.

Ver wxWindow::wxWindow() para el significado de los parámetros y la vista general del control para los posibles estilos.

EnableHolidayDisplay()

virtual void wxCalendarCtrl::EnableHolidayDisplay(bool display = true)

Esta función debe utilizarse en lugar de cambiar directamente el bit de estilo wxCAL_SHOW_HOLIDAYS.

Activa o desactiva el resaltado especial de los días festivos.

EnableMonthChange()

virtual bool wxCalendarCtrl::EnableMonthChange(bool enable = true)

Esta función debe utilizarse en lugar de cambiar el bit de estilo wxCAL_NO_MONTH_CHANGE.

Permite o impide al usuario cambiar el mes de forma interactiva. Hay que tener en cuenta que si no se puede cambiar el mes, tampoco se puede cambiar el año.

Valor de retorno

true si el valor de esta opción realmente cambió o false si ya estaba establecido al valor solicitado.

EnableYearChange()

virtual void wxCalendarCtrl::EnableYearChange(bool enable = true)

Obsoleto

Esta función debe utilizarse en lugar de cambiar directamente el bit de estilo wxCAL_NO_YEAR_CHANGE. Permite o no al usuario cambiar el año interactivamente. Sólo en wxCalendarCtrl genérico.

GetAttr()

virtual wxCalendarDateAttr* wxCalendarCtrl::GetAttr(size_t day) const

Devuelve el atributo para la fecha dada (debe estar en el rango 1...31).

El puntero devuelto puede ser nullptr. Sólo en wxCalendarCtrl genérico.

GetDate()

virtual wxDateTime wxCalendarCtrl::GetDate() const

Obtiene la fecha seleccionada actualmente.

GetDateRange()

virtual bool wxCalendarCtrl::GetDateRange( wxDateTime * lowerdate, wxDateTime * upperdate ) const

Devuelve los límites que se están utilizando actualmente.

Parámetros
lowerdate
Si no es nulo, devuelve el valor del límite inferior de las fechas mostradas por el control (que puede ser wxDefaultDateTime si no se ha establecido ningún límite).
upperdate
Si no es nulo, devuelve el valor del límite superior de las fechas mostradas por el control (que puede ser wxDefaultDateTime si no se ha establecido ningún límite).
Valor de retorno

true si alguno de los límites está establecido, false en caso contrario.

GetHeaderColourBg()

virtual const wxColour& wxCalendarCtrl::GetHeaderColourBg() const

Obtiene el color de fondo de la cabecera de la ventana del calendario.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y siempre devuelve wxNullColour en las versiones nativas.

GetHeaderColourFg()

virtual const wxColour& wxCalendarCtrl::GetHeaderColourFg() const

Obtiene el color de primer plano de la cabecera de la ventana del calendario.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y siempre devuelve wxNullColour en las versiones nativas.

GetHighlightColourBg()

virtual const wxColour& wxCalendarCtrl::GetHighlightColourBg() const

Obtiene el color de fondo.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y siempre devuelve wxNullColour en las versiones nativas.

GetHighlightColourFg()

virtual const wxColour& wxCalendarCtrl::GetHighlightColourFg() const

Obtiene el color de primer plano.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y siempre devuelve wxNullColour en las versiones nativas.

GetHolidayColourBg()

virtual const wxColour& wxCalendarCtrl::GetHolidayColourBg() const

Devuelve el color de fondo utilizado actualmente para resaltar las vacaciones.

Sólo es útil con wxCalendarCtrl genérico, ya que las versiones nativas no admiten la visualización de vacaciones y siempre devuelven wxNullColour.

GetHolidayColourFg()

virtual const wxColour& wxCalendarCtrl::GetHolidayColourFg() const

Devuelve el color de primer plano utilizado actualmente para resaltar las vacaciones.

Sólo es útil con wxCalendarCtrl genérico, ya que las versiones nativas no admiten la visualización de vacaciones y siempre devuelven wxNullColour.

HitTest()

virtual wxCalendarHitTestResult wxCalendarCtrl::HitTest( const wxPoint & pos, wxDateTime * date = nullptr, wxDateTime::WeekDay * wd = nullptr )

Devuelve una de las constantes wxCalendarHitTestResult y rellena el puntero date o wd con el valor correspondiente dependiendo del código de la prueba de acierto.

Actualmente no está implementado en wxGTK.

Mark()

virtual void wxCalendarCtrl::Mark( size_t day, bool mark )

Marca o desmarca el día.

En el wxCalendarCtrl genérico, este día del mes se marcará en todos los meses.

ResetAttr()

virtual void wxCalendarCtrl::ResetAttr(size_t day)

Borra cualquier atributo asociado con el día dado (en el rango 1...31).

Sólo en wxCalendarCtrl genérico.

SetAttr()

virtual void wxCalendarCtrl::SetAttr( size_t day, wxCalendarDateAttr * attr )

Asocia el atributo con la fecha especificada (en el rango 1...31).

Si el puntero es nullptr, se borra el atributo items. Sólo en wxCalendarCtrl genérico.

SetDate()

virtual bool wxCalendarCtrl::SetDate(const wxDateTime & date)

Establece la fecha actual.

El parámetro de fecha debe ser válido y estar dentro del intervalo actualmente válido establecido por SetDateRange(); de lo contrario, la fecha actual no se modifica y la función devuelve false y, además, desencadena un fallo de aserción si la fecha no es válida.

SetDateRange()

virtual bool wxCalendarCtrl::SetDateRange( const wxDateTime & lowerdate = wxDefaultDateTime, const wxDateTime & upperdate = wxDefaultDateTime )

Restringe las fechas que se pueden seleccionar en el control al intervalo especificado.

Si se establece alguna fecha, se aplicará el límite correspondiente y se devolverá true. Si no se establece ninguna, se eliminarán las restricciones existentes y se devolverá false.

Parámetros
lowerdate
El límite inferior para las fechas mostradas por el control o wxDefaultDateTime.
upperdate
Límite superior de las fechas mostradas por el control o wxDefaultDateTime.
Valor de retorno

true si alguno de los límites es válido, false en caso contrario

SetHeaderColours()

virtual void wxCalendarCtrl::SetHeaderColours( const wxColour & colFg, const wxColour & colBg )

Establece los colores utilizados para pintar los días de la semana en la parte superior del control.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y no hace nada en las versiones nativas.

SetHighlightColours()

virtual void wxCalendarCtrl::SetHighlightColours( const wxColour & colFg, const wxColour & colBg )

Establece los colores que se utilizarán para resaltar la fecha actualmente seleccionada.

Este método actualmente sólo está implementado en wxCalendarCtrl genérico y no hace nada en las versiones nativas.

SetHoliday()

virtual void wxCalendarCtrl::SetHoliday(size_t day)

Marca el día especificado como festivo en el mes actual.

Este método sólo está implementado en la versión genérica del control y no hace nada en las nativas.

SetHolidayColours()

virtual void wxCalendarCtrl::SetHolidayColours( const wxColour & colFg, const wxColour & colBg )

Establece los colores a utilizar para el resaltado de vacaciones.

Este método sólo se implementa en la versión genérica del control y no hace nada en las nativas. Sólo debe invocarse si el estilo de la ventana incluye la bandera wxCAL_SHOW_HOLIDAYS o si se ha invocado a EnableHolidayDisplay().

Métodos y datos heredados

Esta clase hereda los métodos y datos miembro públicos y protegidos de wxControl, wxWindow, wxEvthandler y wxObject.