[gnome-usage] window: Port to Gtk+ widget template
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-usage] window: Port to Gtk+ widget template
- Date: Mon, 24 Apr 2017 15:41:27 +0000 (UTC)
commit ccfb845da9d829cb6aeae8070e41d740c291661a
Author: Felipe Borges <felipeborges gnome org>
Date: Sat Apr 22 16:37:32 2017 +0200
window: Port to Gtk+ widget template
https://bugzilla.gnome.org/show_bug.cgi?id=781607
data/org.gnome.Usage.gresource.xml | 1 +
data/ui/window.ui | 25 +++++++++++++++++++++++++
src/header-bar.vala | 7 +++++--
src/window.vala | 17 +++++++----------
4 files changed, 38 insertions(+), 12 deletions(-)
---
diff --git a/data/org.gnome.Usage.gresource.xml b/data/org.gnome.Usage.gresource.xml
index fedcfe0..5a7054b 100644
--- a/data/org.gnome.Usage.gresource.xml
+++ b/data/org.gnome.Usage.gresource.xml
@@ -4,5 +4,6 @@
<file compressed="true">interface/adwaita.css</file>
<file compressed="true">interface/adwaita-dark.css</file>
<file preprocess="xml-stripblanks">ui/header-bar.ui</file>
+ <file preprocess="xml-stripblanks">ui/window.ui</file>
</gresource>
</gresources>
diff --git a/data/ui/window.ui b/data/ui/window.ui
new file mode 100644
index 0000000..c955554
--- /dev/null
+++ b/data/ui/window.ui
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.9 -->
+
+ <template class="UsageWindow" parent="GtkApplicationWindow">
+ <property name="visible">True</property>
+ <property name="show-menubar">False</property>
+ <property name="title" translatable="yes">Usage</property>
+ <property name="window-position">center</property>
+ <property name="width-request">950</property>
+ <property name="height-request">600</property>
+
+ <child type="titlebar">
+ <object class="UsageHeaderBar" id="header_bar">
+ <property name="visible">True</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/src/header-bar.vala b/src/header-bar.vala
index 659cbf1..872d514 100644
--- a/src/header-bar.vala
+++ b/src/header-bar.vala
@@ -40,14 +40,17 @@ namespace Usage
{ "select-none", select_none },
};
- public HeaderBar(Gtk.Stack stack)
+ public HeaderBar ()
{
mode = HeaderBarMode.PERFORMANCE;
- stack_switcher.set_stack(stack);
set_mode(HeaderBarMode.PERFORMANCE);
}
+ public void set_stack (Gtk.Stack stack) {
+ stack_switcher.set_stack(stack);
+ }
+
public void set_mode(HeaderBarMode mode)
{
switch(this.mode)
diff --git a/src/window.vala b/src/window.vala
index 238e5db..68ff2bd 100644
--- a/src/window.vala
+++ b/src/window.vala
@@ -1,28 +1,27 @@
namespace Usage
{
+ [GtkTemplate (ui = "/org/gnome/Usage/ui/window.ui")]
public class Window : Gtk.ApplicationWindow
{
+ [GtkChild]
private Usage.HeaderBar header_bar;
+
+ [GtkChild]
+ private Gtk.Stack stack;
+
private View[] views;
public Window(Gtk.Application application)
{
GLib.Object(application : application);
- this.set_default_size(950, 600);
- this.set_size_request(930, 300);
- this.window_position = Gtk.WindowPosition.CENTER;
- this.set_title(_("Usage"));
-
load_css();
Gtk.Settings.get_for_screen(get_screen()).notify["gtk-application-prefer-dark-theme"].connect(()
=>
{
load_css();
});
- var stack = new Gtk.Stack();
- header_bar = new Usage.HeaderBar(stack);
- set_titlebar(header_bar);
+ header_bar.set_stack (stack);
views = new View[]
{
@@ -54,8 +53,6 @@ namespace Usage
header_bar.set_mode(HeaderBarMode.POWER);
}
});
-
- this.add(stack);
}
public Usage.HeaderBar get_header_bar()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]