示例#1
0
文件: diagram.c 项目: brunetton/dia
void
diagram_add_object_list(Diagram *dia, GList *list)
{
  layer_add_objects(dia->data->active_layer, list);

  diagram_modified(dia);
}
示例#2
0
文件: undo.c 项目: krattai/monoflow
static void
insert_objects_apply(struct InsertObjectsChange *change, Diagram *dia)
{
  DEBUG_PRINTF(("insert_objects_apply()\n"));
  change->applied = 1;
  layer_add_objects(change->layer, g_list_copy(change->obj_list));
  object_add_updates_list(change->obj_list, dia);
  diagram_tree_add_objects(diagram_tree(), dia, change->obj_list);
}
示例#3
0
文件: diagram.c 项目: brunetton/dia
void
diagram_place_over_selected(Diagram *dia)
{
  GList *sorted_list;
  GList *orig_list;

  if (g_list_length (dia->data->selected) == 0)
    return;

  orig_list = g_list_copy(dia->data->active_layer->objects);
  
  sorted_list = diagram_get_sorted_selected_remove(dia);
  object_add_updates_list(sorted_list, dia);
  layer_add_objects(dia->data->active_layer, sorted_list);
  
  undo_reorder_objects(dia, g_list_copy(sorted_list), orig_list);

  diagram_modified(dia);
  diagram_flush(dia);
  undo_set_transactionpoint(dia->undo);
}
示例#4
0
文件: undo.c 项目: krattai/monoflow
/*!
 * BEWARE: we need to notify the DiagramTree somehow - maybe 
 * better make it listen to object-add signal?
 */
static void 
move_object_layer_relative(Diagram *dia, GList *objects, gint dist)
{
  /* from the active layer to above or below */
  Layer *active, *target;
  guint pos;
 
  g_return_if_fail(dia->data->active_layer);

  active =  dia->data->active_layer;
  for (pos = 0; pos < dia->data->layers->len; ++pos)
    if (active == g_ptr_array_index(dia->data->layers, pos))
      break;

  pos = (pos + dia->data->layers->len + dist) % dia->data->layers->len;
  target = g_ptr_array_index(dia->data->layers, pos);
  object_add_updates_list(objects, dia);
  layer_remove_objects(active, objects);
  diagram_tree_add_objects(diagram_tree(), dia, objects);
  layer_add_objects(target, g_list_copy(objects));
  data_set_active_layer(dia->data, target);
  diagram_tree_add_objects(diagram_tree(), dia, objects);
}