Exemplo n.º 1
0
void
glide_undo_manager_end_actor_action (GlideUndoManager *manager,
				     GlideActor *a)
{
  GlideUndoInfo *info;
  GlideUndoActorData *data;
  JsonNode *new_node;
  
  if (manager->priv->recorded_actor != (ClutterActor *)a)
    {
      g_warning ("Error, mismatched undo manager start/end actor actions.");
      return;
    }
  
  new_node = glide_actor_serialize (a);

  info = g_malloc (sizeof (GlideUndoInfo));
  data = g_malloc (sizeof (GlideUndoActorData));
  
  info->undo_callback = glide_undo_actor_action_undo_callback;
  info->redo_callback = glide_undo_actor_action_redo_callback;
  info->free_callback = glide_undo_actor_info_free_callback;
  info->label = manager->priv->recorded_label;
  info->user_data = data;

  
  data->actor = (ClutterActor *)g_object_ref (G_OBJECT (a));
  data->old_state = manager->priv->recorded_state;
  data->new_state = json_node_get_object (new_node);
  
  glide_undo_manager_append_info (manager, info);
}
Exemplo n.º 2
0
static void
glide_window_set_copy_buffer (GlideWindow *w, GlideActor *copy)
{
  w->priv->keep_buffer = TRUE;

  if (w->priv->copy_buffer)
    json_node_free (w->priv->copy_buffer);
  w->priv->copy_buffer = glide_actor_serialize (copy);
}
Exemplo n.º 3
0
void
glide_undo_manager_start_actor_action (GlideUndoManager *manager,
				       GlideActor *a,
				       const gchar *label)
{
  JsonNode *anode;
  manager->priv->recorded_actor = (ClutterActor *)a;
  
  anode = glide_actor_serialize (a);
  manager->priv->recorded_state = json_node_get_object (anode);
  
  manager->priv->recorded_label = g_strdup (label);
}
Exemplo n.º 4
0
static void
glide_document_json_obj_set_slides (GlideDocument *document, JsonObject *obj)
{
  JsonNode *node = json_node_new (JSON_NODE_ARRAY);
  JsonArray *array = json_array_new ();
  GList *s;
  
  for (s = document->priv->slides; s; s = s->next)
    {
      JsonNode *n;
      GlideSlide *slide = (GlideSlide *)(s->data);
      
      n = glide_actor_serialize (GLIDE_ACTOR (slide));
      json_array_add_element (array, n);
    }
  json_node_take_array (node, array);

  json_object_set_member (obj, "slides", node);
  
}