Class Calendar

All Implemented Interfaces:
PointerInterface

public class Calendar extends Widget
`GtkCalendar` is a widget that displays a Gregorian calendar, one month
at a time.

![An example GtkCalendar](calendar.png)

A `GtkCalendar` can be created with [ctor@Gtk.Calendar.new].

The date that is currently displayed can be altered with
[method@Gtk.Calendar.select_day].

To place a visual marker on a particular day, use
[method@Gtk.Calendar.mark_day] and to remove the marker,
[method@Gtk.Calendar.unmark_day]. Alternative, all
marks can be cleared with [method@Gtk.Calendar.clear_marks].

The selected date can be retrieved from a `GtkCalendar` using
[method@Gtk.Calendar.get_date].

Users should be aware that, although the Gregorian calendar is the
legal calendar in most countries, it was adopted progressively
between 1582 and 1929. Display before these dates is likely to be
historically incorrect.

# CSS nodes

```
calendar.view
├── header
│ ├── button
│ ├── stack.month
│ ├── button
│ ├── button
│ ├── label.year
│ ╰── button
╰── grid
╰── label[.day-name][.week-number][.day-number][.other-month][.today]
```

`GtkCalendar` has a main node with name calendar. It contains a subnode
called header containing the widgets for switching between years and months.

The grid subnode contains all day labels, including week numbers on the left
(marked with the .week-number css class) and day names on top (marked with the
.day-name css class).

Day labels that belong to the previous or next month get the .other-month
style class. The label of the current day get the .today style class.

Marked day labels get the :selected state assigned.

https://docs.gtk.org/gtk4/class.Calendar.html

  • Field Details

  • Constructor Details

    • Calendar

      public Calendar(PointerContainer pointer)
    • Calendar

      public Calendar()
      Creates a new calendar, with the current date being selected.
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • clearMarks

      public void clearMarks()
      Remove all visual markers.
    • getDate

      public DateTime getDate()
      Returns a `GDateTime` representing the shown
      year, month and the selected day.

      The returned date is in the local time zone.
      Returns:
      the `GDate` representing the shown date
    • getDayIsMarked

      public boolean getDayIsMarked(int day)
      Returns if the @day of the @calendar is already marked.
      Parameters:
      day - the day number between 1 and 31.
      Returns:
      whether the day is marked.
    • getShowDayNames

      public boolean getShowDayNames()
      Returns whether @self is currently showing the names
      of the week days.

      This is the value of the [property@Gtk.Calendar:show-day-names]
      property.
      Returns:
      Whether the calendar shows day names.
    • getShowHeading

      public boolean getShowHeading()
      Returns whether @self is currently showing the heading.

      This is the value of the [property@Gtk.Calendar:show-heading]
      property.
      Returns:
      Whether the calendar is showing a heading.
    • getShowWeekNumbers

      public boolean getShowWeekNumbers()
      Returns whether @self is showing week numbers right
      now.

      This is the value of the [property@Gtk.Calendar:show-week-numbers]
      property.
      Returns:
      Whether the calendar is showing week numbers.
    • markDay

      public void markDay(int day)
      Places a visual marker on a particular day.
      Parameters:
      day - the day number to mark between 1 and 31.
    • selectDay

      public void selectDay(@Nonnull DateTime date)
      Switches to @date's year and month and select its day.
      Parameters:
      date - a `GDateTime` representing the day to select
    • setShowDayNames

      public void setShowDayNames(boolean value)
      Sets whether the calendar shows day names.
      Parameters:
      value - Whether to show day names above the day numbers
    • setShowHeading

      public void setShowHeading(boolean value)
      Sets whether the calendar should show a heading.

      The heading contains the current year and month as well as
      buttons for changing both.
      Parameters:
      value - Whether to show the heading in the calendar
    • setShowWeekNumbers

      public void setShowWeekNumbers(boolean value)
      Sets whether week numbers are shown in the calendar.
      Parameters:
      value - whether to show week numbers on the left of the days
    • unmarkDay

      public void unmarkDay(int day)
      Removes the visual marker from a particular day.
      Parameters:
      day - the day number to unmark between 1 and 31.
    • onDaySelected

      public SignalHandler onDaySelected(Calendar.OnDaySelected signal)
      Connect to signal "day-selected".
      See Calendar.OnDaySelected.onDaySelected() for signal description.
      Field SIGNAL_ON_DAY_SELECTED contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onNextMonth

      public SignalHandler onNextMonth(Calendar.OnNextMonth signal)
      Connect to signal "next-month".
      See Calendar.OnNextMonth.onNextMonth() for signal description.
      Field SIGNAL_ON_NEXT_MONTH contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onNextYear

      public SignalHandler onNextYear(Calendar.OnNextYear signal)
      Connect to signal "next-year".
      See Calendar.OnNextYear.onNextYear() for signal description.
      Field SIGNAL_ON_NEXT_YEAR contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onPrevMonth

      public SignalHandler onPrevMonth(Calendar.OnPrevMonth signal)
      Connect to signal "prev-month".
      See Calendar.OnPrevMonth.onPrevMonth() for signal description.
      Field SIGNAL_ON_PREV_MONTH contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onPrevYear

      public SignalHandler onPrevYear(Calendar.OnPrevYear signal)
      Connect to signal "prev-year".
      See Calendar.OnPrevYear.onPrevYear() for signal description.
      Field SIGNAL_ON_PREV_YEAR contains original signal name and can be used as resource reference.
      Parameters:
      signal - callback function (lambda).
      Returns:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • asAccessible

      public Accessible asAccessible()
      Implements interface Accessible. Call this to get access to interface functions.
      Overrides:
      asAccessible in class Widget
      Returns:
      Accessible
    • asBuildable

      public Buildable asBuildable()
      Implements interface Buildable. Call this to get access to interface functions.
      Overrides:
      asBuildable in class Widget
      Returns:
      Buildable
    • asConstraintTarget

      public ConstraintTarget asConstraintTarget()
      Implements interface ConstraintTarget. Call this to get access to interface functions.
      Overrides:
      asConstraintTarget in class Widget
      Returns:
      ConstraintTarget
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()