summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Davis <brainblasted@disroot.org>2020-10-03 16:12:11 -0700
committerChristopher Davis <brainblasted@disroot.org>2020-10-05 00:39:44 +0000
commit72d4b362bf3647598fa72a45161cdedfe13410a8 (patch)
tree9745825ea2e41c4d602bb744634228b9ac00d88b
parentf40524f205a9d4180220d31dcc536653452c4632 (diff)
downloadgnome-contacts-wip/christopherdavis/hdywindow.tar.gz
window: Use HdyWindowwip/christopherdavis/hdywindow
Allows us to drop the use of HdyTitleBar.
-rw-r--r--data/ui/contacts-window.ui131
-rw-r--r--src/contacts-window.vala25
2 files changed, 86 insertions, 70 deletions
diff --git a/data/ui/contacts-window.ui b/data/ui/contacts-window.ui
index 0c2d3d5..aa858e8 100644
--- a/data/ui/contacts-window.ui
+++ b/data/ui/contacts-window.ui
@@ -136,7 +136,7 @@
</object>
</child>
</object>
- <template class="ContactsWindow" parent="GtkApplicationWindow">
+ <template class="ContactsWindow" parent="HdyApplicationWindow">
<property name="can_focus">False</property>
<property name="default_width">800</property>
<property name="default_height">600</property>
@@ -144,9 +144,10 @@
<property name="title" translatable="yes">Contacts</property>
<signal name="key-press-event" handler="key_press_event_cb" object="ContactsWindow" after="yes" swapped="no"/>
<signal name="delete-event" handler="delete_event_cb" object="ContactsWindow" after="no" swapped="no"/>
- <child type="titlebar">
- <object class="HdyTitleBar" id="titlebar">
+ <child>
+ <object class="GtkBox">
<property name="visible">True</property>
+ <property name="orientation">vertical</property>
<child>
<object class="HdyLeaflet" id="header">
<property name="visible">True</property>
@@ -155,7 +156,7 @@
<property name="child-transition-duration" bind-source="content_box" bind-property="child-transition-duration" bind-flags="bidirectional|sync-create"/>
<property name="transition-type" bind-source="content_box" bind-property="transition-type" bind-flags="bidirectional|sync-create"/>
<child>
- <object class="GtkHeaderBar" id="left_header">
+ <object class="HdyHeaderBar" id="left_header">
<property name="visible">True</property>
<property name="hexpand">False</property>
<property name="can_focus">False</property>
@@ -193,7 +194,7 @@
<property name="can_focus">True</property>
<property name="focus_on_click">False</property>
<property name="popover">hamburger_menu_popover</property>
- <accelerator key="F10" signal="clicked"/>
+ <accelerator key="F10" signal="clicked"/>
<child>
<object class="GtkImage">
<property name="visible">True</property>
@@ -235,7 +236,7 @@
</packing>
</child>
<child>
- <object class="GtkHeaderBar" id="right_header">
+ <object class="HdyHeaderBar" id="right_header">
<property name="visible">True</property>
<property name="hexpand">True</property>
<property name="show_close_button">True</property>
@@ -350,82 +351,82 @@
</child>
</object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkOverlay" id="notification_overlay">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
<child>
- <object class="HdyLeaflet" id="content_box">
+ <object class="GtkOverlay" id="notification_overlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="can-swipe-back">True</property>
- <signal name="notify::folded" handler="on_folded" object="ContactsWindow" after="yes" swapped="no"/>
- <signal name="notify::child-transition-running" handler="on_child_transition_running" object="ContactsWindow" after="yes" swapped="no"/>
<child>
- <object class="GtkStack" id="list_pane_stack">
+ <object class="HdyLeaflet" id="content_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="hexpand">False</property>
+ <property name="can-swipe-back">True</property>
+ <signal name="notify::folded" handler="on_folded" object="ContactsWindow" after="yes" swapped="no"/>
+ <signal name="notify::child-transition-running" handler="on_child_transition_running" object="ContactsWindow" after="yes" swapped="no"/>
<child>
- <object class="GtkBox">
+ <object class="GtkStack" id="list_pane_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="width_request">300</property>
- <property name="homogeneous">True</property>
+ <property name="hexpand">False</property>
<child>
- <object class="GtkSpinner">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="active">True</property>
- <property name="valign">end</property>
- <property name="halign">center</property>
- <style>
- <class name="contacts-watermark"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="halign">center</property>
- <property name="label" translatable="yes">Loading</property>
- <style>
- <class name="contacts-watermark"/>
- </style>
+ <property name="orientation">vertical</property>
+ <property name="width_request">300</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkSpinner">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">True</property>
+ <property name="valign">end</property>
+ <property name="halign">center</property>
+ <style>
+ <class name="contacts-watermark"/>
+ </style>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="halign">center</property>
+ <property name="label" translatable="yes">Loading</property>
+ <style>
+ <class name="contacts-watermark"/>
+ </style>
+ </object>
+ </child>
</object>
</child>
</object>
+ <packing>
+ <property name="name">list-pane</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <style>
+ <class name="sidebar"/>
+ </style>
+ </object>
+ <packing>
+ <property name="navigatable">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkOverlay" id="contact_pane_container">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ </object>
+ <packing>
+ <property name="name">contact-pane</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="name">list-pane</property>
- </packing>
- </child>
- <child>
- <object class="GtkSeparator">
- <property name="visible">True</property>
- <style>
- <class name="sidebar"/>
- </style>
- </object>
- <packing>
- <property name="navigatable">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkOverlay" id="contact_pane_container">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- </object>
- <packing>
- <property name="name">contact-pane</property>
- </packing>
</child>
</object>
</child>
diff --git a/src/contacts-window.vala b/src/contacts-window.vala
index 5349456..759832b 100644
--- a/src/contacts-window.vala
+++ b/src/contacts-window.vala
@@ -18,7 +18,7 @@
using Folks;
[GtkTemplate (ui = "/org/gnome/Contacts/ui/contacts-window.ui")]
-public class Contacts.Window : Gtk.ApplicationWindow {
+public class Contacts.Window : Hdy.ApplicationWindow {
private const GLib.ActionEntry[] action_entries = {
{ "edit-contact", edit_contact },
@@ -38,11 +38,11 @@ public class Contacts.Window : Gtk.ApplicationWindow {
[GtkChild]
private Gtk.Container contact_pane_container;
[GtkChild]
- private Hdy.TitleBar titlebar;
+ private Hdy.HeaderBar left_header;
[GtkChild]
- private Gtk.HeaderBar left_header;
+ private Gtk.Separator header_separator;
[GtkChild]
- private Gtk.HeaderBar right_header;
+ private Hdy.HeaderBar right_header;
[GtkChild]
private Gtk.Overlay notification_overlay;
[GtkChild]
@@ -240,7 +240,7 @@ public class Contacts.Window : Gtk.ApplicationWindow {
((Gtk.Widget) this.done_button).set_focus_on_click (true);
}
// When selecting or editing, we get special headerbars
- this.titlebar.selection_mode = this.state == UiState.SELECTING || this.state.editing ();
+ set_selection_mode (this.state == UiState.SELECTING || this.state.editing ());
// Allow the back gesture when not browsing
this.content_box.can_swipe_back = this.state == UiState.NORMAL ||
@@ -248,6 +248,21 @@ public class Contacts.Window : Gtk.ApplicationWindow {
this.state == UiState.SELECTING;
}
+ private void set_selection_mode (bool selection_mode) {
+ var left_ctx = this.left_header.get_style_context ();
+ var separator_ctx = this.header_separator.get_style_context ();
+ var right_ctx = this.right_header.get_style_context ();
+ if (selection_mode) {
+ left_ctx.add_class ("selection-mode");
+ separator_ctx.add_class ("selection-mode");
+ right_ctx.add_class ("selection-mode");
+ } else {
+ left_ctx.remove_class ("selection-mode");
+ separator_ctx.remove_class ("selection-mode");
+ right_ctx.remove_class ("selection-mode");
+ }
+ }
+
[GtkCallback]
private void on_back_clicked () {
show_list_pane ();