[gtk/present-toplevel: 32/54] toplevel: Move more toplevel api over
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/present-toplevel: 32/54] toplevel: Move more toplevel api over
- Date: Sun, 1 Mar 2020 19:36:23 +0000 (UTC)
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]