[gtk/wip/otte/titlebar: 3/4] window: Add a titlebar property




commit dbef65d13f3a7701c6bed4753d744c3e9a490690
Author: Benjamin Otte <otte redhat com>
Date:   Tue Sep 21 04:33:52 2021 +0200

    window: Add a titlebar property
    
    It just turns get/set_titlebar into a property.

 gtk/gtkwindow.c | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index b6e15502f4..1a83321391 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -283,6 +283,7 @@ enum {
   PROP_DEFAULT_WIDGET,
   PROP_FOCUS_WIDGET,
   PROP_CHILD,
+  PROP_TITLEBAR,
   PROP_HANDLE_MENUBAR_ACCEL,
 
   /* Readonly properties */
@@ -1041,6 +1042,20 @@ gtk_window_class_init (GtkWindowClass *klass)
                            GTK_TYPE_WIDGET,
                            GTK_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
 
+  /**
+   * GtkWindow:titlebar: (attributes org.gtk.Property.get=gtk_window_get_titlebar 
org.gtk.Property.set=gtk_window_set_titlebar)
+   *
+   * The titlebar widget.
+   *
+   * Since: 4.6
+   */
+  window_props[PROP_TITLEBAR] =
+      g_param_spec_object ("titlebar",
+                           P_("Titlebar"),
+                           P_("The titlebar widget"),
+                           GTK_TYPE_WIDGET,
+                           GTK_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY);
+
   /**
    * GtkWindow:handle-menubar-accel: (attributes org.gtk.Property.get=gtk_window_get_handle_menubar_accel 
org.gtk.Property.set=gtk_window_set_handle_menubar_accel)
    *
@@ -1820,6 +1835,9 @@ gtk_window_set_property (GObject      *object,
     case PROP_CHILD:
       gtk_window_set_child (window, g_value_get_object (value));
       break;
+    case PROP_TITLEBAR:
+      gtk_window_set_titlebar (window, g_value_get_object (value));
+      break;
     case PROP_HANDLE_MENUBAR_ACCEL:
       gtk_window_set_handle_menubar_accel (window, g_value_get_boolean (value));
       break;
@@ -1903,6 +1921,9 @@ gtk_window_get_property (GObject      *object,
     case PROP_CHILD:
       g_value_set_object (value, gtk_window_get_child (window));
       break;
+    case PROP_TITLEBAR:
+      g_value_set_object (value, gtk_window_get_titlebar (window));
+      break;
     case PROP_HANDLE_MENUBAR_ACCEL:
       g_value_set_boolean (value, gtk_window_get_handle_menubar_accel (window));
       break;
@@ -2997,7 +3018,7 @@ gtk_window_enable_csd (GtkWindow *window)
 }
 
 /**
- * gtk_window_set_titlebar:
+ * gtk_window_set_titlebar: (attributes org.gtk.Method.set_property=titlebar)
  * @window: a `GtkWindow`
  * @titlebar: (nullable): the widget to use as titlebar
  *
@@ -3061,10 +3082,12 @@ gtk_window_set_titlebar (GtkWindow *window,
 
   if (was_mapped)
     gtk_widget_map (widget);
+
+  g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_TITLEBAR]);
 }
 
 /**
- * gtk_window_get_titlebar:
+ * gtk_window_get_titlebar: (attributes org.gtk.Method.get_property=titlebar)
  * @window: a `GtkWindow`
  *
  * Returns the custom titlebar that has been set with


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