[gtk/present-toplevel: 32/54] toplevel: Move more toplevel api over



commit a537ddc8413ed4975b34a962495ed686e7ffbd0e
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Mar 1 12:12:59 2020 -0500

    toplevel: Move more toplevel api over

 gdk/gdktoplevel.c        | 110 +++++++++++++++++++++++++++++++++++++++++++++++
 gdk/gdktoplevel.h        |  17 ++++++++
 gdk/gdktoplevelprivate.h |  12 ++++++
 3 files changed, 139 insertions(+)
---
diff --git a/gdk/gdktoplevel.c b/gdk/gdktoplevel.c
index 1b3121fca5..dbfe61a0d5 100644
--- a/gdk/gdktoplevel.c
+++ b/gdk/gdktoplevel.c
@@ -50,11 +50,39 @@ gdk_toplevel_default_get_state (GdkToplevel *toplevel)
   return 0;
 }
 
+static void
+gdk_toplevel_default_set_title (GdkToplevel *toplevel,
+                                const char  *title)
+{
+}
+
+static void
+gdk_toplevel_default_set_startup_id (GdkToplevel *toplevel,
+                                     const char  *startup_id)
+{
+}
+
+static void
+gdk_toplevel_default_set_transient_for (GdkToplevel *toplevel,
+                                        GdkSurface  *parent)
+{
+}
+
+static void
+gdk_toplevel_default_set_icon_list (GdkToplevel *toplevel,
+                                    GList       *surfaces)
+{
+}
+
 static void
 gdk_toplevel_default_init (GdkToplevelInterface *iface)
 {
   iface->present = gdk_toplevel_default_present;
   iface->get_state = gdk_toplevel_default_get_state;
+  iface->set_title = gdk_toplevel_default_set_title;
+  iface->set_startup_id = gdk_toplevel_default_set_startup_id;
+  iface->set_transient_for = gdk_toplevel_default_set_transient_for;
+  iface->set_icon_list = gdk_toplevel_default_set_icon_list;
 }
 
 /**
@@ -86,6 +114,7 @@ gdk_toplevel_present (GdkToplevel       *toplevel,
   return GDK_TOPLEVEL_GET_IFACE (toplevel)->present (toplevel, width, height, layout);
 }
 
+
 GdkSurfaceState
 gdk_toplevel_get_state (GdkToplevel *toplevel)
 {
@@ -94,3 +123,84 @@ gdk_toplevel_get_state (GdkToplevel *toplevel)
   return GDK_TOPLEVEL_GET_IFACE (toplevel)->get_state (toplevel);
 }
 
+/**
+ * gdk_toplevel_set_title:
+ * @toplevel: a #GdkToplevel
+ * @title: title of @surface
+ *
+ * Sets the title of a toplevel surface, to be displayed in the titlebar,
+ * in lists of windows, etc.
+ */
+void
+gdk_toplevel_set_title (GdkToplevel *toplevel,
+                        const char  *title)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+ 
+  GDK_TOPLEVEL_GET_IFACE (toplevel)->set_title (toplevel, title); 
+}
+
+/**
+ * gdk_toplevel_set_startup_id:
+ * @toplevel: a #GdkToplevel
+ * @startup_id: a string with startup-notification identifier
+ *
+ * When using GTK, typically you should use gtk_window_set_startup_id()
+ * instead of this low-level function.
+ */
+void
+gdk_toplevel_set_startup_id (GdkToplevel *toplevel,
+                             const char  *startup_id)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+
+  GDK_TOPLEVEL_GET_IFACE (toplevel)->set_startup_id (toplevel, startup_id); 
+}
+
+/**
+ * gdk_toplevel_set_transient_for:
+ * @toplevel: a #GdkToplevel
+ * @parent: another toplevel #GdkSurface
+ *
+ * Indicates to the window manager that @surface is a transient dialog
+ * associated with the application surface @parent. This allows the
+ * window manager to do things like center @surface on @parent and
+ * keep @surface above @parent.
+ *
+ * See gtk_window_set_transient_for() if you’re using #GtkWindow or
+ * #GtkDialog.
+ */
+void
+gdk_toplevel_set_transient_for (GdkToplevel *toplevel,
+                                GdkSurface  *parent)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+
+  GDK_TOPLEVEL_GET_IFACE (toplevel)->set_transient_for (toplevel, parent); 
+}
+
+
+/**
+ * gdk_toplevel_set_icon_list:
+ * @toplevel: a #GdkToplevel
+ * @surfaces: (transfer none) (element-type GdkTexture):
+ *     A list of textures to use as icon, of different sizes
+ *
+ * Sets a list of icons for the surface.
+ *
+ * One of these will be used to represent the surface in iconic form.
+ * The icon may be shown in window lists or task bars. Which icon
+ * size is shown depends on the window manager. The window manager
+ * can scale the icon but setting several size icons can give better
+ * image quality.
+ *
+ * Note that some platforms don't support surface icons.
+ */
+void
+gdk_toplevel_set_icon_list (GdkToplevel *toplevel,
+                            GList       *surfaces)
+{
+  g_return_if_fail (GDK_IS_TOPLEVEL (toplevel));
+
+  GDK_TOPLEVEL_GET_IFACE (toplevel)->set_icon_list (toplevel, surfaces); 
+}
diff --git a/gdk/gdktoplevel.h b/gdk/gdktoplevel.h
index 6a10c4af22..9439f539f2 100644
--- a/gdk/gdktoplevel.h
+++ b/gdk/gdktoplevel.h
@@ -43,6 +43,23 @@ gboolean        gdk_toplevel_present            (GdkToplevel       *toplevel,
 GDK_AVAILABLE_IN_ALL
 GdkSurfaceState gdk_toplevel_get_state          (GdkToplevel       *toplevel);
 
+GDK_AVAILABLE_IN_ALL
+void            gdk_toplevel_set_title          (GdkToplevel       *toplevel,
+                                                 const char        *title);
+
+GDK_AVAILABLE_IN_ALL
+void            gdk_toplevel_set_startup_id     (GdkToplevel       *toplevel,
+                                                 const char        *startup_id);
+
+GDK_AVAILABLE_IN_ALL
+void            gdk_toplevel_set_transient_for  (GdkToplevel       *toplevel,
+                                                 GdkSurface        *parent);
+
+GDK_AVAILABLE_IN_ALL
+void            gdk_toplevel_set_icon_list      (GdkToplevel       *toplevel,
+                                                 GList             *surfaces);
+
+
 G_END_DECLS
 
 #endif /* __GDK_TOPLEVEL_H__ */
diff --git a/gdk/gdktoplevelprivate.h b/gdk/gdktoplevelprivate.h
index d5d06d787d..abebb3ce96 100644
--- a/gdk/gdktoplevelprivate.h
+++ b/gdk/gdktoplevelprivate.h
@@ -16,6 +16,18 @@ struct _GdkToplevelInterface
                                          GdkToplevelLayout *layout);
 
   GdkSurfaceState (* get_state)         (GdkToplevel       *toplevel);
+
+  void            (* set_title)         (GdkToplevel       *toplevel,
+                                         const char        *title);
+
+  void            (* set_startup_id)    (GdkToplevel       *toplevel,
+                                         const char        *startup_id);
+
+  void            (* set_transient_for) (GdkToplevel       *toplevel,
+                                         GdkSurface        *surface);
+
+  void            (* set_icon_list)     (GdkToplevel       *toplevel,
+                                         GList             *surfaces);
 };
 
 G_END_DECLS


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