[gupnp-tools] av-cp: Use headerbars in search dialog



commit 25b7b3621f6c440309f8683cc4ba152dc6960cb4
Author: Jens Georg <mail jensge org>
Date:   Sat Jul 18 14:47:35 2020 +0200

    av-cp: Use headerbars in search dialog

 data/search-dialog.ui         |  8 +++++++-
 src/av-cp/playlist-treeview.c |  2 +-
 src/av-cp/search-dialog.c     | 17 +++++++++++++++++
 src/av-cp/search-dialog.h     |  3 +++
 4 files changed, 28 insertions(+), 2 deletions(-)
---
diff --git a/data/search-dialog.ui b/data/search-dialog.ui
index 3b5f7eb..453158e 100644
--- a/data/search-dialog.ui
+++ b/data/search-dialog.ui
@@ -22,6 +22,9 @@
     <property name="default_width">400</property>
     <property name="default_height">300</property>
     <property name="type_hint">dialog</property>
+    <child type="titlebar">
+      <placeholder/>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox">
         <property name="can_focus">False</property>
@@ -32,7 +35,7 @@
             <property name="can_focus">False</property>
             <property name="layout_style">end</property>
             <child>
-              <object class="GtkButton">
+              <object class="GtkButton" id="button1">
                 <property name="label" translatable="yes">_Close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -126,5 +129,8 @@
         </child>
       </object>
     </child>
+    <action-widgets>
+      <action-widget response="-7">button1</action-widget>
+    </action-widgets>
   </template>
 </interface>
diff --git a/src/av-cp/playlist-treeview.c b/src/av-cp/playlist-treeview.c
index 389eb1e..9c3f525 100644
--- a/src/av-cp/playlist-treeview.c
+++ b/src/av-cp/playlist-treeview.c
@@ -350,7 +350,7 @@ on_search_menu_item_activated (GtkMenuItem *menuitem,
                         -1);
 
     if (search_dialog == NULL) {
-        search_dialog = GTK_DIALOG (g_object_new (SEARCH_DIALOG_TYPE, NULL));
+        search_dialog = search_dialog_new ();
     }
 
     search_dialog_set_server (SEARCH_DIALOG (search_dialog), server);
diff --git a/src/av-cp/search-dialog.c b/src/av-cp/search-dialog.c
index 8235fde..35d6f34 100644
--- a/src/av-cp/search-dialog.c
+++ b/src/av-cp/search-dialog.c
@@ -783,3 +783,20 @@ search_dialog_on_didl_popup_activate (SearchDialog *self, GVariant *parameter, g
                 g_free (id);
         }
 }
+
+GtkDialog *
+search_dialog_new (void)
+{
+        GtkSettings *settings = gtk_settings_get_default ();
+        int use_header;
+
+        g_object_get (G_OBJECT (settings),
+                                "gtk-dialogs-use-header",
+                                &use_header,
+                                NULL);
+
+        return (GtkDialog *) g_object_new (SEARCH_DIALOG_TYPE,
+                                           "use-header-bar",
+                                           use_header == 1 ? TRUE : FALSE,
+                                           NULL);
+}
\ No newline at end of file
diff --git a/src/av-cp/search-dialog.h b/src/av-cp/search-dialog.h
index b1d7ea3..fe1eed6 100644
--- a/src/av-cp/search-dialog.h
+++ b/src/av-cp/search-dialog.h
@@ -35,6 +35,9 @@ typedef struct _SearchDialogClass SearchDialogClass;
 
 GType search_dialog_get_type (void);
 
+GtkDialog *
+search_dialog_new ();
+
 void
 search_dialog_set_server (SearchDialog *self, AVCPMediaServer *server);
 


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