static gboolean key_release_cb (ClutterActor *stage, ClutterEvent *event, ClutterActor *box) { ClutterGridLayout *layout; gboolean toggle; guint spacing; layout = CLUTTER_GRID_LAYOUT (clutter_actor_get_layout_manager (box)); switch (clutter_event_get_key_symbol (event)) { case CLUTTER_KEY_c: toggle = clutter_grid_layout_get_column_homogeneous (layout); clutter_grid_layout_set_column_homogeneous (layout, !toggle); break; case CLUTTER_KEY_r: toggle = clutter_grid_layout_get_row_homogeneous (layout); clutter_grid_layout_set_row_homogeneous (layout, !toggle); break; case CLUTTER_KEY_s: spacing = clutter_grid_layout_get_column_spacing (layout); if (spacing < 12) spacing += 1; else spacing = 0; clutter_grid_layout_set_column_spacing (layout, spacing); clutter_grid_layout_set_row_spacing (layout, spacing); break; case CLUTTER_KEY_q: clutter_main_quit (); break; default: return FALSE; } return TRUE; }
void xfdashboard_viewpad_set_spacing(XfdashboardViewpad *self, gfloat inSpacing) { XfdashboardViewpadPrivate *priv; g_return_if_fail(XFDASHBOARD_IS_VIEWPAD(self)); g_return_if_fail(inSpacing>=0.0f); priv=self->priv; /* Only set value if it changes */ if(inSpacing==priv->spacing) return; /* Set new value */ priv->spacing=inSpacing; if(priv->layout) { clutter_grid_layout_set_column_spacing(CLUTTER_GRID_LAYOUT(priv->layout), priv->spacing); clutter_grid_layout_set_row_spacing(CLUTTER_GRID_LAYOUT(priv->layout), priv->spacing); } clutter_actor_queue_relayout(CLUTTER_ACTOR(self)); /* Notify about property change */ g_object_notify_by_pspec(G_OBJECT(self), XfdashboardViewpadProperties[PROP_SPACING]); }