mirror of
https://github.com/brl/mutter.git
synced 2025-04-15 22:59:40 +00:00
zoom-action: Use macros for subclassing boilerplate
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3387>
This commit is contained in:
parent
09b7cd9f4a
commit
5fb78dfbad
@ -67,7 +67,6 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterText, g_object_unref)
|
|||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTimeline, g_object_unref)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTimeline, g_object_unref)
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTransitionGroup, g_object_unref)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTransitionGroup, g_object_unref)
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTransition, g_object_unref)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterTransition, g_object_unref)
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterZoomAction, g_object_unref)
|
|
||||||
|
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterActorBox, clutter_actor_box_free)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterActorBox, clutter_actor_box_free)
|
||||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterColor, clutter_color_free)
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClutterColor, clutter_color_free)
|
||||||
|
@ -69,7 +69,7 @@ typedef struct
|
|||||||
gfloat transformed_update_y;
|
gfloat transformed_update_y;
|
||||||
} ZoomPoint;
|
} ZoomPoint;
|
||||||
|
|
||||||
struct _ClutterZoomActionPrivate
|
typedef struct _ClutterZoomActionPrivate
|
||||||
{
|
{
|
||||||
ClutterStage *stage;
|
ClutterStage *stage;
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ struct _ClutterZoomActionPrivate
|
|||||||
gdouble initial_scale_y;
|
gdouble initial_scale_y;
|
||||||
|
|
||||||
gdouble zoom_initial_distance;
|
gdouble zoom_initial_distance;
|
||||||
};
|
} ClutterZoomActionPrivate;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -142,7 +142,8 @@ static gboolean
|
|||||||
clutter_zoom_action_gesture_begin (ClutterGestureAction *action,
|
clutter_zoom_action_gesture_begin (ClutterGestureAction *action,
|
||||||
ClutterActor *actor)
|
ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterZoomActionPrivate *priv = ((ClutterZoomAction *) action)->priv;
|
ClutterZoomActionPrivate *priv =
|
||||||
|
clutter_zoom_action_get_instance_private (CLUTTER_ZOOM_ACTION (action));
|
||||||
gfloat dx, dy;
|
gfloat dx, dy;
|
||||||
|
|
||||||
capture_point_initial_position (action, actor, 0, &priv->points[0]);
|
capture_point_initial_position (action, actor, 0, &priv->points[0]);
|
||||||
@ -179,7 +180,8 @@ static gboolean
|
|||||||
clutter_zoom_action_gesture_progress (ClutterGestureAction *action,
|
clutter_zoom_action_gesture_progress (ClutterGestureAction *action,
|
||||||
ClutterActor *actor)
|
ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterZoomActionPrivate *priv = ((ClutterZoomAction *) action)->priv;
|
ClutterZoomActionPrivate *priv =
|
||||||
|
clutter_zoom_action_get_instance_private (CLUTTER_ZOOM_ACTION (action));
|
||||||
gdouble distance, new_scale;
|
gdouble distance, new_scale;
|
||||||
gfloat dx, dy;
|
gfloat dx, dy;
|
||||||
gboolean retval;
|
gboolean retval;
|
||||||
@ -210,7 +212,8 @@ static void
|
|||||||
clutter_zoom_action_gesture_cancel (ClutterGestureAction *action,
|
clutter_zoom_action_gesture_cancel (ClutterGestureAction *action,
|
||||||
ClutterActor *actor)
|
ClutterActor *actor)
|
||||||
{
|
{
|
||||||
ClutterZoomActionPrivate *priv = ((ClutterZoomAction *) action)->priv;
|
ClutterZoomActionPrivate *priv =
|
||||||
|
clutter_zoom_action_get_instance_private (CLUTTER_ZOOM_ACTION (action));
|
||||||
|
|
||||||
clutter_actor_set_translation (actor,
|
clutter_actor_set_translation (actor,
|
||||||
priv->initial_x,
|
priv->initial_x,
|
||||||
@ -275,12 +278,8 @@ clutter_zoom_action_class_init (ClutterZoomActionClass *klass)
|
|||||||
static void
|
static void
|
||||||
clutter_zoom_action_init (ClutterZoomAction *self)
|
clutter_zoom_action_init (ClutterZoomAction *self)
|
||||||
{
|
{
|
||||||
ClutterGestureAction *gesture;
|
clutter_gesture_action_set_n_touch_points (CLUTTER_GESTURE_ACTION (self),
|
||||||
|
2);
|
||||||
self->priv = clutter_zoom_action_get_instance_private (self);
|
|
||||||
|
|
||||||
gesture = CLUTTER_GESTURE_ACTION (self);
|
|
||||||
clutter_gesture_action_set_n_touch_points (gesture, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -307,10 +306,14 @@ void
|
|||||||
clutter_zoom_action_get_focal_point (ClutterZoomAction *action,
|
clutter_zoom_action_get_focal_point (ClutterZoomAction *action,
|
||||||
graphene_point_t *point)
|
graphene_point_t *point)
|
||||||
{
|
{
|
||||||
|
ClutterZoomActionPrivate *priv;
|
||||||
|
|
||||||
g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
|
g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
|
||||||
g_return_if_fail (point != NULL);
|
g_return_if_fail (point != NULL);
|
||||||
|
|
||||||
*point = action->priv->focal_point;
|
priv = clutter_zoom_action_get_instance_private (action);
|
||||||
|
|
||||||
|
*point = priv->focal_point;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -325,8 +328,12 @@ void
|
|||||||
clutter_zoom_action_get_transformed_focal_point (ClutterZoomAction *action,
|
clutter_zoom_action_get_transformed_focal_point (ClutterZoomAction *action,
|
||||||
graphene_point_t *point)
|
graphene_point_t *point)
|
||||||
{
|
{
|
||||||
|
ClutterZoomActionPrivate *priv;
|
||||||
|
|
||||||
g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
|
g_return_if_fail (CLUTTER_IS_ZOOM_ACTION (action));
|
||||||
g_return_if_fail (point != NULL);
|
g_return_if_fail (point != NULL);
|
||||||
|
|
||||||
*point = action->priv->transformed_focal_point;
|
priv = clutter_zoom_action_get_instance_private (action);
|
||||||
|
|
||||||
|
*point = priv->transformed_focal_point;
|
||||||
}
|
}
|
||||||
|
@ -35,23 +35,13 @@
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define CLUTTER_TYPE_ZOOM_ACTION (clutter_zoom_action_get_type ())
|
#define CLUTTER_TYPE_ZOOM_ACTION (clutter_zoom_action_get_type ())
|
||||||
#define CLUTTER_ZOOM_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ZOOM_ACTION, ClutterZoomAction))
|
|
||||||
#define CLUTTER_IS_ZOOM_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ZOOM_ACTION))
|
|
||||||
#define CLUTTER_ZOOM_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ZOOM_ACTION, ClutterZoomActionClass))
|
|
||||||
#define CLUTTER_IS_ZOOM_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ZOOM_ACTION))
|
|
||||||
#define CLUTTER_ZOOM_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ZOOM_ACTION, ClutterZoomActionClass))
|
|
||||||
|
|
||||||
typedef struct _ClutterZoomAction ClutterZoomAction;
|
CLUTTER_EXPORT
|
||||||
typedef struct _ClutterZoomActionPrivate ClutterZoomActionPrivate;
|
G_DECLARE_DERIVABLE_TYPE (ClutterZoomAction,
|
||||||
typedef struct _ClutterZoomActionClass ClutterZoomActionClass;
|
clutter_zoom_action,
|
||||||
|
CLUTTER,
|
||||||
struct _ClutterZoomAction
|
ZOOM_ACTION,
|
||||||
{
|
ClutterGestureAction)
|
||||||
/*< private >*/
|
|
||||||
ClutterGestureAction parent_instance;
|
|
||||||
|
|
||||||
ClutterZoomActionPrivate *priv;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClutterZoomActionClass:
|
* ClutterZoomActionClass:
|
||||||
@ -66,9 +56,6 @@ struct _ClutterZoomActionClass
|
|||||||
ClutterGestureActionClass parent_class;
|
ClutterGestureActionClass parent_class;
|
||||||
};
|
};
|
||||||
|
|
||||||
CLUTTER_EXPORT
|
|
||||||
GType clutter_zoom_action_get_type (void) G_GNUC_CONST;
|
|
||||||
|
|
||||||
CLUTTER_EXPORT
|
CLUTTER_EXPORT
|
||||||
ClutterAction * clutter_zoom_action_new (void);
|
ClutterAction * clutter_zoom_action_new (void);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user