1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 05:54:58 +00:00

LibGUI: Add Calendar property for mode

If a user selects Year as the default view mode for Calendar app, then
all apps using Calendar widget will default to this view if not
manually overridden with a Calendar::toggle_mode call.

This commit introduces a "mode" property that allows the selection of
the default mode for the calendar widget in GML files. In this way
there is no need to manually call toggle_mode when constructing
UIs with Calendar widget.
This commit is contained in:
Domenico Iezzi 2024-02-13 21:57:17 +01:00 committed by Andrew Kaster
parent 1153068407
commit 71a784741f
3 changed files with 13 additions and 0 deletions

View file

@ -64,6 +64,10 @@ Calendar::Calendar(Core::DateTime date_time, Mode mode)
}
update_tiles(m_selected_date.year(), m_selected_date.month());
REGISTER_ENUM_PROPERTY("mode", this->mode, this->set_mode, Calendar::Mode,
{ Calendar::Mode::Month, "Month" },
{ Calendar::Mode::Year, "Year" });
}
void Calendar::set_grid(bool show)
@ -85,6 +89,13 @@ void Calendar::toggle_mode()
invalidate_layout();
}
void Calendar::set_mode(Mode mode)
{
if (mode != m_mode) {
toggle_mode();
}
}
void Calendar::show_previous_date()
{
unsigned view_month = m_view_month;

View file

@ -66,6 +66,7 @@ public:
ErrorOr<String> formatted_date(Format format = LongMonthYear);
Mode mode() const { return m_mode; }
void set_mode(Mode);
void toggle_mode();
void update_tiles(unsigned year, unsigned month);

View file

@ -30,6 +30,7 @@
@GUI::Calendar {
name: "calendar_view"
mode: "Month"
}
}