month-view: rewrite was a template widget

This commit is contained in:
Georges Basile Stavracas Neto
2017-10-06 20:32:00 -03:00
parent 857409a46e
commit e59910f0e9
13 changed files with 1730 additions and 1363 deletions
+75
View File
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalMonthCell" parent="GtkEventBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="expand">True</property>
<signal name="enter-notify-event" handler="enter_notify_event_cb" object="GcalMonthCell" swapped="no" />
<signal name="leave-notify-event" handler="leave_notify_event_cb" object="GcalMonthCell" swapped="no" />
<child>
<object class="GtkOverlay" id="overlay">
<property name="visible">True</property>
<property name="can-focus">True</property>
<!-- HACK: in Gtk3, insensitive widgets receive no events. We "fix" this
limitation by adding an always-sensitive GtkEventBox above the event,
and when the event is insensitive, the event box's event window is
above it -->
<child type="overlay">
<object class="GtkEventBox" id="button_event_box">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="above-child" bind-source="overflow_button" bind-property="sensitive" bind-flags="default|invert-boolean|sync-create" />
<signal name="enter-notify-event" handler="enter_notify_event_cb" object="GcalMonthCell" swapped="no" />
<signal name="leave-notify-event" handler="leave_notify_event_cb" object="GcalMonthCell" swapped="no" />
<child>
<object class="GtkButton" id="overflow_button">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="valign">end</property>
<property name="receives-default">True</property>
<signal name="clicked" handler="overflow_button_clicked_cb" object="GcalMonthCell" swapped="no" />
<style>
<class name="flat" />
</style>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">6</property>
<property name="valign">center</property>
<child type="center">
<object class="GtkLabel" id="overflow_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="ellipsize">end</property>
</object>
</child>
<child>
<object class="GtkLabel" id="day_label">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="pack-type">end</property>
</packing>
</child>
<child>
<object class="GtkImage" id="weather_icon">
<property name="can-focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<packing>
<property name="pack-type">end</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>
+206
View File
@@ -0,0 +1,206 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="GcalMonthView" parent="GtkContainer">
<!-- Header -->
<child type="header">
<object class="GtkBox">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">true</property>
<child>
<object class="GtkLabel" id="month_label">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="month-name" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="year_label">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">1.0</property>
<style>
<class name="secondary-label" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">true</property>
<property name="spacing">6</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="margin-bottom">6</property>
<child>
<object class="GtkLabel" id="label_0">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_1">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_2">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_3">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_4">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_5">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="label_6">
<property name="visible">true</property>
<property name="can_focus">false</property>
<property name="hexpand">true</property>
<property name="xalign">0.0</property>
<style>
<class name="header" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<!-- Grid -->
<child type="grid">
<object class="GtkGrid" id="grid">
<property name="visible">true</property>
<property name="can-focus">false</property>
<property name="row-homogeneous">true</property>
<property name="column-homogeneous">true</property>
</object>
</child>
</template>
<!-- Overflow popover -->
<object class="GtkPopover" id="overflow_popover">
<property name="can-focus">false</property>
<property name="position">bottom</property>
<signal name="drag-motion" handler="cancel_dnd_from_overflow_popover" object="GcalMonthView" swapped="yes" />
<style>
<class name="events" />
</style>
<child>
<object class="GtkBox">
<property name="visible">true</property>
<property name="can-focus">false</property>
<property name="spacing">6</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="popover_title">
<property name="visible">true</property>
<property name="can-focus">false</property>
<property name="margin-top">6</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="xalign">0.0</property>
<style>
<class name="sidebar-header" />
</style>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">true</property>
<property name="can-focus">false</property>
<property name="hscrollbar-policy">never</property>
<property name="vscrollbar-policy">automatic</property>
<property name="max-content-height">400</property>
<property name="propagate-natural-height">true</property>
<child>
<object class="GtkBox" id="events_box">
<property name="visible">true</property>
<property name="orientation">vertical</property>
<property name="margin-start">2</property>
<property name="margin-end">2</property>
<property name="spacing">2</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkButton">
<property name="visible">true</property>
<property name="hexpand">true</property>
<property name="label" translatable="yes">Add Event…</property>
<signal name="clicked" handler="add_new_event_button_cb" object="GcalMonthView" swapped="no" />
</object>
</child>
</object>
</child>
</object>
</interface>
+3 -3
View File
@@ -17,7 +17,7 @@
<property name="label">Month</property>
<property name="yalign">0</property>
<style>
<class name="start-header" />
<class name="primary-label" />
</style>
</object>
</child>
@@ -29,7 +29,7 @@
<property name="yalign">0</property>
<property name="label">Week</property>
<style>
<class name="end-header" />
<class name="secondary-label" />
</style>
</object>
</child>
@@ -39,7 +39,7 @@
<property name="label">Year</property>
<property name="yalign">0</property>
<style>
<class name="end-header" />
<class name="secondary-label" />
</style>
</object>
</child>