[file-roller/wip/gtk4: 18/54] gtk4: use a .css file to set the locationbar style




commit bd5bb2951abf61d804df675736d3d44fbfe0eeaa
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Fri Sep 30 10:25:27 2022 +0200

    gtk4: use a .css file to set the locationbar style

 src/file-roller.gresource.xml |  1 +
 src/fr-application.c          | 22 ++++++++++++++--------
 src/fr-window.c               |  4 +++-
 src/ui/app.css                |  4 ++++
 4 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/src/file-roller.gresource.xml b/src/file-roller.gresource.xml
index eb65e105..c947035d 100644
--- a/src/file-roller.gresource.xml
+++ b/src/file-roller.gresource.xml
@@ -17,6 +17,7 @@
     <file compressed="true">ui/request-dialog.ui</file>
     <file compressed="true">ui/update.ui</file>
     <file compressed="true">../data/org.gnome.ArchiveManager1.xml</file>
+    <file compressed="true">ui/app.css</file>
     <file alias="gtk/help-overlay.ui" compressed="true">ui/help-overlay.ui</file>
   </gresource>
 </gresources>
diff --git a/src/fr-application.c b/src/fr-application.c
index b7d4ecb6..9c09aed4 100644
--- a/src/fr-application.c
+++ b/src/fr-application.c
@@ -183,7 +183,6 @@ handle_method_call (GDBusConnection       *connection,
                int  *supported_types = NULL;
 
                g_variant_get (parameters, "(s)", &action);
-
                if (g_strcmp0 (action, "create") == 0) {
                        supported_types = save_type;
                }
@@ -469,33 +468,40 @@ fr_application_register_archive_manager_service (FrApplication *self)
 static void
 fr_application_startup (GApplication *application)
 {
-       GtkSettings     *gtk_settings;
-       gboolean         shell_shows_menubar;
+       GtkSettings *gtk_settings;
+       gboolean     shell_shows_menubar;
 
-    g_application_set_resource_base_path (application, "/org/gnome/FileRoller");
        G_APPLICATION_CLASS (fr_application_parent_class)->startup (application);
 
        g_set_application_name (_("Archive Manager"));
        gtk_window_set_default_icon_name ("org.gnome.ArchiveManager");
-
        fr_application_register_archive_manager_service (FR_APPLICATION (application));
        fr_initialize_data ();
 
-       /* use the menubar only when the shell shows the menu bar */
+       /* Use the menubar only when the shell shows the menu bar. */
 
        gtk_settings = gtk_settings_get_default ();
        g_object_get (G_OBJECT (gtk_settings),
                      "gtk-shell-shows-menubar", &shell_shows_menubar,
                      NULL);
-
        if (shell_shows_menubar)
                fr_initialize_app_menubar (application);
        else
                fr_initialize_app_menu (application);
 
-       /* Setup actions */
+       /* Setup actions. */
+
        g_action_map_add_action_entries (G_ACTION_MAP (application), entries,
                                         G_N_ELEMENTS (entries), NULL);
+
+       /* CSS styles for widgets. */
+
+       GtkCssProvider *css_provider = gtk_css_provider_new ();
+       gtk_css_provider_load_from_resource (css_provider, "/org/gnome/FileRoller/ui/app.css");
+       gtk_style_context_add_provider_for_display (
+               gdk_display_get_default (),
+               GTK_STYLE_PROVIDER (css_provider),
+               GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 }
 
 
diff --git a/src/fr-window.c b/src/fr-window.c
index 1404ea96..2a4abb18 100644
--- a/src/fr-window.c
+++ b/src/fr-window.c
@@ -4812,6 +4812,8 @@ fr_window_construct (FrWindow *window)
        GtkTreeSelection   *selection;
        GtkSizeGroup       *header_bar_size_group;
 
+       gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (window)), "devel");
+
        /* Create the settings objects */
 
        private->settings_listing = g_settings_new (FILE_ROLLER_SCHEMA_LISTING);
@@ -5130,7 +5132,7 @@ fr_window_construct (FrWindow *window)
        /* location bar */
 
        private->location_bar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
-       _gtk_widget_set_margin (private->location_bar, 10);
+       gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (private->location_bar)), 
"locationbar");
 
        /* Navigation commands. */
 
diff --git a/src/ui/app.css b/src/ui/app.css
new file mode 100644
index 00000000..d05a07ac
--- /dev/null
+++ b/src/ui/app.css
@@ -0,0 +1,4 @@
+.locationbar {
+       padding: 10px;
+       border-bottom: 1px solid @borders;
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]