diff --git a/data/org.gnome.Usage.gresource.xml b/data/org.gnome.Usage.gresource.xml index 2f0e1a656f36eeb3d0e6ee4d1dcdf84ea8183a48..887a1d1e77f04e32bcd84fe9979b40a9c771d68e 100644 --- a/data/org.gnome.Usage.gresource.xml +++ b/data/org.gnome.Usage.gresource.xml @@ -11,5 +11,7 @@ ui/process-row.ui ui/sub-process-sub-row.ui ui/sub-process-list-box.ui + ui/cpu-sub-view.ui + ui/better-box.ui diff --git a/data/ui/better-box.ui b/data/ui/better-box.ui new file mode 100644 index 0000000000000000000000000000000000000000..525f1d2ed73b45056e9aef686f3fdd3fd22ed9b6 --- /dev/null +++ b/data/ui/better-box.ui @@ -0,0 +1,8 @@ + + + + diff --git a/data/ui/cpu-sub-view.ui b/data/ui/cpu-sub-view.ui new file mode 100644 index 0000000000000000000000000000000000000000..c33ea65e726fba526932670b4205237bf3ddd99a --- /dev/null +++ b/data/ui/cpu-sub-view.ui @@ -0,0 +1,74 @@ + + + + diff --git a/src/better-box.vala b/src/better-box.vala index db62f3475773edf6722b8f3c2ff545c9c0820691..d5e2fe08749caa0beb39d71c4901aaa0dfbad569 100644 --- a/src/better-box.vala +++ b/src/better-box.vala @@ -20,6 +20,7 @@ namespace Usage { + [GtkTemplate (ui = "/org/gnome/Usage/ui/better-box.ui")] public class BetterBox : Gtk.Box { public int max_width_request { get; set; default = -1; } diff --git a/src/cpu-sub-view.vala b/src/cpu-sub-view.vala index d4254891f586567483c2599d6964b0085d474a4a..9e225e900f15d5d0c20c024bb13559ecc8428194 100644 --- a/src/cpu-sub-view.vala +++ b/src/cpu-sub-view.vala @@ -20,64 +20,53 @@ namespace Usage { + [GtkTemplate (ui = "/org/gnome/Usage/ui/cpu-sub-view.ui")] public class ProcessorSubView : View, SubView { - private ProcessListBox process_list_box; + [GtkChild] + private BetterBox better_box; + + [GtkChild] + private Gtk.Box cpu_box; + + [GtkChild] + private Gtk.Box graph_placeholder; + + [GtkChild] + private Gtk.Box process_list_placeholder; + + [GtkChild] + private Gtk.Spinner spinner; + + [GtkChild] private NoResultsFoundView no_process_view; + private ProcessListBox process_list_box; + public ProcessorSubView() { - name = "PROCESSOR"; - - var label = new Gtk.Label("" + _("Processor") + ""); - label.set_use_markup(true); - label.margin_top = 25; - label.margin_bottom = 15; - + //TODO: Remove graph_placeholder; migrate to gtk+3 templates var cpu_graph = new CpuGraphBig(); cpu_graph.hexpand = true; var cpu_graph_box = new GraphBox(cpu_graph); cpu_graph_box.height_request = 225; cpu_graph_box.width_request = 600; cpu_graph_box.valign = Gtk.Align.START; + graph_placeholder.add(cpu_graph_box); + //TODO: Remove process_list_placeholder; migrate to gtk+3 templates process_list_box = new ProcessListBox(ProcessListBoxType.PROCESSOR); process_list_box.margin_bottom = 20; process_list_box.margin_top = 30; - var spinner = new Gtk.Spinner(); - spinner.active = true; - spinner.margin_top = 30; - spinner.margin_bottom = 20; - - no_process_view = new NoResultsFoundView(); - - var cpu_box = new Gtk.Box(Gtk.Orientation.VERTICAL, 0); - cpu_box.pack_start(label, false, false, 0); - cpu_box.pack_start(cpu_graph_box, false, false, 0); - cpu_box.pack_start(spinner, true, true, 0); - cpu_box.add(no_process_view); - SystemMonitor.get_default().cpu_processes_ready.connect(() => { - cpu_box.pack_start(process_list_box, false, false, 0); + process_list_placeholder.pack_start(process_list_box, false, false, 0); process_list_box.update(); cpu_box.remove(spinner); }); process_list_box.bind_property ("empty", no_process_view, "visible", BindingFlags.BIDIRECTIONAL); - - var better_box = new BetterBox(); - better_box.max_width_request = 600; - better_box.halign = Gtk.Align.CENTER; - better_box.orientation = Gtk.Orientation.HORIZONTAL; - better_box.add(cpu_box); - - var scrolled_window = new Gtk.ScrolledWindow(null, null); - scrolled_window.add(better_box); - scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC); - - add(scrolled_window); } public override void show_all() {