Пример #1
0
static void 
analog_clock_destroy(Analog_Clock *analog_clock)
{
      /* We are an animated object -- special case ! */
    dynobj_list_remove_object(&analog_clock->element.object);
    element_destroy(&analog_clock->element);
}
Пример #2
0
/*!
 * \brief Remove an object from a layer.
 * @param layer The layer to remove the object from.
 * @param obj The object to remove.
 * \memberof _Layer
 */
void
layer_remove_object(Layer *layer, DiaObject *obj)
{
  /* send a signal that we'll remove a object from the diagram */
  data_emit (layer_get_parent_diagram(layer), layer, obj, "object_remove");

  layer->objects = g_list_remove(layer->objects, obj);
  dynobj_list_remove_object(obj);
  set_parent_layer(obj, NULL);
}
Пример #3
0
/*!
 * \brief Swaps a list of objects with a single object
 *
 * This function exchanges the given object with the list of objects.
 * Ownership of remove_obj and insert_list objects is swapped, too.
 *
 * \memberof _Layer
 */
void
layer_replace_object_with_list(Layer *layer, DiaObject *remove_obj,
			       GList *insert_list)
{
  GList *list, *il;

  list = g_list_find(layer->objects, remove_obj);

  g_assert(list!=NULL);
  dynobj_list_remove_object(remove_obj);
  data_emit (layer_get_parent_diagram(layer), layer, remove_obj, "object_remove");
  set_parent_layer(remove_obj, NULL);
  g_list_foreach(insert_list, set_parent_layer, layer);

  if (list->prev == NULL) {
    layer->objects = insert_list;
  } else {
    list->prev->next = insert_list;
    insert_list->prev = list->prev;
  }
  if (list->next != NULL) {
    GList *last;
    last = g_list_last(insert_list);
    last->next = list->next;
    list->next->prev = last;
  }
  il = insert_list;
  while (il) {
    data_emit (layer_get_parent_diagram(layer), layer, il->data, "object_add");
    il = g_list_next(il);
  }
  g_list_free_1(list);

  /* with transformed groups the list and the single object are not necessarily
   * of the same size */
  layer_update_extents (layer);
}
Пример #4
0
static void
layer_remove_dynobj(gpointer obj, gpointer userdata)
{
  dynobj_list_remove_object((DiaObject*)obj);
}