Nothing really works here, this is very WIP. It doesn't even show events. Let's build from here.
376 lines
17 KiB
XML
376 lines
17 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<template class="GcalWindow" parent="AdwApplicationWindow">
|
|
<property name="title" translatable="yes">Calendar</property>
|
|
<property name="default_width">800</property>
|
|
<property name="default_height">600</property>
|
|
<property name="width_request">360</property>
|
|
<property name="height_request">600</property>
|
|
|
|
<!-- Shortcuts -->
|
|
<child>
|
|
<object class="GtkShortcutController">
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Control>t</property>
|
|
<property name="action">action(win.today)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Alt>Down</property>
|
|
<property name="action">action(win.today)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger">Home</property>
|
|
<property name="action">action(win.today)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Alt>Left</property>
|
|
<property name="action">action(win.previous-date)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger">Page_Up</property>
|
|
<property name="action">action(win.previous-date)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Alt>Right</property>
|
|
<property name="action">action(win.next-date)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger">Page_Down</property>
|
|
<property name="action">action(win.next-date)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Control>Page_Down</property>
|
|
<property name="action">action(win.change-view)</property>
|
|
<property name="arguments">-1</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Control>Page_Up</property>
|
|
<property name="action">action(win.change-view)</property>
|
|
<property name="arguments">-2</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Alt>1</property>
|
|
<property name="action">action(win.change-view)</property>
|
|
<property name="arguments">0</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Alt>2</property>
|
|
<property name="action">action(win.change-view)</property>
|
|
<property name="arguments">1</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Ctrl>n</property>
|
|
<property name="action">action(win.new-event)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Control>q</property>
|
|
<property name="action">action(app.quit)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Ctrl><Alt>m</property>
|
|
<property name="action">action(win.show-calendars)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger"><Ctrl>r</property>
|
|
<property name="action">action(app.sync)</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcut">
|
|
<property name="trigger">F5</property>
|
|
<property name="action">action(app.sync)</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
<!-- Main Overlay -->
|
|
<child>
|
|
<object class="AdwToastOverlay" id="overlay">
|
|
<child>
|
|
<object class="AdwNavigationSplitView" id="split_view">
|
|
<!-- Sidebar -->
|
|
<property name="sidebar">
|
|
<object class="AdwNavigationPage">
|
|
<property name="title" translatable="yes">Calendar</property>
|
|
<property name="child">
|
|
<object class="AdwToolbarView">
|
|
<child type="top">
|
|
<object class="GtkBox">
|
|
<property name="orientation">vertical</property>
|
|
|
|
<child>
|
|
<object class="AdwHeaderBar">
|
|
<child type="start">
|
|
<object class="GcalSyncIndicator" id="sync_indicator" />
|
|
</child>
|
|
<property name="title-widget">
|
|
<object class="GcalCalendarButton" id="calendars_button" />
|
|
</property>
|
|
<child type="end">
|
|
<object class="GtkMenuButton" id="menu_button">
|
|
<property name="icon-name">open-menu-symbolic</property>
|
|
<property name="popover">win_menu</property>
|
|
<property name="tooltip-text" translatable="yes">Main Menu</property>
|
|
<property name="primary">True</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="GcalDateChooser" id="date_chooser">
|
|
<property name="split-month-year">False</property>
|
|
<property name="vexpand">False</property>
|
|
<property name="active-date" bind-source="GcalWindow" bind-property="active-date" bind-flags="bidirectional"/>
|
|
<signal name="day-selected" handler="day_selected" object="GcalWindow" swapped="yes"/>
|
|
</object>
|
|
</child>
|
|
|
|
</object>
|
|
|
|
</child>
|
|
|
|
<property name="content">
|
|
<object class="GcalAgendaView" id="agenda_view">
|
|
<property name="vexpand">True</property>
|
|
<property name="active-date" bind-source="GcalWindow" bind-property="active-date" bind-flags="bidirectional"/>
|
|
<signal name="create-event" handler="show_new_event_widget" object="GcalWindow" swapped="no"/>
|
|
<signal name="event-activated" handler="event_activated" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
</property>
|
|
|
|
<child type="bottom">
|
|
<object class="GtkActionBar" id="action_bar">
|
|
<property name="revealed">False</property>
|
|
<child type="start">
|
|
<object class="GtkButton">
|
|
<property name="action-name">win.today</property>
|
|
<property name="child">
|
|
<object class="AdwButtonContent">
|
|
<property name="label" translatable="yes">_Today</property>
|
|
<property name="use-underline">True</property>
|
|
<property name="icon-name">calendar-today-symbolic</property>
|
|
<property name="can-shrink">True</property>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child type="end">
|
|
<object class="GcalToolbarEnd" id="sidebar_toolbar_end"/>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</property>
|
|
|
|
<!-- Main content -->
|
|
<property name="content">
|
|
<object class="AdwNavigationPage" id="content_page">
|
|
<binding name="title">
|
|
<closure type="gchararray" function="content_title">
|
|
<lookup type="GcalWindow" name="active-view"/>
|
|
</closure>
|
|
</binding>
|
|
<property name="child">
|
|
<object class="AdwToolbarView">
|
|
<style>
|
|
<class name="view" />
|
|
</style>
|
|
|
|
<child type="top">
|
|
<object class="AdwHeaderBar" id="header_bar">
|
|
<child>
|
|
<object class="GtkButton">
|
|
<property name="action-name">win.today</property>
|
|
<property name="child">
|
|
<object class="AdwButtonContent">
|
|
<property name="label" translatable="yes">_Today</property>
|
|
<property name="use-underline">True</property>
|
|
<property name="icon-name">calendar-today-symbolic</property>
|
|
<property name="can-shrink">True</property>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child type="title">
|
|
<object class="AdwViewSwitcher" id="views_switcher">
|
|
<property name="stack">views_stack</property>
|
|
<property name="policy">wide</property>
|
|
</object>
|
|
</child>
|
|
<child type="end">
|
|
<object class="GcalToolbarEnd" id="toolbar_end" />
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
<property name="content">
|
|
<object class="GtkBox" id="main_box">
|
|
<property name="hexpand">True</property>
|
|
<property name="vexpand">True</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="AdwViewStack" id="views_stack">
|
|
<property name="hexpand">True</property>
|
|
<property name="vexpand">True</property>
|
|
<signal name="notify::visible-child" handler="view_changed" object="GcalWindow" swapped="no"/>
|
|
<style>
|
|
<class name="view"/>
|
|
</style>
|
|
<child>
|
|
<object class="AdwViewStackPage">
|
|
<property name="name">week</property>
|
|
<property name="title" translatable="yes">_Week</property>
|
|
<property name="use-underline">True</property>
|
|
<property name="icon_name">calendar-week-symbolic</property>
|
|
<property name="child">
|
|
<object class="GcalWeekView" id="week_view">
|
|
<property name="active-date" bind-source="GcalWindow" bind-property="active-date" bind-flags="bidirectional"/>
|
|
<signal name="create-event" handler="show_new_event_widget" object="GcalWindow" swapped="no"/>
|
|
<signal name="event-activated" handler="event_activated" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="AdwViewStackPage">
|
|
<property name="name">month</property>
|
|
<property name="title" translatable="yes">_Month</property>
|
|
<property name="use-underline">True</property>
|
|
<property name="icon_name">calendar-month-symbolic</property>
|
|
<property name="child">
|
|
<object class="GcalMonthView" id="month_view">
|
|
<property name="active-date" bind-source="GcalWindow" bind-property="active-date" bind-flags="bidirectional"/>
|
|
<signal name="create-event" handler="show_new_event_widget" object="GcalWindow" swapped="no"/>
|
|
<signal name="create-event-detailed" handler="create_event_detailed_cb" object="GcalWindow" swapped="no"/>
|
|
<signal name="event-activated" handler="event_activated" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="AdwViewStackPage">
|
|
<property name="name">dazzling-month</property>
|
|
<property name="title" translatable="yes">_Month</property>
|
|
<property name="use-underline">True</property>
|
|
<property name="icon_name">calendar-month-symbolic</property>
|
|
<property name="child">
|
|
<object class="GcalDazzlingMonthView" id="dazzling_month_view">
|
|
<property name="active-date" bind-source="GcalWindow" bind-property="active-date" bind-flags="bidirectional"/>
|
|
<signal name="create-event" handler="show_new_event_widget" object="GcalWindow" swapped="no"/>
|
|
<signal name="create-event-detailed" handler="create_event_detailed_cb" object="GcalWindow" swapped="no"/>
|
|
<signal name="event-activated" handler="event_activated" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
|
|
<child>
|
|
<object class="AdwBreakpoint">
|
|
<condition>max-width: 700sp</condition>
|
|
<setter object="split_view" property="collapsed">True</setter>
|
|
<setter object="action_bar" property="revealed">True</setter>
|
|
<!-- This needs to be set so that focus does not stay in the content pane when folding. -->
|
|
<setter object="content_page" property="sensitive">False</setter>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
<object class="GcalQuickAddPopover" id="quick_add_popover">
|
|
<signal name="edit-event" handler="edit_event" object="GcalWindow" swapped="no"/>
|
|
<signal name="closed" handler="close_new_event_widget" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
<object class="GcalCalendarManagementDialog" id="calendar_management_dialog">
|
|
<property name="visible">False</property>
|
|
<property name="transient_for">GcalWindow</property>
|
|
</object>
|
|
<object class="GcalEventEditorDialog" id="event_editor">
|
|
<property name="visible">False</property>
|
|
<property name="transient_for">GcalWindow</property>
|
|
<signal name="remove-event" handler="on_event_editor_dialog_remove_event_cb" object="GcalWindow" swapped="no"/>
|
|
</object>
|
|
|
|
<menu id='menu'>
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Date & Time Settings…</attribute>
|
|
<attribute name="action">win.open-date-time-settings</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Online Accounts…</attribute>
|
|
<attribute name="action">win.open-online-accounts</attribute>
|
|
</item>
|
|
<submenu>
|
|
<attribute name="label" translatable="yes">Weather</attribute>
|
|
<item>
|
|
<attribute name="custom">weather</attribute>
|
|
</item>
|
|
</submenu>
|
|
</section>
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
|
|
<attribute name="action">win.show-help-overlay</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_About Calendar</attribute>
|
|
<attribute name="action">app.about</attribute>
|
|
</item>
|
|
</section>
|
|
</menu>
|
|
|
|
<object class="GtkPopoverMenu" id="win_menu">
|
|
<property name="menu-model">menu</property>
|
|
|
|
<!-- Weather submenu -->
|
|
<child type="weather">
|
|
<object class="GcalWeatherSettings" id="weather_settings" />
|
|
</child>
|
|
|
|
</object>
|
|
</interface>
|