[gtk+/wip/attach-params] 92a79e78 gdkattachparams: GObjectify
- From: William Hua <williamhua src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/attach-params] 92a79e78 gdkattachparams: GObjectify
- Date: Sat, 30 Jan 2016 06:35:07 +0000 (UTC)
commit 0a5a8ec3d498e7419cea5d57f1c87b1278bf3aec
Author: William Hua <william hua canonical com>
Date: Sat Jan 30 01:20:04 2016 -0500
92a79e78 gdkattachparams: GObjectify
docs/reference/gdk/gdk3-sections.txt | 1 -
gdk/gdkattachparams.c | 115 +++++++++++++++++-----------------
gdk/gdkattachparams.h | 72 +++++++++++----------
gdk/gdkattachparamsprivate.h | 7 ++-
4 files changed, 99 insertions(+), 96 deletions(-)
---
diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt
index 2001c98..c9fc713 100644
--- a/docs/reference/gdk/gdk3-sections.txt
+++ b/docs/reference/gdk/gdk3-sections.txt
@@ -556,7 +556,6 @@ gdk_fullscreen_mode_get_type
<FILE>gdkattachparams</FILE>
GdkAttachParams
gdk_attach_params_new
-gdk_attach_params_free
gdk_attach_params_set_attach_rect
gdk_attach_params_set_anchors
gdk_attach_params_get_anchors
diff --git a/gdk/gdkattachparams.c b/gdk/gdkattachparams.c
index 719bdc2..ff5affa 100644
--- a/gdk/gdkattachparams.c
+++ b/gdk/gdkattachparams.c
@@ -74,53 +74,52 @@
* Since: 3.20
*/
+G_DEFINE_TYPE (GdkAttachParams, gdk_attach_params, G_TYPE_INITIALLY_UNOWNED)
+
+static void
+gdk_attach_params_dispose (GObject *object)
+{
+ GdkAttachParams *self = GDK_ATTACH_PARAMS (object);
+
+ if (self->attach_destroy_notify)
+ g_clear_pointer (&self->attach_user_data, self->attach_destroy_notify);
+
+ g_clear_object (&self->attach_parent);
+
+ G_OBJECT_CLASS (gdk_attach_params_parent_class)->dispose (object);
+}
+
+static void
+gdk_attach_params_class_init (GdkAttachParamsClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->dispose = gdk_attach_params_dispose;
+}
+
+static void
+gdk_attach_params_init (GdkAttachParams *self)
+{
+ self->attach_anchor = GDK_WINDOW_EDGE_CENTER;
+ self->window_anchor = GDK_WINDOW_EDGE_CENTER;
+ self->flip_x = TRUE;
+ self->flip_y = TRUE;
+}
+
/**
* gdk_attach_params_new:
*
* Creates a new #GdkAttachParams for describing the position of a window
* relative to an attachment rectangle.
*
- * Returns: (transfer full): a new #GdkAttachParams, to be freed with
- * gdk_attach_params_free()
+ * Returns: (transfer floating): a new #GdkAttachParams
*
* Since: 3.20
*/
GdkAttachParams *
gdk_attach_params_new (void)
{
- GdkAttachParams *params = g_new0 (GdkAttachParams, 1);
-
- params->attach_anchor = GDK_WINDOW_EDGE_CENTER;
- params->window_anchor = GDK_WINDOW_EDGE_CENTER;
- params->flip_x = TRUE;
- params->flip_y = TRUE;
-
- return params;
-}
-
-/**
- * gdk_attach_params_free:
- * @data: the #GdkAttachParams to free
- *
- * Releases @data.
- *
- * Since: 3.20
- */
-void
-gdk_attach_params_free (gpointer data)
-{
- GdkAttachParams *params;
-
- g_return_if_fail (data);
-
- params = data;
-
- if (params->attach_user_data && params->attach_destroy_notify)
- params->attach_destroy_notify (params->attach_user_data);
-
- g_clear_object (¶ms->attach_parent);
-
- g_free (params);
+ return g_object_new (GDK_TYPE_ATTACH_PARAMS, NULL);
}
/**
@@ -191,9 +190,9 @@ gdk_attach_params_set_anchors (GdkAttachParams *params,
* Since: 3.20
*/
void
-gdk_attach_params_get_anchors (const GdkAttachParams *params,
- GdkWindowEdge *attach_anchor,
- GdkWindowEdge *window_anchor)
+gdk_attach_params_get_anchors (GdkAttachParams *params,
+ GdkWindowEdge *attach_anchor,
+ GdkWindowEdge *window_anchor)
{
g_return_if_fail (params);
@@ -547,16 +546,16 @@ clamp_with_feedback (gint val,
* Since: 3.20
*/
static void
-gdk_attach_params_choose_position (const GdkAttachParams *params,
- gint width,
- gint height,
- const GdkRectangle *bounds,
- gint *x,
- gint *y,
- gint *offset_x,
- gint *offset_y,
- gboolean *flipped_x,
- gboolean *flipped_y)
+gdk_attach_params_choose_position (GdkAttachParams *params,
+ gint width,
+ gint height,
+ const GdkRectangle *bounds,
+ gint *x,
+ gint *y,
+ gint *offset_x,
+ gint *offset_y,
+ gboolean *flipped_x,
+ gboolean *flipped_y)
{
gint tmp_x;
gint tmp_y;
@@ -773,14 +772,14 @@ gdk_attach_params_choose_position (const GdkAttachParams *params,
* Since: 3.20
*/
static void
-gdk_attach_params_choose_position_for_window (const GdkAttachParams *params,
- GdkWindow *window,
- gint *x,
- gint *y,
- gint *offset_x,
- gint *offset_y,
- gboolean *flipped_x,
- gboolean *flipped_y)
+gdk_attach_params_choose_position_for_window (GdkAttachParams *params,
+ GdkWindow *window,
+ gint *x,
+ gint *y,
+ gint *offset_x,
+ gint *offset_y,
+ gboolean *flipped_x,
+ gboolean *flipped_y)
{
GdkScreen *screen;
gint origin_x;
@@ -828,8 +827,8 @@ gdk_attach_params_choose_position_for_window (const GdkAttachParams *params,
* Since: 3.20
*/
void
-gdk_attach_params_default_move_window (const GdkAttachParams *params,
- GdkWindow *window)
+gdk_attach_params_default_move_window (GdkAttachParams *params,
+ GdkWindow *window)
{
gint x;
gint y;
diff --git a/gdk/gdkattachparams.h b/gdk/gdkattachparams.h
index 9aeaab1..132be2f 100644
--- a/gdk/gdkattachparams.h
+++ b/gdk/gdkattachparams.h
@@ -31,6 +31,8 @@
G_BEGIN_DECLS
+#define GDK_TYPE_ATTACH_PARAMS (gdk_attach_params_get_type ())
+
/**
* GdkAttachParams:
*
@@ -39,7 +41,7 @@ G_BEGIN_DECLS
*
* Since: 3.20
*/
-typedef struct _GdkAttachParams GdkAttachParams;
+G_DECLARE_FINAL_TYPE (GdkAttachParams, gdk_attach_params, GDK, ATTACH_PARAMS, GInitiallyUnowned)
/**
* GdkAttachCallback:
@@ -63,60 +65,60 @@ typedef struct _GdkAttachParams GdkAttachParams;
*
* Since: 3.20
*/
-typedef void (*GdkAttachCallback) (GdkWindow *window,
- const GdkAttachParams *params,
- gint x,
- gint y,
- gint offset_x,
- gint offset_y,
- gboolean flipped_x,
- gboolean flipped_y,
- gpointer user_data);
+typedef void (*GdkAttachCallback) (GdkWindow *window,
+ GdkAttachParams *params,
+ gint x,
+ gint y,
+ gint offset_x,
+ gint offset_y,
+ gboolean flipped_x,
+ gboolean flipped_y,
+ gpointer user_data);
GDK_AVAILABLE_IN_3_20
-GdkAttachParams * gdk_attach_params_new (void);
+GType gdk_attach_params_get_type (void);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_free (gpointer data);
+GdkAttachParams * gdk_attach_params_new (void);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_attach_rect (GdkAttachParams *params,
- const GdkRectangle *rectangle,
- GdkWindow *parent);
+void gdk_attach_params_set_attach_rect (GdkAttachParams *params,
+ const GdkRectangle *rectangle,
+ GdkWindow *parent);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_anchors (GdkAttachParams *params,
- GdkWindowEdge attach_anchor,
- GdkWindowEdge window_anchor);
+void gdk_attach_params_set_anchors (GdkAttachParams *params,
+ GdkWindowEdge attach_anchor,
+ GdkWindowEdge window_anchor);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_get_anchors (const GdkAttachParams *params,
- GdkWindowEdge *attach_anchor,
- GdkWindowEdge *window_anchor);
+void gdk_attach_params_get_anchors (GdkAttachParams *params,
+ GdkWindowEdge *attach_anchor,
+ GdkWindowEdge *window_anchor);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_flip_flags (GdkAttachParams *params,
- gboolean flip_x,
- gboolean flip_y);
+void gdk_attach_params_set_flip_flags (GdkAttachParams *params,
+ gboolean flip_x,
+ gboolean flip_y);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_attach_margin (GdkAttachParams *params,
- const GdkBorder *margin);
+void gdk_attach_params_set_attach_margin (GdkAttachParams *params,
+ const GdkBorder *margin);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_window_padding (GdkAttachParams *params,
- const GdkBorder *padding);
+void gdk_attach_params_set_window_padding (GdkAttachParams *params,
+ const GdkBorder *padding);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_window_offset (GdkAttachParams *params,
- gint x,
- gint y);
+void gdk_attach_params_set_window_offset (GdkAttachParams *params,
+ gint x,
+ gint y);
GDK_AVAILABLE_IN_3_20
-void gdk_attach_params_set_position_callback (GdkAttachParams *params,
- GdkAttachCallback callback,
- gpointer user_data,
- GDestroyNotify destroy_notify);
+void gdk_attach_params_set_position_callback (GdkAttachParams *params,
+ GdkAttachCallback callback,
+ gpointer user_data,
+ GDestroyNotify destroy_notify);
G_END_DECLS
diff --git a/gdk/gdkattachparamsprivate.h b/gdk/gdkattachparamsprivate.h
index 764f046..5fc9c1b 100644
--- a/gdk/gdkattachparamsprivate.h
+++ b/gdk/gdkattachparamsprivate.h
@@ -28,6 +28,7 @@ G_BEGIN_DECLS
/**
* GdkAttachParams:
+ * @parent_instance: parent instance
* @has_attach_rect: %TRUE if @attach_rect is valid
* @attach_rect: the attachment rectangle to attach the window to
* @attach_parent: the #GdkWindow that @attach_rect is relative to
@@ -51,6 +52,8 @@ G_BEGIN_DECLS
struct _GdkAttachParams
{
/*< private >*/
+ GInitiallyUnowned parent_instance;
+
gboolean has_attach_rect;
GdkRectangle attach_rect;
GdkWindow *attach_parent;
@@ -70,8 +73,8 @@ struct _GdkAttachParams
GDestroyNotify attach_destroy_notify;
};
-void gdk_attach_params_default_move_window (const GdkAttachParams *params,
- GdkWindow *window);
+void gdk_attach_params_default_move_window (GdkAttachParams *params,
+ GdkWindow *window);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]