[gnome-system-monitor/wip/cdavis/libhandy: 1/3] interface, application: Use HdyApplicationWindow and HdyHeaderBar
- From: Christopher Davis <christopherdavis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-system-monitor/wip/cdavis/libhandy: 1/3] interface, application: Use HdyApplicationWindow and HdyHeaderBar
- Date: Fri, 5 Feb 2021 05:39:40 +0000 (UTC)
commit 9f53127c211a0ee10bd9e0088429e5b79e33f977
Author: Christopher Davis <brainblasted disroot org>
Date: Thu Feb 4 18:21:17 2021 -0800
interface, application: Use HdyApplicationWindow and HdyHeaderBar
Rounded windows are in style. For consistency with other
applications, we can use HdyWindow and HdyHeaderBar.
data/interface.ui | 138 ++++++++++++++++++++++++++--------------------------
meson.build | 19 ++++----
src/application.cpp | 3 ++
src/application.h | 3 +-
src/interface.cpp | 15 +++---
src/meson.build | 1 +
6 files changed, 93 insertions(+), 86 deletions(-)
---
diff --git a/data/interface.ui b/data/interface.ui
index 8a4558ea..67ff5669 100644
--- a/data/interface.ui
+++ b/data/interface.ui
@@ -1,91 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.12 -->
- <object class="GtkApplicationWindow" id="main_window">
+ <object class="HdyApplicationWindow" id="main_window">
<property name="can-focus">False</property>
<property name="title" translatable="yes">System Monitor</property>
<property name="default-width">440</property>
<property name="default-height">495</property>
<property name="icon-name">org.gnome.SystemMonitor</property>
- <child type="titlebar">
- <object class="GtkHeaderBar" id="header_bar">
+ <child>
+ <object class="GtkBox" id="main_box">
<property name="visible">True</property>
- <property name="show-close-button">True</property>
- <style>
- <class name="titlebar"/>
- </style>
- <child type="title">
- <object class="GtkStackSwitcher" id="stack_switcher">
- <property name="visible">True</property>
- <property name="stack">stack</property>
- </object>
- </child>
- <child>
- <object class="GtkMenuButton" id="process_menu_button">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="use-popover">True</property>
- <property name="valign">center</property>
- <property name="halign">end</property>
- <property name="direction">none</property>
- <accelerator key="F10" signal="clicked"/>
- <style>
- <class name="title-button"/>
- </style>
- </object>
- <packing>
- <property name="pack-type">end</property>
- </packing>
- </child>
- <child>
- <object class="GtkMenuButton" id="window_menu_button">
- <property name="visible">True</property>
- <property name="can-focus">True</property>
- <property name="use-popover">True</property>
- <property name="valign">center</property>
- <property name="halign">end</property>
- <property name="direction">none</property>
- <accelerator key="F10" signal="clicked"/>
- <style>
- <class name="title-button"/>
- </style>
- </object>
- <packing>
- <property name="pack-type">end</property>
- </packing>
- </child>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="width-request">620</property>
+ <property name="height-request">480</property>
<child>
- <object class="GtkToggleButton" id="search_button">
+ <object class="HdyHeaderBar" id="header_bar">
<property name="visible">True</property>
- <property name="active">False</property>
- <property name="valign">center</property>
- <property name="margin-start">6</property>
- <property name="action-name">win.search</property>
- <property name="action-target">@b false</property>
+ <property name="show-close-button">True</property>
<style>
- <class name="title-button"/>
+ <class name="titlebar"/>
</style>
+ <child type="title">
+ <object class="GtkStackSwitcher" id="stack_switcher">
+ <property name="visible">True</property>
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuButton" id="process_menu_button">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="use-popover">True</property>
+ <property name="valign">center</property>
+ <property name="halign">end</property>
+ <property name="direction">none</property>
+ <accelerator key="F10" signal="clicked"/>
+ <style>
+ <class name="title-button"/>
+ </style>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
<child>
- <object class="GtkImage" id="search_image">
+ <object class="GtkMenuButton" id="window_menu_button">
<property name="visible">True</property>
- <property name="icon-size">1</property>
- <property name="icon-name">edit-find-symbolic</property>
+ <property name="can-focus">True</property>
+ <property name="use-popover">True</property>
+ <property name="valign">center</property>
+ <property name="halign">end</property>
+ <property name="direction">none</property>
+ <accelerator key="F10" signal="clicked"/>
+ <style>
+ <class name="title-button"/>
+ </style>
</object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="search_button">
+ <property name="visible">True</property>
+ <property name="active">False</property>
+ <property name="valign">center</property>
+ <property name="margin-start">6</property>
+ <property name="action-name">win.search</property>
+ <property name="action-target">@b false</property>
+ <style>
+ <class name="title-button"/>
+ </style>
+ <child>
+ <object class="GtkImage" id="search_image">
+ <property name="visible">True</property>
+ <property name="icon-size">1</property>
+ <property name="icon-name">edit-find-symbolic</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="pack-type">end</property>
+ </packing>
</child>
</object>
- <packing>
- <property name="pack-type">end</property>
- </packing>
</child>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="main_box">
- <property name="visible">True</property>
- <property name="can-focus">False</property>
- <property name="orientation">vertical</property>
- <property name="width-request">620</property>
- <property name="height-request">480</property>
<child>
<object class="GtkStack" id="stack">
<property name="visible">True</property>
diff --git a/meson.build b/meson.build
index 19fa48d1..5659e3d5 100644
--- a/meson.build
+++ b/meson.build
@@ -40,15 +40,16 @@ datadir = join_paths(prefix, get_option('datadir'))
################################################################################
# Dependencies
-giomm = dependency('giomm-2.4', version: '>=2.46')
-glib = dependency('glib-2.0', version: '>=2.56.0')
-glibmm = dependency('glibmm-2.4', version: '>=2.46')
-gmodule = dependency('gmodule-2.0')
-gtk3 = dependency('gtk+-3.0', version: '>=3.22.0')
-gtkmm = dependency('gtkmm-3.0', version: '>=3.3.18')
-libgtop = dependency('libgtop-2.0', version: '>=2.37.0')
-librsvg = dependency('librsvg-2.0', version: '>=2.35')
-libxml = dependency('libxml-2.0', version: '>=2.0')
+giomm = dependency('giomm-2.4', version: '>=2.46')
+glib = dependency('glib-2.0', version: '>=2.56.0')
+glibmm = dependency('glibmm-2.4', version: '>=2.46')
+gmodule = dependency('gmodule-2.0')
+gtk3 = dependency('gtk+-3.0', version: '>=3.22.0')
+gtkmm = dependency('gtkmm-3.0', version: '>=3.3.18')
+libgtop = dependency('libgtop-2.0', version: '>=2.37.0')
+libhandy = dependency('libhandy-1', version: '>=1.0.0')
+librsvg = dependency('librsvg-2.0', version: '>=2.35')
+libxml = dependency('libxml-2.0', version: '>=2.0')
if get_option('wnck')
libwnck = dependency('libwnck-3.0', version: '>=2.91.0')
diff --git a/src/application.cpp b/src/application.cpp
index fc5d7a62..d9645302 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -6,6 +6,7 @@
#include <glibtop/close.h>
#include <glibtop/cpu.h>
#include <glibtop/sysinfo.h>
+#include <libhandy-1/handy.h>
#include <signal.h>
#include <stdlib.h>
@@ -429,6 +430,8 @@ void GsmApplication::on_startup()
{
Gtk::Application::on_startup();
+ hdy_init();
+
load_resources ();
Glib::RefPtr<Gio::SimpleAction> action;
diff --git a/src/application.h b/src/application.h
index d43cb9d9..b79a5659 100644
--- a/src/application.h
+++ b/src/application.h
@@ -4,6 +4,7 @@
#include <gtkmm.h>
#include <glibtop/cpu.h>
+#include <libhandy-1/handy.h>
#include <algorithm>
@@ -233,7 +234,7 @@ public:
PrettyTable *pretty_table;
Glib::RefPtr<Gio::Settings> settings;
- GtkApplicationWindow *main_window;
+ HdyApplicationWindow *main_window;
unsigned frequency;
diff --git a/src/interface.cpp b/src/interface.cpp
index 8f25555d..48b42d0b 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -22,6 +22,7 @@
#include <glib/gi18n.h>
#include <gtk/gtk.h>
+#include <libhandy-1/handy.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -430,7 +431,7 @@ static void
on_activate_keyboard_shortcuts (GSimpleAction *, GVariant *, gpointer data)
{
GsmApplication *app = (GsmApplication *) data;
- gtk_widget_show (GTK_WIDGET (gtk_application_window_get_help_overlay (app->main_window)));
+ gtk_widget_show (GTK_WIDGET (gtk_application_window_get_help_overlay (GTK_APPLICATION_WINDOW
(app->main_window))));
}
static void
@@ -690,7 +691,7 @@ cb_main_window_state_changed (GtkWidget *window, GdkEventWindowState *event, gpo
void
create_main_window (GsmApplication *app)
{
- GtkApplicationWindow *main_window;
+ HdyApplicationWindow *main_window;
GtkStack *stack;
GMenuModel *window_menu_model;
GMenuModel *process_menu_model;
@@ -706,24 +707,24 @@ create_main_window (GsmApplication *app)
gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/data/menus.ui", NULL);
gtk_builder_add_from_resource (builder, "/org/gnome/gnome-system-monitor/gtk/help-overlay.ui", NULL);
- main_window = GTK_APPLICATION_WINDOW (gtk_builder_get_object (builder, "main_window"));
+ main_window = HDY_APPLICATION_WINDOW (gtk_builder_get_object (builder, "main_window"));
gtk_window_set_application (GTK_WINDOW (main_window), app->gobj());
gtk_widget_set_name (GTK_WIDGET (main_window), "gnome-system-monitor");
app->main_window = main_window;
- gtk_application_window_set_help_overlay (app->main_window,
+ gtk_application_window_set_help_overlay (GTK_APPLICATION_WINDOW (app->main_window),
GTK_SHORTCUTS_WINDOW (gtk_builder_get_object (builder,
"help_overlay")));
session = g_getenv ("XDG_CURRENT_DESKTOP");
if (session && !strstr (session, "GNOME")){
GtkBox *mainbox;
- GtkHeaderBar *headerbar;
+ HdyHeaderBar *headerbar;
mainbox = GTK_BOX (gtk_builder_get_object (builder, "main_box"));
- headerbar = GTK_HEADER_BAR (gtk_builder_get_object (builder, "header_bar"));
+ headerbar = HDY_HEADER_BAR (gtk_builder_get_object (builder, "header_bar"));
gtk_style_context_remove_class (gtk_widget_get_style_context (GTK_WIDGET (headerbar)), "titlebar");
gtk_window_set_titlebar (GTK_WINDOW (main_window), NULL);
- gtk_header_bar_set_show_close_button (headerbar, FALSE);
+ hdy_header_bar_set_show_close_button (headerbar, FALSE);
gtk_box_pack_start (mainbox, GTK_WIDGET (headerbar), FALSE, FALSE, 0);
}
diff --git a/src/meson.build b/src/meson.build
index 6669158a..8fa69ad1 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -96,6 +96,7 @@ executable(meson.project_name(),
gmodule,
gtkmm,
libgtop,
+ libhandy,
libsystemd,
libwnck,
],
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]