[gtk/present-toplevel-2: 24/70] toplevel: add state property
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/present-toplevel-2: 24/70] toplevel: add state property
- Date: Wed, 4 Mar 2020 00:07:29 +0000 (UTC)
commit 8f7ff8dc3fae8bf741c656350ba9331255614908
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Feb 29 20:31:31 2020 -0500
toplevel: add state property
gdk/gdktoplevel.c | 39 +++++++++++++++++++++++++++++++++++++++
gdk/gdktoplevel.h | 3 +++
gdk/gdktoplevelprivate.h | 8 ++++++++
3 files changed, 50 insertions(+)
---
diff --git a/gdk/gdktoplevel.c b/gdk/gdktoplevel.c
index c4155e860f..d284994028 100644
--- a/gdk/gdktoplevel.c
+++ b/gdk/gdktoplevel.c
@@ -19,6 +19,8 @@
#include "config.h"
+#include "gdkintl.h"
+#include "gdk-private.h"
#include "gdktoplevelprivate.h"
/**
@@ -48,6 +50,22 @@ static void
gdk_toplevel_default_init (GdkToplevelInterface *iface)
{
iface->present = gdk_toplevel_default_present;
+
+ g_object_interface_install_property (iface,
+ g_param_spec_flags ("state",
+ P_("State"),
+ P_("State"),
+ GDK_TYPE_SURFACE_STATE, GDK_SURFACE_STATE_WITHDRAWN,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+}
+
+guint
+gdk_toplevel_install_properties (GObjectClass *object_class,
+ guint first_prop)
+{
+ g_object_class_override_property (object_class, first_prop + GDK_TOPLEVEL_PROP_STATE, "state");
+
+ return GDK_TOPLEVEL_NUM_PROPERTIES;
}
/**
@@ -78,3 +96,24 @@ gdk_toplevel_present (GdkToplevel *toplevel,
return GDK_TOPLEVEL_GET_IFACE (toplevel)->present (toplevel, width, height, layout);
}
+
+/**
+ * gdk_toplevel_get_state:
+ * @toplevel: a #GdkToplevel
+ *
+ * Gets the bitwise OR of the currently active surface state flags,
+ * from the #GdkSurfaceState enumeration.
+ *
+ * Returns: surface state bitfield
+ */
+GdkSurfaceState
+gdk_toplevel_get_state (GdkToplevel *toplevel)
+{
+ GdkSurfaceState state;
+
+ g_return_val_if_fail (GDK_IS_TOPLEVEL (toplevel), 0);
+
+ g_object_get (toplevel, "state", &state, NULL);
+
+ return state;
+}
diff --git a/gdk/gdktoplevel.h b/gdk/gdktoplevel.h
index eeb01582aa..6a10c4af22 100644
--- a/gdk/gdktoplevel.h
+++ b/gdk/gdktoplevel.h
@@ -40,6 +40,9 @@ gboolean gdk_toplevel_present (GdkToplevel *toplevel,
int height,
GdkToplevelLayout *layout);
+GDK_AVAILABLE_IN_ALL
+GdkSurfaceState gdk_toplevel_get_state (GdkToplevel *toplevel);
+
G_END_DECLS
#endif /* __GDK_TOPLEVEL_H__ */
diff --git a/gdk/gdktoplevelprivate.h b/gdk/gdktoplevelprivate.h
index bfa81c4282..fbf751e3fa 100644
--- a/gdk/gdktoplevelprivate.h
+++ b/gdk/gdktoplevelprivate.h
@@ -16,6 +16,14 @@ struct _GdkToplevelInterface
GdkToplevelLayout *layout);
};
+typedef enum {
+ GDK_TOPLEVEL_PROP_STATE,
+ GDK_TOPLEVEL_NUM_PROPERTIES
+} GdkToplevelProperties;
+
+guint gdk_toplevel_install_properties (GObjectClass *object_class,
+ guint first_prop);
+
G_END_DECLS
#endif /* __GDK_TOPLEVEL_PRIVATE_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]