[dia] layers: move to own header, move methods into dia namespace
- From: Zander <zbrown src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] layers: move to own header, move methods into dia namespace
- Date: Sat, 21 Sep 2019 11:09:13 +0000 (UTC)
commit fd4b143211e233595a1e80c252d448f7915c62a0
Author: Zander Brown <zbrown gnome org>
Date: Thu Sep 19 10:46:55 2019 +0100
layers: move to own header, move methods into dia namespace
app/app_procs.c | 1 +
app/create_object.c | 5 +-
app/diagram.c | 50 +++---
app/diagram_tree_model.c | 71 ++++----
app/diagram_tree_view.c | 11 +-
app/display.c | 1 +
app/dynamic_refresh.c | 32 ++--
app/highlight.c | 5 +-
app/layer_dialog.c | 55 ++++---
app/load_save.c | 17 +-
app/modify_tool.c | 5 +-
app/select.c | 25 +--
app/undo.c | 263 ++++++++++++++---------------
lib/dia-layer.h | 107 ++++++++++++
lib/diagramdata.c | 53 +++---
lib/diagramdata.h | 65 --------
lib/diarenderer.c | 1 +
lib/focus.c | 5 +-
lib/layer.c | 191 ++++++++++-----------
lib/meson.build | 1 +
lib/object.c | 9 +-
plug-ins/drs/dia-render-script-import.c | 11 +-
plug-ins/drs/dia-render-script.c | 1 +
plug-ins/dxf/dxf-export.c | 3 +-
plug-ins/dxf/dxf-import.c | 85 +++++-----
plug-ins/pixbuf/pixbuf.c | 13 +-
plug-ins/python/pydia-diagramdata.c | 31 ++--
plug-ins/python/pydia-layer.c | 284 +++++++++++++++++---------------
plug-ins/svg/render_svg.c | 1 +
plug-ins/svg/svg-import.c | 53 +++---
plug-ins/vdx/vdx-export.c | 13 +-
plug-ins/vdx/vdx-import.c | 10 +-
plug-ins/vdx/vdx-xml.c | 1 +
plug-ins/wpg/wpg-import.c | 7 +-
plug-ins/xfig/xfig-export.c | 5 +-
plug-ins/xfig/xfig-import.c | 13 +-
36 files changed, 808 insertions(+), 696 deletions(-)
---
diff --git a/app/app_procs.c b/app/app_procs.c
index 54ab4742..776cef77 100644
--- a/app/app_procs.c
+++ b/app/app_procs.c
@@ -63,6 +63,7 @@
#include "dialib.h"
#include "diaerror.h"
#include "widgets.h"
+#include "dia-layer.h"
static gboolean handle_initial_diagram (const char *input_file_name,
const char *export_file_name,
diff --git a/app/create_object.c b/app/create_object.c
index 8003b129..3efc2236 100644
--- a/app/create_object.c
+++ b/app/create_object.c
@@ -32,6 +32,7 @@
#include "intl.h"
#include "menus.h"
#include "widgets.h"
+#include "dia-layer.h"
static void create_object_button_press(CreateObjectTool *tool, GdkEventButton *event,
DDisplay *ddisp);
@@ -149,8 +150,8 @@ create_object_button_release(CreateObjectTool *tool, GdkEventButton *event,
}
parent_candidates =
- layer_find_objects_containing_rectangle(obj->parent_layer,
- &obj->bounding_box);
+ dia_layer_find_objects_containing_rectangle (obj->parent_layer,
+ &obj->bounding_box);
/* whole object must be within another object to parent it */
for (; parent_candidates != NULL; parent_candidates = g_list_next(parent_candidates)) {
diff --git a/app/diagram.c b/app/diagram.c
index 1bb43935..dd0ff09c 100644
--- a/app/diagram.c
+++ b/app/diagram.c
@@ -44,6 +44,7 @@
#include "lib/diamarshal.h"
#include "parent.h"
#include "diacontext.h"
+#include "dia-layer.h"
static GList *open_diagrams = NULL;
@@ -673,7 +674,7 @@ diagram_remove_ddisplay(Diagram *dia, DDisplay *ddisp)
void
diagram_add_object (Diagram *dia, DiaObject *obj)
{
- layer_add_object (dia->data->active_layer, obj);
+ dia_layer_add_object (dia->data->active_layer, obj);
diagram_modified (dia);
}
@@ -681,7 +682,7 @@ diagram_add_object (Diagram *dia, DiaObject *obj)
void
diagram_add_object_list (Diagram *dia, GList *list)
{
- layer_add_objects (dia->data->active_layer, list);
+ dia_layer_add_objects (dia->data->active_layer, list);
diagram_modified (dia);
}
@@ -936,19 +937,24 @@ diagram_flush(Diagram *dia)
}
DiaObject *
-diagram_find_clicked_object(Diagram *dia, Point *pos,
- real maxdist)
+diagram_find_clicked_object (Diagram *dia,
+ Point *pos,
+ real maxdist)
{
- return layer_find_closest_object_except(dia->data->active_layer,
- pos, maxdist, NULL);
+ return dia_layer_find_closest_object_except (dia->data->active_layer,
+ pos, maxdist, NULL);
}
DiaObject *
-diagram_find_clicked_object_except(Diagram *dia, Point *pos,
- real maxdist, GList *avoid)
+diagram_find_clicked_object_except (Diagram *dia,
+ Point *pos,
+ real maxdist,
+ GList *avoid)
{
- return layer_find_closest_object_except(dia->data->active_layer, pos,
- maxdist, avoid);
+ return dia_layer_find_closest_object_except (dia->data->active_layer,
+ pos,
+ maxdist,
+ avoid);
}
/*
@@ -1003,11 +1009,13 @@ diagram_find_closest_connectionpoint(Diagram *dia,
ConnectionPoint *this_cp;
real this_dist;
if (layer->connectable) {
- this_dist = layer_find_closest_connectionpoint(layer,
- &this_cp, pos, notthis);
+ this_dist = dia_layer_find_closest_connectionpoint (layer,
+ &this_cp,
+ pos,
+ notthis);
if (this_dist < dist) {
- dist = this_dist;
- *closest = this_cp;
+ dist = this_dist;
+ *closest = this_cp;
}
}
}
@@ -1284,7 +1292,7 @@ void diagram_ungroup_selected(Diagram *dia)
group_list = group_objects(group);
- group_index = layer_object_get_index(dia->data->active_layer, group);
+ group_index = dia_layer_object_get_index (dia->data->active_layer, group);
change = undo_ungroup_objects(dia, group_list, group, group_index);
(change->apply)(change, dia);
@@ -1333,7 +1341,7 @@ diagram_place_under_selected(Diagram *dia)
sorted_list = diagram_get_sorted_selected_remove(dia);
object_add_updates_list(sorted_list, dia);
- layer_add_objects_first(dia->data->active_layer, sorted_list);
+ dia_layer_add_objects_first (dia->data->active_layer, sorted_list);
undo_reorder_objects(dia, g_list_copy(sorted_list), orig_list);
@@ -1353,9 +1361,9 @@ diagram_place_over_selected(Diagram *dia)
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);
+ sorted_list = diagram_get_sorted_selected_remove (dia);
+ object_add_updates_list (sorted_list, dia);
+ dia_layer_add_objects (dia->data->active_layer, sorted_list);
undo_reorder_objects(dia, g_list_copy(sorted_list), orig_list);
@@ -1398,7 +1406,7 @@ diagram_place_up_selected(Diagram *dia)
}
}
- layer_set_object_list(dia->data->active_layer, new_list);
+ dia_layer_set_object_list (dia->data->active_layer, new_list);
undo_reorder_objects(dia, g_list_copy(sorted_list), orig_list);
@@ -1444,7 +1452,7 @@ diagram_place_down_selected(Diagram *dia)
}
}
- layer_set_object_list(dia->data->active_layer, new_list);
+ dia_layer_set_object_list (dia->data->active_layer, new_list);
undo_reorder_objects(dia, g_list_copy(sorted_list), orig_list);
diff --git a/app/diagram_tree_model.c b/app/diagram_tree_model.c
index 2b5078ef..7009af9e 100644
--- a/app/diagram_tree_model.c
+++ b/app/diagram_tree_model.c
@@ -6,7 +6,7 @@
*
* complete rewrite to get rid of deprecated widgets
* Copyright (C) 2009 Hans Breuer
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -28,7 +28,7 @@
#include "diagram.h"
#include "object.h"
#include "dia-application.h"
-
+#include "dia-layer.h"
#include "diagram_tree_model.h"
/* accessing iter fileds by name by */
@@ -60,7 +60,7 @@ static void
_dtm_class_init (DiagramTreeModelClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
+
gobject_class->finalize = _dtm_finalize;
}
@@ -87,7 +87,7 @@ _dtm_get_column_type (GtkTreeModel *tree_model,
gint index)
{
g_return_val_if_fail (index >= DIAGRAM_COLUMN || index < NUM_COLUMNS, G_TYPE_NONE);
-
+
switch (index) {
case DIAGRAM_COLUMN :
return DIA_TYPE_DIAGRAM;
@@ -111,12 +111,12 @@ _dtm_get_iter (GtkTreeModel *tree_model,
GtkTreeIter parent;
gint *indices;
gint depth, i;
-
+
indices = gtk_tree_path_get_indices (path);
depth = gtk_tree_path_get_depth (path);
g_return_val_if_fail (depth > 0, FALSE);
-
+
if (!gtk_tree_model_iter_nth_child (tree_model, iter, NULL, indices[0]))
return FALSE;
@@ -148,14 +148,14 @@ _dtm_get_path (GtkTreeModel *tree_model,
gtk_tree_path_append_index (result, g_list_index (list, NODE_DIAGRAM(iter)));
}
if (NODE_LAYER(iter)) {
- g_return_val_if_fail (NODE_DIAGRAM(iter) == layer_get_parent_diagram (NODE_LAYER(iter)), NULL);
+ g_return_val_if_fail (NODE_DIAGRAM(iter) == dia_layer_get_parent_diagram (NODE_LAYER(iter)), NULL);
index = data_layer_get_index (NODE_DIAGRAM(iter), NODE_LAYER(iter));
if (index >= 0)
gtk_tree_path_append_index (result, index);
}
if (index >= 0 && NODE_OBJECT(iter)) {
g_return_val_if_fail (NODE_LAYER(iter) == dia_object_get_parent_layer (NODE_OBJECT(iter)), NULL);
- index = layer_object_get_index (NODE_LAYER(iter), NODE_OBJECT(iter));
+ index = dia_layer_object_get_index (NODE_LAYER(iter), NODE_OBJECT(iter));
if (index >= 0)
gtk_tree_path_append_index (result, index);
}
@@ -180,7 +180,7 @@ _dtm_iter_n_children (GtkTreeModel *tree_model,
} else if (NODE_LAYER(iter)) {
if (!NODE_LAYER(iter))
return 0;
- return layer_object_count (NODE_LAYER(iter));
+ return dia_layer_object_count (NODE_LAYER(iter));
} else if (NODE_DIAGRAM(iter)) {
if (!NODE_DIAGRAM(iter))
return 0;
@@ -214,7 +214,7 @@ _dtm_get_value (GtkTreeModel *tree_model,
if (NODE_OBJECT(iter))
g_value_set_string (value, object_get_displayname (NODE_OBJECT (iter)));
else if (NODE_LAYER(iter))
- g_value_set_string (value, layer_get_name (NODE_LAYER (iter)));
+ g_value_set_string (value, dia_layer_get_name (NODE_LAYER (iter)));
else if (NODE_DIAGRAM(iter))
g_value_set_string (value, diagram_get_name (DIA_DIAGRAM(NODE_DIAGRAM(iter))));
else /* warn on it? */
@@ -232,16 +232,16 @@ _dtm_iter_next (GtkTreeModel *tree_model,
if (NODE_OBJECT(iter)) {
if (!NODE_LAYER(iter))
return FALSE;
- i = layer_object_get_index (NODE_LAYER(iter), NODE_OBJECT(iter));
+ i = dia_layer_object_get_index (NODE_LAYER(iter), NODE_OBJECT(iter));
++i;
- NODE_OBJECT(iter) = layer_object_get_nth(NODE_LAYER(iter), i);
+ NODE_OBJECT(iter) = dia_layer_object_get_nth (NODE_LAYER (iter), i);
return NODE_OBJECT(iter) != NULL;
} else if (NODE_LAYER(iter)) {
if (!NODE_DIAGRAM(iter))
return FALSE;
i = data_layer_get_index (NODE_DIAGRAM(iter), NODE_LAYER(iter));
++i;
- NODE_LAYER(iter) = data_layer_get_nth(NODE_DIAGRAM(iter), i);
+ NODE_LAYER(iter) = data_layer_get_nth (NODE_DIAGRAM(iter), i);
return NODE_LAYER(iter) != NULL;
} else if (NODE_DIAGRAM(iter)) {
GList *list = dia_open_diagrams();
@@ -258,27 +258,28 @@ _dtm_iter_next (GtkTreeModel *tree_model,
}
return FALSE;
}
+
static gboolean
_dtm_iter_children (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreeIter *parent)
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
{
if (parent) {
if (NODE_OBJECT(parent))
return FALSE;
else if (NODE_LAYER(parent)) {
- NODE_OBJECT(iter) = layer_object_get_nth(NODE_LAYER(parent), 0);
+ NODE_OBJECT(iter) = dia_layer_object_get_nth (NODE_LAYER(parent), 0);
if (NODE_OBJECT(iter)) {
NODE_LAYER(iter) = dia_object_get_parent_layer(NODE_OBJECT(iter));
- NODE_DIAGRAM(iter) = layer_get_parent_diagram (NODE_LAYER(iter));
- return TRUE;
+ NODE_DIAGRAM(iter) = dia_layer_get_parent_diagram (NODE_LAYER(iter));
+ return TRUE;
}
} else if (NODE_DIAGRAM(parent)) {
NODE_LAYER(iter) = data_layer_get_nth(NODE_DIAGRAM(parent), 0);
if (NODE_LAYER(iter)) {
- NODE_DIAGRAM(iter) = layer_get_parent_diagram (NODE_LAYER(iter));
- NODE_OBJECT(iter) = NULL;
- return TRUE;
+ NODE_DIAGRAM(iter) = dia_layer_get_parent_diagram (NODE_LAYER(iter));
+ NODE_OBJECT(iter) = NULL;
+ return TRUE;
}
} else {
/* deliver root's children */
@@ -312,7 +313,7 @@ _dtm_iter_nth_child (GtkTreeModel *tree_model,
if (NODE_OBJECT(parent)) {
return FALSE;
} else if (NODE_LAYER(parent)) {
- NODE_OBJECT(iter) = layer_object_get_nth(NODE_LAYER(iter), n);
+ NODE_OBJECT(iter) = dia_layer_object_get_nth (NODE_LAYER(iter), n);
return NODE_OBJECT(iter) != NULL;
} else if (NODE_DIAGRAM(parent)) {
NODE_LAYER(iter) = data_layer_get_nth(NODE_DIAGRAM(iter), n);
@@ -392,8 +393,8 @@ _recurse_row_inserted (GtkTreeModel *model, GtkTreeIter *parent)
GtkTreePath *path = _dtm_get_path (model, &iter);
gtk_tree_model_row_inserted (model, path, &iter);
/* gtk_tree_model_row_has_child_toggled
- * ... emitted when a row has gotten the first child row ...
- * So no need to do it here. Or maybe not for the sorted model?
+ * ... emitted when a row has gotten the first child row ...
+ * So no need to do it here. Or maybe not for the sorted model?
*/
if (_recurse_row_inserted (model, &iter))
gtk_tree_model_row_has_child_toggled (model, path, &iter);
@@ -414,7 +415,7 @@ _object_add (DiagramData *dia,
GtkTreeIter _iter;
GtkTreeIter *iter = &_iter;
/* a bit backward: the first child is in the diagram, but not the tree yet */
- gboolean had_child = layer_object_count (layer) > 1;
+ gboolean had_child = dia_layer_object_count (layer) > 1;
g_return_if_fail (DIA_DIAGRAM(dia) != NULL);
@@ -442,10 +443,10 @@ _object_remove(DiagramData *dia,
GtkTreePath *path;
GtkTreeIter _iter;
GtkTreeIter *iter = &_iter;
- gboolean last_child = layer_object_count (layer) == 0;
+ gboolean last_child = dia_layer_object_count (layer) == 0;
g_return_if_fail (DIA_DIAGRAM(dia) != NULL);
-
+
NODE_DIAGRAM(iter) = dia;
NODE_LAYER(iter) = layer;
NODE_OBJECT(iter) = obj;
@@ -502,7 +503,7 @@ _diagram_change (DiaApplication *app,
GtkTreePath *path;
GtkTreeIter _iter = {0,};
GtkTreeIter *iter = &_iter;
-
+
NODE_DIAGRAM(iter) = DIA_DIAGRAM_DATA(dia);
if (flags & DIAGRAM_CHANGE_NAME)
@@ -526,7 +527,7 @@ _diagram_remove (DiaApplication *app,
GtkTreePath *path;
GtkTreeIter _iter = {0,};
GtkTreeIter *iter = &_iter;
-
+
NODE_DIAGRAM(iter) = DIA_DIAGRAM_DATA(dia);
NODE_LAYER(iter) = NULL;
NODE_OBJECT(iter) = NULL;
@@ -569,11 +570,11 @@ _dtm_finalize (GObject *object)
g_signal_handlers_disconnect_by_func (G_OBJECT (dia_application_get ()), _diagram_add, dtm);
g_signal_handlers_disconnect_by_func (G_OBJECT (dia_application_get ()), _diagram_change, dtm);
g_signal_handlers_disconnect_by_func (G_OBJECT (dia_application_get ()), _diagram_remove, dtm);
-
+
G_OBJECT_CLASS(_dtm_parent_class)->finalize (object);
}
-/* SORTABLE
+/* SORTABLE
* Wrapper around the original model to allow sorting by various columns IDs
*/
static gint
@@ -603,8 +604,8 @@ cmp_layer (GtkTreeIter *a,
gint ret;
if (pa == pb)
return 0;
- na = layer_get_name (pa);
- nb = layer_get_name (pb);
+ na = dia_layer_get_name (pa);
+ nb = dia_layer_get_name (pb);
if (!na || !nb)
return (na > nb) ? -1 : 1;
ret = strcmp (na, nb);
@@ -662,10 +663,10 @@ static GtkTreeModel *
wrap_as_sortable_model (GtkTreeModel *model)
{
GtkTreeModel *sort_model = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (model));
-
+
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sort_model), NAME_COLUMN, name_sort_func, model, NULL);
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sort_model), OBJECT_COLUMN, type_sort_func, model,
NULL);
-
+
return sort_model;
}
diff --git a/app/diagram_tree_view.c b/app/diagram_tree_view.c
index c49598af..86be9afb 100644
--- a/app/diagram_tree_view.c
+++ b/app/diagram_tree_view.c
@@ -41,6 +41,7 @@
#include "persistence.h"
#include "intl.h"
#include "widgets.h"
+#include "dia-layer.h"
typedef struct _DiagramTreeView DiagramTreeView;
struct _DiagramTreeView {
@@ -168,7 +169,7 @@ _dtv_query_tooltip (GtkWidget *widget,
}
if (layer) {
- gchar *name = layer_get_name (layer);
+ gchar *name = dia_layer_get_name (layer);
gchar *em = g_markup_printf_escaped ("<b>%s</b>: %s\n", _("Layer"), name);
g_string_append (markup, em);
g_free (em);
@@ -188,9 +189,11 @@ _dtv_query_tooltip (GtkWidget *widget,
g_list_length (object->children), _("Children"));
/* and some dia_object_get_meta ? */
} else if (layer) {
- int objects = layer_object_count (layer);
- g_string_append_printf (markup, g_dngettext (GETTEXT_PACKAGE, "%d Object", "%d Objects",
- objects), objects);
+ int objects = dia_layer_object_count (layer);
+ g_string_append_printf (markup,
+ g_dngettext (GETTEXT_PACKAGE, "%d Object", "%d Objects",
+ objects),
+ objects);
}
if (markup->len > 0) {
diff --git a/app/display.c b/app/display.c
index cfc1c782..e08e2c20 100644
--- a/app/display.c
+++ b/app/display.c
@@ -46,6 +46,7 @@
#include "diatransform.h"
#include "recent_files.h"
#include "filedlg.h"
+#include "dia-layer.h"
static GdkCursor *current_cursor = NULL;
diff --git a/app/dynamic_refresh.c b/app/dynamic_refresh.c
index d38fce1c..35ca9b8d 100644
--- a/app/dynamic_refresh.c
+++ b/app/dynamic_refresh.c
@@ -24,6 +24,8 @@
#include "diagramdata.h"
#include "object_ops.h"
#include "app/connectionpoint_ops.h"
+#include "dia-layer.h"
+
#include <glib.h>
static guint timeout = 0;
@@ -41,11 +43,11 @@ static void foreach_dynobj(DiaObject* obj, gpointer data) {
dia = (Diagram*)list->data;
list = g_list_next(list);
-
+
layer = dia_object_get_parent_layer(obj);
if (!layer) continue;
- obj_ddata = layer_get_parent_diagram(layer);
+ obj_ddata = dia_layer_get_parent_diagram (layer);
if (!obj_ddata) continue;
if (dia->data == obj_ddata) {
@@ -68,19 +70,19 @@ static gboolean timer_handler(gpointer data) {
while (list != NULL) {
Diagram* dia = (Diagram*)list->data;
list = g_list_next(list);
-
+
diagram_flush(dia);
}
-
+
dynobj_refresh_kick();
return TRUE;
}
-static gboolean
-idle_handler (gpointer data)
+static gboolean
+idle_handler (gpointer data)
{
guint new_timeout;
-
+
new_timeout = dynobj_list_get_dynobj_rate();
if (timeout != new_timeout) {
if (timer_id) {
@@ -97,24 +99,24 @@ idle_handler (gpointer data)
return FALSE;
}
-void
-dynobj_refresh_kick(void)
+void
+dynobj_refresh_kick(void)
{
if (!idle_id)
idle_id = g_idle_add_full (G_PRIORITY_LOW, idle_handler, NULL, NULL);
}
-void
-dynobj_refresh_init(void)
+void
+dynobj_refresh_init(void)
{
/* NOP */
}
-void
-dynobj_refresh_finish (void)
+void
+dynobj_refresh_finish (void)
{
- if (timer_id)
+ if (timer_id)
g_source_remove (timer_id);
- if (idle_id)
+ if (idle_id)
g_source_remove(idle_id);
}
diff --git a/app/highlight.c b/app/highlight.c
index 61d56b11..2eea7f64 100644
--- a/app/highlight.c
+++ b/app/highlight.c
@@ -25,6 +25,7 @@
#include "object.h"
#include "object_ops.h"
#include "group.h"
+#include "dia-layer.h"
/* One could argue that the actual setting of the object's field
* should happen inside lib rather than app. I think that'd be overkill.
@@ -35,7 +36,7 @@
* Highlighting sets the bbox to ... some more.
* Problem: The bbox is the same for all views, but highlighting size should
* depend on the zoom level. The renderer obviously can figure out to make
- * it a few more pixels or something, but we need the bbox to also be
+ * it a few more pixels or something, but we need the bbox to also be
* enlarged by a bit. I guess the object_add_updates call must handle that,
* as it knows about the conversion.
*/
@@ -55,7 +56,7 @@ highlight_object_off(DiaObject *obj, Diagram *dia)
data_highlight_remove(dia->data, obj);
}
-/** Resets all highlighting in this layer. Helper function for
+/** Resets all highlighting in this layer. Helper function for
* highlight_reset_all
*/
static void
diff --git a/app/layer_dialog.c b/app/layer_dialog.c
index d957186a..fdbc7d8b 100644
--- a/app/layer_dialog.c
+++ b/app/layer_dialog.c
@@ -36,6 +36,7 @@
#include "persistence.h"
#include "widgets.h"
#include "interface.h"
+#include "dia-layer.h"
#include "dia-application.h" /* dia_diagram_change */
@@ -507,30 +508,30 @@ layer_dialog_new_callback(GtkWidget *widget, gpointer gdata)
dia = layer_dialog->diagram;
if (dia != NULL) {
- gchar* new_layer_name = g_strdup_printf(_("New layer %d"),
- next_layer_num++);
- layer = new_layer(new_layer_name, dia->data);
+ gchar* new_layer_name = g_strdup_printf (_("New layer %d"),
+ next_layer_num++);
+ layer = dia_layer_new (new_layer_name, dia->data);
- assert(GTK_LIST(layer_dialog->layer_list)->selection != NULL);
- selected = GTK_LIST(layer_dialog->layer_list)->selection->data;
- pos = gtk_list_child_position(GTK_LIST(layer_dialog->layer_list), selected);
+ assert (GTK_LIST (layer_dialog->layer_list)->selection != NULL);
+ selected = GTK_LIST (layer_dialog->layer_list)->selection->data;
+ pos = gtk_list_child_position (GTK_LIST (layer_dialog->layer_list), selected);
- data_add_layer_at(dia->data, layer, dia->data->layers->len - pos);
+ data_add_layer_at (dia->data, layer, dia->data->layers->len - pos);
- diagram_add_update_all(dia);
- diagram_flush(dia);
+ diagram_add_update_all (dia);
+ diagram_flush (dia);
- layer_widget = dia_layer_widget_new(dia, layer);
- gtk_widget_show(layer_widget);
+ layer_widget = dia_layer_widget_new (dia, layer);
+ gtk_widget_show (layer_widget);
- list = g_list_prepend(list, layer_widget);
+ list = g_list_prepend (list, layer_widget);
- gtk_list_insert_items(GTK_LIST(layer_dialog->layer_list), list, pos);
+ gtk_list_insert_items (GTK_LIST (layer_dialog->layer_list), list, pos);
- gtk_list_select_item(GTK_LIST(layer_dialog->layer_list), pos);
+ gtk_list_select_item (GTK_LIST (layer_dialog->layer_list), pos);
- undo_layer(dia, layer, TYPE_ADD_LAYER, dia->data->layers->len - pos);
- undo_set_transactionpoint(dia->undo);
+ undo_layer (dia, layer, TYPE_ADD_LAYER, dia->data->layers->len - pos);
+ undo_set_transactionpoint (dia->undo);
}
}
@@ -1127,23 +1128,23 @@ static void
edit_layer_add_ok_callback (GtkWidget *w, gpointer client_data)
{
EditLayerDialog *dialog = (EditLayerDialog *) client_data;
- Diagram *dia = ddisplay_active_diagram();
+ Diagram *dia = ddisplay_active_diagram ();
Layer *layer;
int pos = data_layer_get_index (dia->data, dia->data->active_layer) + 1;
- layer = new_layer(g_strdup (gtk_entry_get_text (GTK_ENTRY (dialog->name_entry))), dia->data);
- data_add_layer_at(dia->data, layer, pos);
- data_set_active_layer(dia->data, layer);
+ layer = dia_layer_new (g_strdup (gtk_entry_get_text (GTK_ENTRY (dialog->name_entry))), dia->data);
+ data_add_layer_at (dia->data, layer, pos);
+ data_set_active_layer (dia->data, layer);
- diagram_add_update_all(dia);
- diagram_flush(dia);
+ diagram_add_update_all (dia);
+ diagram_flush (dia);
- undo_layer(dia, layer, TYPE_ADD_LAYER, pos);
- undo_set_transactionpoint(dia->undo);
+ undo_layer (dia, layer, TYPE_ADD_LAYER, pos);
+ undo_set_transactionpoint (dia->undo);
/* ugly way of updating the layer widget */
if (layer_dialog && layer_dialog->diagram == dia) {
- layer_dialog_set_diagram(dia);
+ layer_dialog_set_diagram (dia);
}
gtk_widget_destroy (dialog->dialog);
@@ -1349,12 +1350,12 @@ layer_change_free(struct LayerChange *change)
switch (change->type) {
case TYPE_DELETE_LAYER:
if (change->applied) {
- layer_destroy(change->layer);
+ dia_layer_destroy (change->layer);
}
break;
case TYPE_ADD_LAYER:
if (!change->applied) {
- layer_destroy(change->layer);
+ dia_layer_destroy (change->layer);
}
break;
case TYPE_RAISE_LAYER:
diff --git a/app/load_save.c b/app/load_save.c
index 38a5630c..f2817581 100644
--- a/app/load_save.c
+++ b/app/load_save.c
@@ -54,6 +54,7 @@
#include "diapagelayout.h"
#include "autosave.h"
#include "display.h"
+#include "dia-layer.h"
#ifdef G_OS_WIN32
#include <io.h>
@@ -439,9 +440,9 @@ diagram_data_load(const gchar *filename, DiagramData *data, DiaContext *ctx, voi
}
/* Destroy the default layer: */
- if (layer_object_count(data->active_layer) == 0) {
- g_ptr_array_remove(data->layers, data->active_layer);
- layer_destroy(data->active_layer);
+ if (dia_layer_object_count (data->active_layer) == 0) {
+ g_ptr_array_remove (data->layers, data->active_layer);
+ dia_layer_destroy (data->active_layer);
}
diagramdata =
@@ -649,16 +650,16 @@ diagram_data_load(const gchar *filename, DiagramData *data, DiaContext *ctx, voi
name = (char *)xmlGetProp(layer_node, (const xmlChar *)"name");
if (!name) break; /* name is mandatory */
- layer = new_layer(g_strdup(name), data);
- if (name) xmlFree(name);
+ layer = dia_layer_new (g_strdup (name), data);
+ if (name) xmlFree (name);
layer->visible = _get_bool_prop (layer_node, "visible", FALSE);
layer->connectable = _get_bool_prop (layer_node, "connectable", FALSE);
/* Read in all objects: */
- list = read_objects(layer_node, objects_hash, ctx, NULL, unknown_objects_hash);
- layer_add_objects (layer, list);
+ list = read_objects (layer_node, objects_hash, ctx, NULL, unknown_objects_hash);
+ dia_layer_add_objects (layer, list);
- data_add_layer(data, layer);
+ data_add_layer (data, layer);
++num_layers_added;
active = _get_bool_prop (layer_node, "active", FALSE);
diff --git a/app/modify_tool.c b/app/modify_tool.c
index 2256d37a..1b09f470 100644
--- a/app/modify_tool.c
+++ b/app/modify_tool.c
@@ -36,6 +36,7 @@
#include "textline.h"
#include "menus.h"
#include "diainteractiverenderer.h"
+#include "dia-layer.h"
#include "parent.h"
#include "prop_text.h"
@@ -677,10 +678,10 @@ find_selected_objects(DDisplay *ddisp, ModifyTool *tool)
if (prefs.reverse_rubberbanding_intersects &&
tool->start_box.x > tool->end_box.x) {
return
- layer_find_objects_intersecting_rectangle(ddisp->diagram->data->active_layer, &r);
+ dia_layer_find_objects_intersecting_rectangle (ddisp->diagram->data->active_layer, &r);
} else {
return
- layer_find_objects_in_rectangle(ddisp->diagram->data->active_layer, &r);
+ dia_layer_find_objects_in_rectangle (ddisp->diagram->data->active_layer, &r);
}
}
diff --git a/app/select.c b/app/select.c
index 738562ec..fd79e14a 100644
--- a/app/select.c
+++ b/app/select.c
@@ -27,6 +27,7 @@
#include "object_ops.h"
#include "textedit.h"
#include "object.h"
+#include "dia-layer.h"
SelectionStyle selection_style = SELECT_REPLACE;
@@ -44,11 +45,11 @@ select_all_callback(GtkAction *action)
while (objects != NULL) {
DiaObject *obj = (DiaObject *)objects->data;
-
+
if (!diagram_is_selected(dia, obj)) {
diagram_select(dia, obj);
}
-
+
objects = g_list_next(objects);
}
@@ -87,7 +88,7 @@ select_invert_callback(GtkAction *action)
for (; tmp != NULL; tmp = g_list_next(tmp)) {
DiaObject *obj = (DiaObject *)tmp->data;
-
+
if (!diagram_is_selected(dia, obj)) {
diagram_select(dia, obj);
} else {
@@ -98,7 +99,7 @@ select_invert_callback(GtkAction *action)
ddisplay_do_update_menu_sensitivity(ddisp);
object_add_updates_list(dia->data->selected, dia);
diagram_flush(dia);
-
+
}
/** Select objects that are directly connected to the currently selected
@@ -122,12 +123,12 @@ select_connected_callback(GtkAction *action)
for (i = 0; i < obj->num_handles; i++) {
Handle *handle = obj->handles[i];
-
+
if (handle->connected_to != NULL
&& dia_object_is_selectable(handle->connected_to->object)
&& !diagram_is_selected(dia, handle->connected_to->object)) {
diagram_select(dia, handle->connected_to->object);
- }
+ }
}
}
@@ -142,11 +143,11 @@ select_connected_callback(GtkAction *action)
for (; conns != NULL; conns = g_list_next(conns)) {
DiaObject *obj2 = (DiaObject *)conns->data;
- if (dia_object_is_selectable(obj2)
+ if (dia_object_is_selectable(obj2)
&& !diagram_is_selected(dia, obj2)) {
diagram_select(dia, obj2);
}
- }
+ }
}
}
@@ -164,7 +165,7 @@ select_transitively(Diagram *dia, DiaObject *obj)
for (i = 0; i < obj->num_handles; i++) {
Handle *handle = obj->handles[i];
-
+
if (handle->connected_to != NULL &&
dia_object_is_selectable(handle->connected_to->object)) {
DiaObject *connected_object = handle->connected_to->object;
@@ -172,7 +173,7 @@ select_transitively(Diagram *dia, DiaObject *obj)
diagram_select(dia, connected_object);
newly_selected = g_list_prepend(newly_selected, connected_object);
}
- }
+ }
}
for (i = 0; i < dia_object_get_num_connections(obj); i++) {
@@ -188,7 +189,7 @@ select_transitively(Diagram *dia, DiaObject *obj)
}
}
}
-
+
while (newly_selected != NULL) {
select_transitively(dia, (DiaObject *)newly_selected->data);
newly_selected = g_list_next(newly_selected);
@@ -241,7 +242,7 @@ select_same_type_callback(GtkAction *action)
if (!diagram_is_selected(dia, obj)) {
for (tmp2 = objects; tmp2 != NULL; tmp2 = g_list_next(tmp2)) {
DiaObject *obj2 = (DiaObject *)tmp2->data;
-
+
if (obj->type == obj2->type) {
diagram_select(dia, obj);
break;
diff --git a/app/undo.c b/app/undo.c
index 55201f28..59d48111 100644
--- a/app/undo.c
+++ b/app/undo.c
@@ -27,6 +27,7 @@
#include "preferences.h"
#include "textedit.h"
#include "parent.h"
+#include "dia-layer.h"
#if 0
#define DEBUG_PRINTF(args) printf args
@@ -58,7 +59,7 @@ new_transactionpoint(void)
transaction->revert = transaction_point_pointer;
transaction->free = NULL;
}
-
+
return transaction;
}
@@ -67,7 +68,7 @@ new_undo_stack(Diagram *dia)
{
UndoStack *stack;
Change *transaction;
-
+
stack = g_new(UndoStack, 1);
if (stack!=NULL){
stack->dia = dia;
@@ -96,11 +97,11 @@ undo_remove_redo_info(UndoStack *stack)
Change *next_change;
DEBUG_PRINTF(("UNDO: Removing redo info\n"));
-
+
change = stack->current_change->next;
stack->current_change->next = NULL;
stack->last_change = stack->current_change;
-
+
while (change != NULL) {
next_change = change->next;
if (change->free)
@@ -118,7 +119,7 @@ undo_push_change(UndoStack *stack, Change *change)
undo_remove_redo_info(stack);
DEBUG_PRINTF(("UNDO: Push new change at %d\n", stack->depth));
-
+
change->prev = stack->last_change;
change->next = NULL;
stack->last_change->next = change;
@@ -154,7 +155,7 @@ undo_delete_lowest_transaction(UndoStack *stack)
g_free(change);
change = next_change;
} while (!is_transactionpoint(change));
-
+
if (is_transactionpoint(change)) {
stack->depth--;
DEBUG_PRINTF(("Decreasing stack depth to: %d\n", stack->depth));
@@ -191,7 +192,7 @@ undo_revert_to_last_tp(UndoStack *stack)
{
Change *change;
Change *prev_change;
-
+
if (stack->current_change->prev == NULL)
return; /* Can't revert first transactionpoint */
@@ -212,12 +213,12 @@ undo_apply_to_next_tp(UndoStack *stack)
{
Change *change;
Change *next_change;
-
+
change = stack->current_change;
if (change->next == NULL)
return /* Already at top. */;
-
+
do {
next_change = change->next;
(change->apply)(change, stack->dia);
@@ -239,13 +240,13 @@ undo_clear(UndoStack *stack)
Change *change;
DEBUG_PRINTF(("undo_clear()\n"));
-
+
change = stack->current_change;
-
+
while (change->prev != NULL) {
change = change->prev;
}
-
+
stack->current_change = change;
stack->depth = 0;
undo_remove_redo_info(stack);
@@ -256,13 +257,13 @@ undo_clear(UndoStack *stack)
* Currently just changes sensitivity, but should in the future also
* include changing the labels.
*/
-void
+void
undo_update_menus(UndoStack *stack)
{
ddisplay_do_update_menu_sensitivity(ddisplay_active());
}
-/** Marks the undo stack at the time of a save.
+/** Marks the undo stack at the time of a save.
*/
void
undo_mark_save(UndoStack *stack)
@@ -283,7 +284,7 @@ undo_is_saved(UndoStack *stack)
* If undo is true, returns TRUE if there's something to undo, otherwise
* returns TRUE if there's something to redo.
*/
-gboolean
+gboolean
undo_available(UndoStack *stack, gboolean undo)
{
if (undo) {
@@ -295,7 +296,7 @@ undo_available(UndoStack *stack, gboolean undo)
/** Remove items from the undo stack until we hit an undo item of a given
* type (indicated by its apply function). Beware that the items are not
- * just reverted, but totally removed. This also takes with it all the
+ * just reverted, but totally removed. This also takes with it all the
* changes above current_change.
*
* @param stack The undo stack to remove items from.
@@ -307,7 +308,7 @@ Change*
undo_remove_to(UndoStack *stack, UndoApplyFunc *type)
{
Change *current_change = stack->current_change;
- if (current_change == NULL)
+ if (current_change == NULL)
return NULL;
while (current_change && current_change->apply != *type) {
current_change = current_change->prev;
@@ -354,18 +355,18 @@ move_objects_apply(struct MoveObjectsChange *change, Diagram *dia)
i=0;
while (list != NULL) {
obj = (DiaObject *) list->data;
-
+
obj->ops->move(obj, &change->dest_pos[i]);
-
+
list = g_list_next(list); i++;
}
list = change->obj_list;
while (list!=NULL) {
obj = (DiaObject *) list->data;
-
+
diagram_update_connections_object(dia, obj, TRUE);
-
+
list = g_list_next(list);
}
@@ -385,18 +386,18 @@ move_objects_revert(struct MoveObjectsChange *change, Diagram *dia)
i=0;
while (list != NULL) {
obj = (DiaObject *) list->data;
-
+
obj->ops->move(obj, &change->orig_pos[i]);
-
+
list = g_list_next(list); i++;
}
list = change->obj_list;
while (list!=NULL) {
obj = (DiaObject *) list->data;
-
+
diagram_update_connections_object(dia, obj, TRUE);
-
+
list = g_list_next(list);
}
@@ -418,7 +419,7 @@ undo_move_objects(Diagram *dia, Point *orig_pos, Point *dest_pos,
struct MoveObjectsChange *change;
change = g_new0(struct MoveObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) move_objects_apply;
change->change.revert = (UndoRevertFunc) move_objects_revert;
change->change.free = (UndoFreeFunc) move_objects_free;
@@ -482,7 +483,7 @@ undo_move_handle(Diagram *dia,
struct MoveHandleChange *change;
change = g_new0(struct MoveHandleChange, 1);
-
+
change->change.apply = (UndoApplyFunc) move_handle_apply;
change->change.revert = (UndoRevertFunc) move_handle_revert;
change->change.free = (UndoFreeFunc) move_handle_free;
@@ -493,7 +494,7 @@ undo_move_handle(Diagram *dia,
change->obj = obj;
change->modifiers = modifiers;
-
+
DEBUG_PRINTF(("UNDO: Push new move handle at %d\n", depth(dia->undo)));
undo_push_change(dia->undo, (Change *) change);
@@ -515,13 +516,13 @@ static void
connect_apply(struct ConnectChange *change, Diagram *dia)
{
object_connect(change->obj, change->handle, change->connectionpoint);
-
+
object_add_updates(change->obj, dia);
change->obj->ops->move_handle(change->obj, change->handle ,
&change->connectionpoint->pos,
change->connectionpoint,
HANDLE_MOVE_CONNECTED, 0);
-
+
object_add_updates(change->obj, dia);
}
@@ -529,12 +530,12 @@ static void
connect_revert(struct ConnectChange *change, Diagram *dia)
{
object_unconnect(change->obj, change->handle);
-
+
object_add_updates(change->obj, dia);
change->obj->ops->move_handle(change->obj, change->handle ,
&change->handle_pos, NULL,
HANDLE_MOVE_CONNECTED, 0);
-
+
object_add_updates(change->obj, dia);
}
@@ -550,7 +551,7 @@ undo_connect(Diagram *dia, DiaObject *obj, Handle *handle,
struct ConnectChange *change;
change = g_new0(struct ConnectChange, 1);
-
+
change->change.apply = (UndoApplyFunc) connect_apply;
change->change.revert = (UndoRevertFunc) connect_revert;
change->change.free = (UndoFreeFunc) connect_free;
@@ -579,7 +580,7 @@ static void
unconnect_apply(struct UnconnectChange *change, Diagram *dia)
{
object_unconnect(change->obj, change->handle);
-
+
object_add_updates(change->obj, dia);
}
@@ -587,7 +588,7 @@ static void
unconnect_revert(struct UnconnectChange *change, Diagram *dia)
{
object_connect(change->obj, change->handle, change->connectionpoint);
-
+
object_add_updates(change->obj, dia);
}
@@ -602,7 +603,7 @@ undo_unconnect(Diagram *dia, DiaObject *obj, Handle *handle)
struct UnconnectChange *change;
change = g_new0(struct UnconnectChange, 1);
-
+
change->change.apply = (UndoApplyFunc) unconnect_apply;
change->change.revert = (UndoRevertFunc) unconnect_revert;
change->change.free = (UndoFreeFunc) unconnect_free;
@@ -632,13 +633,13 @@ static void
delete_objects_apply(struct DeleteObjectsChange *change, Diagram *dia)
{
GList *list;
-
+
DEBUG_PRINTF(("delete_objects_apply()\n"));
change->applied = 1;
- diagram_unselect_objects(dia, change->obj_list);
- layer_remove_objects(change->layer, change->obj_list);
- object_add_updates_list(change->obj_list, dia);
-
+ diagram_unselect_objects (dia, change->obj_list);
+ dia_layer_remove_objects (change->layer, change->obj_list);
+ object_add_updates_list (change->obj_list, dia);
+
list = change->obj_list;
while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
@@ -660,9 +661,9 @@ delete_objects_revert(struct DeleteObjectsChange *change, Diagram *dia)
GList *list;
DEBUG_PRINTF(("delete_objects_revert()\n"));
change->applied = 0;
- layer_set_object_list(change->layer,
- g_list_copy(change->original_objects));
- object_add_updates_list(change->obj_list, dia);
+ dia_layer_set_object_list (change->layer,
+ g_list_copy (change->original_objects));
+ object_add_updates_list (change->obj_list, dia);
list = change->obj_list;
while (list) {
@@ -702,7 +703,7 @@ undo_delete_objects(Diagram *dia, GList *obj_list)
struct DeleteObjectsChange *change;
change = g_new0(struct DeleteObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) delete_objects_apply;
change->change.revert = (UndoRevertFunc) delete_objects_revert;
change->change.free = (UndoFreeFunc) delete_objects_free;
@@ -732,7 +733,7 @@ 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));
+ dia_layer_add_objects (change->layer, g_list_copy (change->obj_list));
object_add_updates_list(change->obj_list, dia);
}
@@ -740,13 +741,13 @@ static void
insert_objects_revert(struct InsertObjectsChange *change, Diagram *dia)
{
GList *list;
-
+
DEBUG_PRINTF(("insert_objects_revert()\n"));
change->applied = 0;
- diagram_unselect_objects(dia, change->obj_list);
- layer_remove_objects(change->layer, change->obj_list);
- object_add_updates_list(change->obj_list, dia);
-
+ diagram_unselect_objects (dia, change->obj_list);
+ dia_layer_remove_objects (change->layer, change->obj_list);
+ object_add_updates_list (change->obj_list, dia);
+
list = change->obj_list;
while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
@@ -775,7 +776,7 @@ undo_insert_objects(Diagram *dia, GList *obj_list, int applied)
struct InsertObjectsChange *change;
change = g_new0(struct InsertObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) insert_objects_apply;
change->change.revert = (UndoRevertFunc) insert_objects_revert;
change->change.free = (UndoFreeFunc) insert_objects_free;
@@ -803,24 +804,24 @@ struct ReorderObjectsChange {
static void
reorder_objects_apply(struct ReorderObjectsChange *change, Diagram *dia)
{
- DEBUG_PRINTF(("reorder_objects_apply()\n"));
- layer_set_object_list(change->layer,
- g_list_copy(change->reordered_objects));
- object_add_updates_list(change->changed_list, dia);
+ DEBUG_PRINTF (("reorder_objects_apply()\n"));
+ dia_layer_set_object_list (change->layer,
+ g_list_copy (change->reordered_objects));
+ object_add_updates_list (change->changed_list, dia);
}
static void
-reorder_objects_revert(struct ReorderObjectsChange *change, Diagram *dia)
+reorder_objects_revert (struct ReorderObjectsChange *change, Diagram *dia)
{
- DEBUG_PRINTF(("reorder_objects_revert()\n"));
- layer_set_object_list(change->layer,
- g_list_copy(change->original_objects));
- object_add_updates_list(change->changed_list, dia);
+ DEBUG_PRINTF (("reorder_objects_revert()\n"));
+ dia_layer_set_object_list (change->layer,
+ g_list_copy(change->original_objects));
+ object_add_updates_list (change->changed_list, dia);
}
-static void
+static void
reorder_objects_free(struct ReorderObjectsChange *change)
-{
+{
DEBUG_PRINTF(("reorder_objects_free()\n"));
g_list_free(change->changed_list);
g_list_free(change->original_objects);
@@ -833,7 +834,7 @@ undo_reorder_objects(Diagram *dia, GList *changed_list, GList *orig_list)
struct ReorderObjectsChange *change;
change = g_new0(struct ReorderObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) reorder_objects_apply;
change->change.revert = (UndoRevertFunc) reorder_objects_revert;
change->change.free = (UndoFreeFunc) reorder_objects_free;
@@ -862,7 +863,7 @@ _connections_update_func (gpointer data, gpointer user_data)
{
DiaObject *obj = data;
Diagram *dia = (Diagram *)user_data;
-
+
diagram_update_connections_object(dia, obj, TRUE);
}
static void
@@ -903,7 +904,7 @@ object_change_revert(struct ObjectChangeChange *change,
Point p = change->obj->position;
(change->obj->ops->move)(change->obj,&p);
- object_add_updates(change->obj, dia);
+ object_add_updates(change->obj, dia);
diagram_update_connections_object(dia, change->obj, TRUE);
properties_update_if_shown(dia, change->obj);
} else {
@@ -928,7 +929,7 @@ undo_object_change(Diagram *dia, DiaObject *obj,
struct ObjectChangeChange *change;
change = g_new0(struct ObjectChangeChange, 1);
-
+
change->change.apply = (UndoApplyFunc) object_change_apply;
change->change.revert = (UndoRevertFunc) object_change_revert;
change->change.free = (UndoFreeFunc) object_change_free;
@@ -943,7 +944,7 @@ undo_object_change(Diagram *dia, DiaObject *obj,
/******** Group object list: */
-/** Grouping and ungrouping are two subtly different changes: While
+/** Grouping and ungrouping are two subtly different changes: While
* ungrouping preserves the front/back position, grouping cannot do that,
* since the act of grouping destroys positions for the members of the
* group, and those positions have to be restored in the undo.
@@ -968,18 +969,18 @@ group_objects_apply(struct GroupObjectsChange *change, Diagram *dia)
GList *list;
DEBUG_PRINTF(("group_objects_apply()\n"));
-
+
change->applied = 1;
-
- diagram_unselect_objects(dia, change->obj_list);
- layer_remove_objects(change->layer, change->obj_list);
- layer_add_object(change->layer, change->group);
- object_add_updates(change->group, dia);
+
+ diagram_unselect_objects (dia, change->obj_list);
+ dia_layer_remove_objects (change->layer, change->obj_list);
+ dia_layer_add_object (change->layer, change->group);
+ object_add_updates (change->group, dia);
list = change->obj_list;
while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
-
+
/* Have to hide any open properties dialog
if it contains some object in cut_list */
properties_hide_if_shown(dia, obj);
@@ -991,19 +992,19 @@ group_objects_apply(struct GroupObjectsChange *change, Diagram *dia)
}
static void
-group_objects_revert(struct GroupObjectsChange *change, Diagram *dia)
+group_objects_revert (struct GroupObjectsChange *change, Diagram *dia)
{
- DEBUG_PRINTF(("group_objects_revert()\n"));
+ DEBUG_PRINTF (("group_objects_revert()\n"));
change->applied = 0;
-
- diagram_unselect_object(dia, change->group);
- object_add_updates(change->group, dia);
- layer_set_object_list(change->layer, g_list_copy(change->orig_list));
-
- object_add_updates_list(change->obj_list, dia);
+ diagram_unselect_object (dia, change->group);
+ object_add_updates (change->group, dia);
- properties_hide_if_shown(dia, change->group);
+ dia_layer_set_object_list (change->layer, g_list_copy (change->orig_list));
+
+ object_add_updates_list (change->obj_list, dia);
+
+ properties_hide_if_shown (dia, change->group);
}
static void
@@ -1026,7 +1027,7 @@ undo_group_objects(Diagram *dia, GList *obj_list, DiaObject *group,
struct GroupObjectsChange *change;
change = g_new0(struct GroupObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) group_objects_apply;
change->change.revert = (UndoRevertFunc) group_objects_revert;
change->change.free = (UndoFreeFunc) group_objects_free;
@@ -1058,36 +1059,37 @@ static void
ungroup_objects_apply(struct UngroupObjectsChange *change, Diagram *dia)
{
DEBUG_PRINTF(("ungroup_objects_apply()\n"));
-
+
change->applied = 1;
-
- diagram_unselect_object(dia, change->group);
- object_add_updates(change->group, dia);
- layer_replace_object_with_list(change->layer, change->group,
- g_list_copy(change->obj_list));
- object_add_updates_list(change->obj_list, dia);
-
- properties_hide_if_shown(dia, change->group);
+
+ diagram_unselect_object (dia, change->group);
+ object_add_updates (change->group, dia);
+ dia_layer_replace_object_with_list (change->layer,
+ change->group,
+ g_list_copy(change->obj_list));
+ object_add_updates_list (change->obj_list, dia);
+
+ properties_hide_if_shown (dia, change->group);
}
static void
ungroup_objects_revert(struct UngroupObjectsChange *change, Diagram *dia)
{
GList *list;
-
+
DEBUG_PRINTF(("ungroup_objects_revert()\n"));
change->applied = 0;
-
- diagram_unselect_objects(dia, change->obj_list);
- layer_remove_objects(change->layer, change->obj_list);
- layer_add_object_at(change->layer, change->group, change->group_index);
- object_add_updates(change->group, dia);
+
+ diagram_unselect_objects( dia, change->obj_list);
+ dia_layer_remove_objects (change->layer, change->obj_list);
+ dia_layer_add_object_at (change->layer, change->group, change->group_index);
+ object_add_updates (change->group, dia);
list = change->obj_list;
while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
-
+
/* Have to hide any open properties dialog
if it contains some object in cut_list */
properties_hide_if_shown(dia, obj);
@@ -1114,7 +1116,7 @@ undo_ungroup_objects(Diagram *dia, GList *obj_list, DiaObject *group,
struct UngroupObjectsChange *change;
change = g_new0(struct UngroupObjectsChange, 1);
-
+
change->change.apply = (UndoApplyFunc) ungroup_objects_apply;
change->change.revert = (UndoRevertFunc) ungroup_objects_revert;
change->change.free = (UndoFreeFunc) ungroup_objects_free;
@@ -1222,30 +1224,32 @@ typedef struct _MoveObjectToLayerChange {
} MoveObjectToLayerChange;
/*!
- * BEWARE: we need to notify the DiagramTree somehow - maybe
+ * 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)
+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);
- g_return_if_fail(dia->data->layers->len != 0);
+
+ g_return_if_fail (dia->data->active_layer);
+ g_return_if_fail (dia->data->layers->len != 0);
active = dia->data->active_layer;
- for (pos = 0; pos < dia->data->layers->len; ++pos)
- if (active == g_ptr_array_index(dia->data->layers, pos))
+ 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);
- layer_add_objects(target, g_list_copy(objects));
- data_set_active_layer(dia->data, target);
+ target = g_ptr_array_index (dia->data->layers, pos);
+ object_add_updates_list (objects, dia);
+ dia_layer_remove_objects (active, objects);
+ dia_layer_add_objects (target, g_list_copy(objects));
+ data_set_active_layer (dia->data, target);
}
static void
@@ -1264,11 +1268,11 @@ move_object_to_layer_revert(MoveObjectToLayerChange *change, Diagram *dia)
if (change->moving_up) {
move_object_layer_relative(dia, change->objects, -1);
} else {
- diagram_unselect_objects(dia, change->objects);
- move_object_layer_relative(dia, change->objects, 1);
+ diagram_unselect_objects (dia, change->objects);
+ move_object_layer_relative (dia, change->objects, 1);
/* overwriting the 'unsorted' list of objects to the order it had before */
- layer_set_object_list(change->orig_layer, g_list_copy(change->orig_list));
- object_add_updates_list(change->orig_list, dia);
+ dia_layer_set_object_list (change->orig_layer, g_list_copy (change->orig_list));
+ object_add_updates_list (change->orig_list, dia);
}
}
@@ -1285,7 +1289,7 @@ Change *
undo_move_object_other_layer(Diagram *dia, GList *selected_list,
gboolean moving_up)
{
- MoveObjectToLayerChange *movetolayerchange
+ MoveObjectToLayerChange *movetolayerchange
= g_new0(MoveObjectToLayerChange, 1);
Change *change = (Change*)movetolayerchange;
change->apply = (UndoApplyFunc) move_object_to_layer_apply;
@@ -1328,13 +1332,14 @@ _import_change_apply (ImportChange *change,
*/
if (dia_object_get_parent_layer (obj))
layer = dia_object_get_parent_layer (obj);
- layer_add_object (layer, obj);
+ dia_layer_add_object (layer, obj);
}
diagram_update_extents (change->dia);
}
+
static void
_import_change_revert (ImportChange *change,
- Diagram *dia)
+ Diagram *dia)
{
GList *list;
@@ -1344,7 +1349,7 @@ _import_change_revert (ImportChange *change,
for (list = change->objects; list != NULL; list = list->next) {
DiaObject *obj = (DiaObject *)list->data;
Layer *layer = dia_object_get_parent_layer (obj);
- layer_remove_object (layer, obj);
+ dia_layer_remove_object (layer, obj);
}
for (list = change->layers; list != NULL; list = list->next) {
Layer *layer = (Layer *)list->data;
@@ -1392,7 +1397,7 @@ undo_import_change_setup (Diagram *dia)
g_signal_connect (G_OBJECT(dia), "object_add", G_CALLBACK(_import_object_add), change);
- return &change->change;
+ return &change->change;
}
/*!
* \brief Finish listening on the diagram changes
@@ -1403,7 +1408,7 @@ gboolean
undo_import_change_done (Diagram *dia, Change *chg)
{
ImportChange *change = (ImportChange *)chg;
-
+
/* Some type checking first */
g_return_val_if_fail (change != NULL, FALSE);
g_return_val_if_fail (change->change.apply == (UndoApplyFunc)_import_change_apply, FALSE);
@@ -1422,7 +1427,7 @@ undo_import_change_done (Diagram *dia, Change *chg)
typedef struct _MemSwapChange {
Change change;
-
+
gsize size;
guint8 *dest; /* for 'write trough' */
guint8 mem[1]; /* real size during alloc */
@@ -1445,7 +1450,7 @@ _swap_mem(MemSwapChange *change, Diagram *dia)
* \brief Record a memory region for undo (before actually changing it)
*
* @dia : the Diagram to record the change for
- * @dest : a pointer somewhere in the Diagram
+ * @dest : a pointer somewhere in the Diagram
* @size : of the region to copy and restore
*/
Change *
@@ -1453,12 +1458,12 @@ undo_change_memswap (Diagram *dia, gpointer dest, gsize size)
{
MemSwapChange *change = (MemSwapChange *)g_malloc (sizeof(MemSwapChange)+size);
gsize i;
-
+
change->change.apply = (UndoApplyFunc)_swap_mem;
change->change.revert = (UndoRevertFunc)_swap_mem;
/* just calling g_free() on the change is enough */
change->change.free = NULL;
-
+
change->dest = dest;
change->size = size;
/* initialize for swap */
diff --git a/lib/dia-layer.h b/lib/dia-layer.h
new file mode 100644
index 00000000..89dccf65
--- /dev/null
+++ b/lib/dia-layer.h
@@ -0,0 +1,107 @@
+/* Dia -- an diagram creation/manipulation program
+ * Copyright (C) 1998 Alexander Larsson
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright © 2019 Zander Brown <zbrown gnome org>
+ */
+
+#include <glib.h>
+
+#pragma once
+
+G_BEGIN_DECLS
+
+/*!
+ * \brief A diagram consists of layers holding objects
+ *
+ * \ingroup DiagramStructure
+ * \todo : make this a GObject as well
+ */
+struct _Layer {
+ char *name; /*!< The name of the layer */
+ Rectangle extents; /*!< The extents of the layer */
+
+ GList *objects; /*!< List of objects in the layer,
+ sorted by decreasing z-value,
+ objects can ONLY be connected to objects
+ in the same layer! */
+
+ gboolean visible; /*!< The visibility of the layer */
+ gboolean connectable; /*!< Whether the layer can currently be connected to.
+ The selected layer is by default connectable */
+
+ DiagramData *parent_diagram; /*!< Back-pointer to the diagram. This
+ must only be set by functions internal
+ to the diagram, and accessed via
+ layer_get_parent_diagram() */
+};
+
+Layer *dia_layer_new (char *name,
+ DiagramData *parent);
+void dia_layer_destroy (Layer *layer);
+void dia_layer_render (Layer *layer,
+ DiaRenderer *renderer,
+ Rectangle *update,
+ ObjectRenderer obj_renderer /* Can be NULL */,
+ gpointer data,
+ int active_layer);
+int dia_layer_object_get_index (Layer *layer,
+ DiaObject *obj);
+DiaObject *dia_layer_object_get_nth (Layer *layer,
+ guint index);
+int dia_layer_object_count (Layer *layer);
+gchar *dia_layer_get_name (Layer *layer);
+void dia_layer_add_object (Layer *layer,
+ DiaObject *obj);
+void dia_layer_add_object_at (Layer *layer,
+ DiaObject *obj,
+ int pos);
+void dia_layer_add_objects (Layer *layer,
+ GList *obj_list);
+void dia_layer_add_objects_first (Layer *layer,
+ GList *obj_list);
+void dia_layer_remove_object (Layer *layer,
+ DiaObject *obj);
+void dia_layer_remove_objects (Layer *layer,
+ GList *obj_list);
+GList *dia_layer_find_objects_intersecting_rectangle (Layer *layer,
+ Rectangle *rect);
+GList *dia_layer_find_objects_in_rectangle (Layer *layer,
+ Rectangle *rect);
+GList *dia_layer_find_objects_containing_rectangle (Layer *layer,
+ Rectangle *rect);
+DiaObject *dia_layer_find_closest_object (Layer *layer,
+ Point *pos,
+ real maxdist);
+DiaObject *dia_layer_find_closest_object_except (Layer *layer,
+ Point *pos,
+ real maxdist,
+ GList *avoid);
+real dia_layer_find_closest_connectionpoint (Layer *layer,
+ ConnectionPoint **closest,
+ Point *pos,
+ DiaObject *notthis);
+int dia_layer_update_extents (Layer *layer); /* returns true if
changed. */
+void dia_layer_replace_object_with_list (Layer *layer,
+ DiaObject *obj,
+ GList *list);
+void dia_layer_set_object_list (Layer *layer,
+ GList *list);
+DiagramData *dia_layer_get_parent_diagram (Layer *layer);
+
+G_END_DECLS
diff --git a/lib/diagramdata.c b/lib/diagramdata.c
index 5c9f2a31..4973e6b3 100644
--- a/lib/diagramdata.c
+++ b/lib/diagramdata.c
@@ -28,6 +28,7 @@
#include "diainteractiverenderer.h"
#include "paper.h"
#include "persistence.h"
+#include "dia-layer.h"
#include "dynamic_obj.h"
#include "diamarshal.h"
@@ -119,7 +120,7 @@ diagram_data_init(DiagramData *data)
get_paper_info (&data->paper, -1, NULL);
- first_layer = new_layer(g_strdup(_("Background")),data);
+ first_layer = dia_layer_new (g_strdup (_("Background")), data);
data->layers = g_ptr_array_new ();
g_ptr_array_add (data->layers, first_layer);
@@ -141,23 +142,25 @@ diagram_data_init(DiagramData *data)
* @param object A DiagramData object to finalize.
*/
static void
-diagram_data_finalize(GObject *object)
+diagram_data_finalize (GObject *object)
{
- DiagramData *data = DIA_DIAGRAM_DATA(object);
+ DiagramData *data = DIA_DIAGRAM_DATA (object);
guint i;
- g_free(data->paper.name);
+ g_free (data->paper.name);
for (i=0;i<data->layers->len;i++) {
- layer_destroy(g_ptr_array_index(data->layers, i));
+ dia_layer_destroy (g_ptr_array_index (data->layers, i));
}
- g_ptr_array_free(data->layers, TRUE);
+ g_ptr_array_free (data->layers, TRUE);
data->active_layer = NULL;
- g_list_free(data->selected);
+ g_list_free (data->selected);
data->selected = NULL; /* for safety */
data->selected_count_private = 0;
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -185,12 +188,12 @@ diagram_data_clone (DiagramData *data)
clone->paper.name = g_strdup (data->paper.name);
clone->is_compressed = data->is_compressed;
- layer_destroy(g_ptr_array_index(clone->layers, 0));
- g_ptr_array_remove(clone->layers, clone->active_layer);
+ dia_layer_destroy (g_ptr_array_index (clone->layers, 0));
+ g_ptr_array_remove (clone->layers, clone->active_layer);
for (i=0; i < data->layers->len; ++i) {
Layer *src_layer = g_ptr_array_index(data->layers, i);
- Layer *dest_layer = new_layer (layer_get_name (src_layer), clone);
+ Layer *dest_layer = dia_layer_new (dia_layer_get_name (src_layer), clone);
/* copy layer, init the active one */
dest_layer->extents = src_layer->extents;
@@ -229,7 +232,7 @@ diagram_data_clone_selected (DiagramData *data)
/* the selection - if any - can only be on the active layer */
dest_layer = g_ptr_array_index(clone->layers, 0);
g_free (dest_layer->name);
- dest_layer->name = layer_get_name (data->active_layer);
+ dest_layer->name = dia_layer_get_name (data->active_layer);
sorted = data_get_sorted_selected (data);
dest_layer->objects = object_copy_list (sorted);
@@ -353,13 +356,13 @@ data_lower_layer(DiagramData *data, Layer *layer)
* \memberof _DiagramData
*/
void
-data_add_layer(DiagramData *data, Layer *layer)
+data_add_layer (DiagramData *data, Layer *layer)
{
- g_ptr_array_add(data->layers, layer);
+ g_ptr_array_add (data->layers, layer);
layer->parent_diagram = data;
data_emit (data, layer, NULL, "object_add");
- layer_update_extents(layer);
- data_update_extents(data);
+ dia_layer_update_extents (layer);
+ data_update_extents (data);
}
/*!
@@ -390,7 +393,7 @@ data_add_layer_at(DiagramData *data, Layer *layer, int pos)
layer->parent_diagram = data;
data_emit (data, layer, NULL, "object_add");
- layer_update_extents(layer);
+ dia_layer_update_extents(layer);
data_update_extents(data);
}
@@ -608,7 +611,7 @@ data_get_layers_extents_union(DiagramData *data)
Layer *layer = g_ptr_array_index(data->layers, i);
if (!layer->visible) continue;
- layer_update_extents(layer);
+ dia_layer_update_extents (layer);
if (first) {
new_extents = layer->extents;
@@ -651,30 +654,30 @@ data_adapt_scaling_to_extents(DiagramData *data)
* \protected \memberof _DiagramData
*/
static gboolean
-data_compute_extents(DiagramData *data)
+data_compute_extents (DiagramData *data)
{
Rectangle old_extents = data->extents;
- if (!data_has_visible_layers(data)) {
+ if (!data_has_visible_layers (data)) {
if (data->layers->len > 0) {
- Layer *layer = g_ptr_array_index(data->layers, 0);
- layer_update_extents(layer);
+ Layer *layer = g_ptr_array_index (data->layers, 0);
+ dia_layer_update_extents (layer);
data->extents = layer->extents;
} else {
data->extents = invalid_extents;
}
} else {
- data_get_layers_extents_union(data);
+ data_get_layers_extents_union (data);
}
- if (rectangle_equals(&data->extents,&invalid_extents)) {
+ if (rectangle_equals (&data->extents, &invalid_extents)) {
data->extents.left = 0.0;
data->extents.right = 10.0;
data->extents.top = 0.0;
data->extents.bottom = 10.0;
}
- return (!rectangle_equals(&data->extents,&old_extents));
+ return (!rectangle_equals (&data->extents, &old_extents));
}
/*!
@@ -821,7 +824,7 @@ data_render (DiagramData *data,
active_layer = (layer == data->active_layer);
if (layer->visible) {
if (obj_renderer) {
- layer_render (layer, renderer, update, obj_renderer, gdata, active_layer);
+ dia_layer_render (layer, renderer, update, obj_renderer, gdata, active_layer);
} else {
dia_renderer_draw_layer (renderer, layer, active_layer, update);
}
diff --git a/lib/diagramdata.h b/lib/diagramdata.h
index c254f837..7978bd5d 100644
--- a/lib/diagramdata.h
+++ b/lib/diagramdata.h
@@ -103,31 +103,6 @@ typedef struct _DiagramDataClass {
} DiagramDataClass;
-/*!
- * \brief A diagram consists of layers holding objects
- *
- * \ingroup DiagramStructure
- * \todo : make this a GObject as well
- */
-struct _Layer {
- char *name; /*!< The name of the layer */
- Rectangle extents; /*!< The extents of the layer */
-
- GList *objects; /*!< List of objects in the layer,
- sorted by decreasing z-value,
- objects can ONLY be connected to objects
- in the same layer! */
-
- gboolean visible; /*!< The visibility of the layer */
- gboolean connectable; /*!< Whether the layer can currently be connected to.
- The selected layer is by default connectable */
-
- DiagramData *parent_diagram; /*!< Back-pointer to the diagram. This
- must only be set by functions internal
- to the diagram, and accessed via
- layer_get_parent_diagram() */
-};
-
typedef enum {
DIA_HIGHLIGHT_NONE,
DIA_HIGHLIGHT_CONNECTIONPOINT,
@@ -135,9 +110,6 @@ typedef enum {
DIA_HIGHLIGHT_TEXT_EDIT
} DiaHighlightType;
-Layer *new_layer (char *name, DiagramData *parent);
-void layer_destroy(Layer *layer);
-
void data_raise_layer(DiagramData *data, Layer *layer);
void data_lower_layer(DiagramData *data, Layer *layer);
@@ -172,46 +144,9 @@ void data_render(DiagramData *data, DiaRenderer *renderer, Rectangle *update,
gpointer gdata);
void data_render_paginated(DiagramData *data, DiaRenderer *renderer, gpointer user_data);
-void layer_render(Layer *layer, DiaRenderer *renderer, Rectangle *update,
- ObjectRenderer obj_renderer /* Can be NULL */,
- gpointer data,
- int active_layer);
-
DiagramData *diagram_data_clone (DiagramData *data);
DiagramData *diagram_data_clone_selected (DiagramData *data);
-int layer_object_get_index(Layer *layer, DiaObject *obj);
-DiaObject *layer_object_get_nth(Layer *layer, guint index);
-int layer_object_count(Layer *layer);
-gchar *layer_get_name(Layer *layer);
-void layer_add_object(Layer *layer, DiaObject *obj);
-void layer_add_object_at(Layer *layer, DiaObject *obj, int pos);
-void layer_add_objects(Layer *layer, GList *obj_list);
-void layer_add_objects_first(Layer *layer, GList *obj_list);
-void layer_remove_object(Layer *layer, DiaObject *obj);
-void layer_remove_objects(Layer *layer, GList *obj_list);
-GList *layer_find_objects_intersecting_rectangle(Layer *layer, Rectangle*rect);
-GList *layer_find_objects_in_rectangle(Layer *layer, Rectangle *rect);
-GList *layer_find_objects_containing_rectangle(Layer *layer, Rectangle *rect);
-DiaObject *layer_find_closest_object(Layer *layer, Point *pos, real maxdist);
-DiaObject *layer_find_closest_object_except(Layer *layer, Point *pos,
- real maxdist, GList *avoid);
-real layer_find_closest_connectionpoint(Layer *layer,
- ConnectionPoint **closest,
- Point *pos,
- DiaObject *notthis);
-int layer_update_extents(Layer *layer); /* returns true if changed. */
-void layer_replace_object_with_list(Layer *layer, DiaObject *obj,
- GList *list);
-void layer_set_object_list(Layer *layer, GList *list);
-DiagramData *layer_get_parent_diagram(Layer *layer);
-
G_END_DECLS
#endif /* DIAGRAMDATA_H */
-
-
-
-
-
-
diff --git a/lib/diarenderer.c b/lib/diarenderer.c
index 61d2ad8d..15681f6d 100644
--- a/lib/diarenderer.c
+++ b/lib/diarenderer.c
@@ -28,6 +28,7 @@
#include "diatransformrenderer.h"
#include "standard-path.h" /* text_to_path */
#include "boundingbox.h" /* PolyBBextra */
+#include "dia-layer.h"
/*
* redefinition of isnan, for portability, as explained in :
* http://www.gnu.org/software/autoconf/manual/html_node/Function-Portability.html
diff --git a/lib/focus.c b/lib/focus.c
index 1a6bb15d..ad9fc2f6 100644
--- a/lib/focus.c
+++ b/lib/focus.c
@@ -19,7 +19,7 @@
/** This files handles which text elements are currently eligible to get
* the input focus, and moving back and forth between them. Objects can
* add their texts to the list with request_focus (more than one can be
- * added), which doesn't give them focus outright, but makes them part of
+ * added), which doesn't give them focus outright, but makes them part of
* the focus chain. Actual handling of when focus goes where is handled
* in app/disp_callbacks.c
*/
@@ -29,6 +29,7 @@
#include "focus.h"
#include "diagramdata.h"
#include "object.h"
+#include "dia-layer.h"
/** Returns the list of foci for the given diagram */
static GList *
@@ -153,7 +154,7 @@ focus_previous_on_diagram(DiagramData *dia)
if (text_foci != NULL && get_active_focus(dia) != NULL) {
GList *listelem = g_list_find(text_foci, get_active_focus(dia));
listelem = g_list_previous(listelem);
- if (listelem == NULL)
+ if (listelem == NULL)
listelem = g_list_last(text_foci);
return (Focus *)listelem->data;
}
diff --git a/lib/layer.c b/lib/layer.c
index ab73dbd3..070bbd26 100644
--- a/lib/layer.c
+++ b/lib/layer.c
@@ -23,6 +23,7 @@
#include "diarenderer.h"
#include "diainteractiverenderer.h"
#include "dynamic_obj.h"
+#include "dia-layer.h"
static const Rectangle invalid_extents = { -1.0,-1.0,-1.0,-1.0 };
@@ -75,12 +76,12 @@ render_bounding_boxes (void)
* This function also handles rendering of bounding boxes for debugging purposes.
*/
void
-layer_render (Layer *layer,
- DiaRenderer *renderer,
- Rectangle *update,
- ObjectRenderer obj_renderer,
- gpointer data,
- int active_layer)
+dia_layer_render (Layer *layer,
+ DiaRenderer *renderer,
+ Rectangle *update,
+ ObjectRenderer obj_renderer,
+ gpointer data,
+ int active_layer)
{
GList *list;
DiaObject *obj;
@@ -124,11 +125,11 @@ layer_render (Layer *layer,
* \memberof _Layer
*/
Layer *
-new_layer(gchar *name, DiagramData *parent)
+dia_layer_new (gchar *name, DiagramData *parent)
{
Layer *layer;
- layer = g_new(Layer, 1);
+ layer = g_new (Layer, 1);
layer->name = name;
@@ -152,11 +153,11 @@ new_layer(gchar *name, DiagramData *parent)
* \memberof _Layer
*/
void
-layer_destroy(Layer *layer)
+dia_layer_destroy (Layer *layer)
{
- g_free(layer->name);
- destroy_object_list(layer->objects);
- g_free(layer);
+ g_free (layer->name);
+ destroy_object_list (layer->objects);
+ g_free (layer);
}
/*!
@@ -166,7 +167,7 @@ layer_destroy(Layer *layer)
* \protected \memberof _Layer
*/
static void
-set_parent_layer(gpointer element, gpointer user_data)
+set_parent_layer (gpointer element, gpointer user_data)
{
((DiaObject*)element)->parent_layer = (Layer*)user_data;
/* FIXME: even group members need a parent_layer and what about parent objects ???
@@ -184,9 +185,9 @@ set_parent_layer(gpointer element, gpointer user_data)
* \memberof _Layer
*/
int
-layer_object_get_index(Layer *layer, DiaObject *obj)
+dia_layer_object_get_index (Layer *layer, DiaObject *obj)
{
- return (int)g_list_index(layer->objects, (gpointer) obj);
+ return (int) g_list_index (layer->objects, (gpointer) obj);
}
/*!
@@ -196,24 +197,27 @@ layer_object_get_index(Layer *layer, DiaObject *obj)
* \memberof _Layer
*/
DiaObject *
-layer_object_get_nth (Layer *layer, guint index)
+dia_layer_object_get_nth (Layer *layer, guint index)
{
- if (g_list_length(layer->objects) > index) {
- g_assert(g_list_nth(layer->objects, index));
- return (DiaObject *)g_list_nth(layer->objects, index)->data;
+ if (g_list_length (layer->objects) > index) {
+ g_assert (g_list_nth (layer->objects, index));
+ return (DiaObject *) g_list_nth (layer->objects, index)->data;
}
return NULL;
}
+
int
-layer_object_count (Layer *layer)
+dia_layer_object_count (Layer *layer)
{
- return g_list_length(layer->objects);
+ return g_list_length (layer->objects);
}
+
gchar *
-layer_get_name (Layer *layer)
+dia_layer_get_name (Layer *layer)
{
return g_strdup (layer->name);
}
+
/*!
* \brief Add an object to the top of a layer.
* @param layer The layer to add the object to.
@@ -221,13 +225,13 @@ layer_get_name (Layer *layer)
* \memberof _Layer
*/
void
-layer_add_object(Layer *layer, DiaObject *obj)
+dia_layer_add_object(Layer *layer, DiaObject *obj)
{
layer->objects = g_list_append(layer->objects, (gpointer) obj);
set_parent_layer(obj, layer);
/* send a signal that we have added a object to the diagram */
- data_emit (layer_get_parent_diagram(layer), layer, obj, "object_add");
+ data_emit (dia_layer_get_parent_diagram(layer), layer, obj, "object_add");
}
/*!
@@ -238,13 +242,13 @@ layer_add_object(Layer *layer, DiaObject *obj)
* \memberof _Layer
*/
void
-layer_add_object_at(Layer *layer, DiaObject *obj, int pos)
+dia_layer_add_object_at (Layer *layer, DiaObject *obj, int pos)
{
- layer->objects = g_list_insert(layer->objects, (gpointer) obj, pos);
- set_parent_layer(obj, layer);
+ layer->objects = g_list_insert (layer->objects, (gpointer) obj, pos);
+ set_parent_layer (obj, layer);
/* send a signal that we have added a object to the diagram */
- data_emit (layer_get_parent_diagram(layer), layer, obj, "object_add");
+ data_emit (dia_layer_get_parent_diagram (layer), layer, obj, "object_add");
}
/*!
@@ -255,18 +259,17 @@ layer_add_object_at(Layer *layer, DiaObject *obj, int pos)
* \memberof _Layer
*/
void
-layer_add_objects(Layer *layer, GList *obj_list)
+dia_layer_add_objects (Layer *layer, GList *obj_list)
{
GList *list = obj_list;
- layer->objects = g_list_concat(layer->objects, obj_list);
- g_list_foreach(obj_list, set_parent_layer, layer);
+ layer->objects = g_list_concat (layer->objects, obj_list);
+ g_list_foreach (obj_list, set_parent_layer, layer);
- while (list != NULL)
- {
+ while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
/* send a signal that we have added a object to the diagram */
- data_emit (layer_get_parent_diagram(layer), layer, obj, "object_add");
+ data_emit (dia_layer_get_parent_diagram (layer), layer, obj, "object_add");
list = g_list_next(list);
}
@@ -280,23 +283,20 @@ layer_add_objects(Layer *layer, GList *obj_list)
* \memberof _Layer
*/
void
-layer_add_objects_first(Layer *layer, GList *obj_list)
-{
+dia_layer_add_objects_first (Layer *layer, GList *obj_list) {
GList *list = obj_list;
- layer->objects = g_list_concat(obj_list, layer->objects);
- g_list_foreach(obj_list, set_parent_layer, layer);
+ layer->objects = g_list_concat (obj_list, layer->objects);
+ g_list_foreach (obj_list, set_parent_layer, layer);
/* Send one signal per object added */
- while (list != NULL)
- {
+ while (list != NULL) {
DiaObject *obj = (DiaObject *)list->data;
/* send a signal that we have added a object to the diagram */
- data_emit (layer_get_parent_diagram(layer), layer, obj, "object_add");
+ data_emit (dia_layer_get_parent_diagram (layer), layer, obj, "object_add");
- list = g_list_next(list);
+ list = g_list_next (list);
}
-
}
/*!
@@ -306,14 +306,14 @@ layer_add_objects_first(Layer *layer, GList *obj_list)
* \memberof _Layer
*/
void
-layer_remove_object(Layer *layer, DiaObject *obj)
+dia_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");
+ data_emit (dia_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);
+ layer->objects = g_list_remove (layer->objects, obj);
+ dynobj_list_remove_object (obj);
+ set_parent_layer (obj, NULL);
}
/*!
@@ -323,15 +323,15 @@ layer_remove_object(Layer *layer, DiaObject *obj)
* \memberof _Layer
*/
void
-layer_remove_objects(Layer *layer, GList *obj_list)
+dia_layer_remove_objects (Layer *layer, GList *obj_list)
{
DiaObject *obj;
while (obj_list != NULL) {
obj = (DiaObject *) obj_list->data;
- layer_remove_object (layer, obj);
+ dia_layer_remove_object (layer, obj);
- obj_list = g_list_next(obj_list);
+ obj_list = g_list_next (obj_list);
}
}
@@ -344,7 +344,7 @@ layer_remove_objects(Layer *layer, GList *obj_list)
* \memberof _Layer
*/
GList *
-layer_find_objects_intersecting_rectangle(Layer *layer, Rectangle *rect)
+dia_layer_find_objects_intersecting_rectangle (Layer *layer, Rectangle *rect)
{
GList *list;
GList *selected_list;
@@ -379,7 +379,7 @@ layer_find_objects_intersecting_rectangle(Layer *layer, Rectangle *rect)
* \memberof _Layer
*/
GList *
-layer_find_objects_in_rectangle(Layer *layer, Rectangle *rect)
+dia_layer_find_objects_in_rectangle (Layer *layer, Rectangle *rect)
{
GList *list;
GList *selected_list;
@@ -411,7 +411,7 @@ layer_find_objects_in_rectangle(Layer *layer, Rectangle *rect)
* \memberof _Layer
*/
GList *
-layer_find_objects_containing_rectangle(Layer *layer, Rectangle *rect)
+dia_layer_find_objects_containing_rectangle (Layer *layer, Rectangle *rect)
{
GList *list;
GList *selected_list;
@@ -451,8 +451,10 @@ layer_find_objects_containing_rectangle(Layer *layer, Rectangle *rect)
* \memberof _Layer
*/
DiaObject *
-layer_find_closest_object_except(Layer *layer, Point *pos,
- real maxdist, GList *avoid)
+dia_layer_find_closest_object_except (Layer *layer,
+ Point *pos,
+ real maxdist,
+ GList *avoid)
{
GList *l;
DiaObject *closest;
@@ -493,9 +495,9 @@ layer_find_closest_object_except(Layer *layer, Point *pos,
* @return The closest object, or NULL if none are closer than maxdist.
*/
DiaObject *
-layer_find_closest_object(Layer *layer, Point *pos, real maxdist)
+dia_layer_find_closest_object(Layer *layer, Point *pos, real maxdist)
{
- return layer_find_closest_object_except(layer, pos, maxdist, NULL);
+ return dia_layer_find_closest_object_except(layer, pos, maxdist, NULL);
}
@@ -509,10 +511,10 @@ layer_find_closest_object(Layer *layer, Point *pos, real maxdist)
* \memberof _Layer
*/
real
-layer_find_closest_connectionpoint(Layer *layer,
- ConnectionPoint **closest,
- Point *pos,
- DiaObject *notthis)
+dia_layer_find_closest_connectionpoint (Layer *layer,
+ ConnectionPoint **closest,
+ Point *pos,
+ DiaObject *notthis)
{
GList *l;
DiaObject *obj;
@@ -532,10 +534,10 @@ layer_find_closest_connectionpoint(Layer *layer,
for (i=0;i<obj->num_connections;i++) {
cp = obj->connections[i];
/* Note: Uses manhattan metric for speed... */
- dist = distance_point_point_manhattan(pos, &cp->pos);
+ dist = distance_point_point_manhattan (pos, &cp->pos);
if (dist<mindist) {
- mindist = dist;
- *closest = cp;
+ mindist = dist;
+ *closest = cp;
}
}
@@ -549,7 +551,7 @@ layer_find_closest_connectionpoint(Layer *layer,
* \memberof _Layer
*/
int
-layer_update_extents(Layer *layer)
+dia_layer_update_extents (Layer *layer)
{
GList *l;
DiaObject *obj;
@@ -559,22 +561,22 @@ layer_update_extents(Layer *layer)
if (l!=NULL) {
obj = (DiaObject *) l->data;
new_extents = obj->bounding_box;
- l = g_list_next(l);
+ l = g_list_next (l);
- while(l!=NULL) {
+ while (l!=NULL) {
const Rectangle *bbox;
obj = (DiaObject *) l->data;
/* don't consider empty (or broken) objects in the overall extents */
bbox = &obj->bounding_box;
if (bbox->right > bbox->left && bbox->bottom > bbox->top)
- rectangle_union(&new_extents, &obj->bounding_box);
- l = g_list_next(l);
+ rectangle_union (&new_extents, &obj->bounding_box);
+ l = g_list_next (l);
}
} else {
new_extents = invalid_extents;
}
- if (rectangle_equals(&new_extents,&layer->extents)) return FALSE;
+ if (rectangle_equals (&new_extents, &layer->extents)) return FALSE;
layer->extents = new_extents;
return TRUE;
@@ -589,18 +591,19 @@ layer_update_extents(Layer *layer)
* \memberof _Layer
*/
void
-layer_replace_object_with_list(Layer *layer, DiaObject *remove_obj,
- GList *insert_list)
+dia_layer_replace_object_with_list (Layer *layer,
+ DiaObject *remove_obj,
+ GList *insert_list)
{
GList *list, *il;
- list = g_list_find(layer->objects, remove_obj);
+ 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);
+ g_assert (list!=NULL);
+ dynobj_list_remove_object (remove_obj);
+ data_emit (dia_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;
@@ -610,58 +613,58 @@ layer_replace_object_with_list(Layer *layer, DiaObject *remove_obj,
}
if (list->next != NULL) {
GList *last;
- last = g_list_last(insert_list);
+ 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);
+ data_emit (dia_layer_get_parent_diagram (layer), layer, il->data, "object_add");
+ il = g_list_next (il);
}
- g_list_free_1(list);
+ 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);
+ dia_layer_update_extents (layer);
}
static void
-layer_remove_dynobj(gpointer obj, gpointer userdata)
+layer_remove_dynobj (gpointer obj, gpointer userdata)
{
- dynobj_list_remove_object((DiaObject*)obj);
+ dynobj_list_remove_object ((DiaObject*)obj);
}
void
-layer_set_object_list(Layer *layer, GList *list)
+dia_layer_set_object_list (Layer *layer, GList *list)
{
GList *ol;
/* signal removal on all objects */
ol = layer->objects;
while (ol) {
if (!g_list_find (list, ol->data)) /* only if it really vanishes */
- data_emit (layer_get_parent_diagram(layer), layer, ol->data, "object_remove");
+ data_emit (dia_layer_get_parent_diagram(layer), layer, ol->data, "object_remove");
ol = g_list_next (ol);
}
/* restore old list */
ol = layer->objects;
- g_list_foreach(layer->objects, set_parent_layer, NULL);
- g_list_foreach(layer->objects, layer_remove_dynobj, NULL);
+ g_list_foreach (layer->objects, set_parent_layer, NULL);
+ g_list_foreach (layer->objects, layer_remove_dynobj, NULL);
layer->objects = list;
- g_list_foreach(layer->objects, set_parent_layer, layer);
+ g_list_foreach (layer->objects, set_parent_layer, layer);
/* signal addition on all objects */
list = layer->objects;
while (list) {
if (!g_list_find (ol, list->data)) /* only if it is new */
- data_emit (layer_get_parent_diagram(layer), layer, list->data, "object_add");
+ data_emit (dia_layer_get_parent_diagram (layer), layer, list->data, "object_add");
list = g_list_next (list);
}
- g_list_free(ol);
+ g_list_free (ol);
}
DiagramData *
-layer_get_parent_diagram(Layer *layer)
+dia_layer_get_parent_diagram (Layer *layer)
{
return layer->parent_diagram;
}
diff --git a/lib/meson.build b/lib/meson.build
index a1ffa21f..d1627d3b 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -23,6 +23,7 @@ stdprop_sources = [
libdia_sources = stdprop_sources + [
'diagramdata.c',
'layer.c',
+ 'dia-layer.h',
'geometry.c',
'color.c',
'dia_xml.c',
diff --git a/lib/object.c b/lib/object.c
index d7b8d5a2..45c7d85d 100644
--- a/lib/object.c
+++ b/lib/object.c
@@ -26,6 +26,7 @@
#include "diagramdata.h" /* for Layer */
#include "message.h"
#include "parent.h"
+#include "dia-layer.h"
#include "dummy_dep.h"
@@ -392,7 +393,7 @@ _object_exchange (ObjectChange *change, DiaObject *obj)
{
ObjectChangeExchange *c = (ObjectChangeExchange *)change;
Layer *layer = dia_object_get_parent_layer (obj);
- DiagramData *dia = layer ? layer_get_parent_diagram(layer) : NULL;
+ DiagramData *dia = layer ? dia_layer_get_parent_diagram (layer) : NULL;
DiaObject *subst = (obj == c->orig) ? c->subst : c->orig;
DiaObject *parent_object = obj->parent;
Handle *h1, *h2;
@@ -403,8 +404,8 @@ _object_exchange (ObjectChange *change, DiaObject *obj)
props = prop_list_from_descs (_style_prop_descs, pdtpp_true);
/* removing from the diagram first, to have the right update areas */
if (layer) {
- obj_index = layer_object_get_index (layer, obj);
- layer_remove_object (layer, obj);
+ obj_index = dia_layer_object_get_index (layer, obj);
+ dia_layer_remove_object (layer, obj);
if (dia)
data_unselect(dia, obj);
}
@@ -447,7 +448,7 @@ _object_exchange (ObjectChange *change, DiaObject *obj)
prop_list_free(props);
/* adding to the diagram last, to have the right update areas */
if (layer) {
- layer_add_object_at (layer, subst, obj_index);
+ dia_layer_add_object_at (layer, subst, obj_index);
if (dia)
data_select(dia, subst);
}
diff --git a/plug-ins/drs/dia-render-script-import.c b/plug-ins/drs/dia-render-script-import.c
index 2218976a..567ef112 100644
--- a/plug-ins/drs/dia-render-script-import.c
+++ b/plug-ins/drs/dia-render-script-import.c
@@ -31,6 +31,7 @@
#include "group.h"
#include "intl.h"
#include "diaimportrenderer.h"
+#include "dia-layer.h"
#include <libxml/tree.h>
@@ -484,21 +485,21 @@ import_drs (const gchar *filename, DiagramData *dia, DiaContext *ctx, void* user
if (xmlStrcmp (node->name, (const xmlChar *)"layer") == 0) {
xmlChar *str;
xmlChar *name = xmlGetProp (node, (const xmlChar *)"name");
- Layer *layer = new_layer (g_strdup (name ? (gchar *)name : _("Layer")), dia);
+ Layer *layer = dia_layer_new (g_strdup (name ? (gchar *)name : _("Layer")), dia);
if (name)
- xmlFree (name);
+ xmlFree (name);
str = xmlGetProp (node, (const xmlChar *)"active");
if (xmlStrcmp (str, (const xmlChar *)"true")) {
- active_layer = layer;
- xmlFree (str);
+ active_layer = layer;
+ xmlFree (str);
}
items = read_items (node->children, ctx);
for (item = items; item != NULL; item = g_list_next (item)) {
DiaObject *obj = (DiaObject *)item->data;
- layer_add_object(layer, obj);
+ dia_layer_add_object(layer, obj);
}
g_list_free (items);
data_add_layer (dia, layer);
diff --git a/plug-ins/drs/dia-render-script.c b/plug-ins/drs/dia-render-script.c
index ec415119..bb0db34c 100644
--- a/plug-ins/drs/dia-render-script.c
+++ b/plug-ins/drs/dia-render-script.c
@@ -61,6 +61,7 @@
#include "plug-ins.h"
#include "diagramdata.h"
#include "dia_xml_libxml.h"
+#include "dia-layer.h"
#include "dia-render-script.h"
#include "dia-render-script-renderer.h"
diff --git a/plug-ins/dxf/dxf-export.c b/plug-ins/dxf/dxf-export.c
index de3e3946..c4fa22ee 100644
--- a/plug-ins/dxf/dxf-export.c
+++ b/plug-ins/dxf/dxf-export.c
@@ -35,6 +35,7 @@
#include "geometry.h"
#include "diarenderer.h"
#include "filter.h"
+#include "dia-layer.h"
/* used to be 10 and inconsistent with import and even here */
#define MAGIC_THICKNESS_FACTOR (1.0)
@@ -618,7 +619,7 @@ export_dxf(DiagramData *data, DiaContext *ctx,
for (i=0; i<data->layers->len; i++) {
layer = (Layer *) g_ptr_array_index (data->layers, i);
renderer->layername = layer->name;
- layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
+ dia_layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
}
dia_renderer_end_render (DIA_RENDERER (renderer));
diff --git a/plug-ins/dxf/dxf-import.c b/plug-ins/dxf/dxf-import.c
index 68e18cd8..cc1c0d7c 100644
--- a/plug-ins/dxf/dxf-import.c
+++ b/plug-ins/dxf/dxf-import.c
@@ -42,6 +42,7 @@
#include "group.h"
#include "create.h"
#include "attributes.h"
+#include "dia-layer.h"
static real coord_scale = 1.0, measure_scale = 1.0;
static real text_scale = 1.0;
@@ -137,13 +138,12 @@ layer_find_by_name(char *layername, DiagramData *dia)
}
}
- if( matching_layer == NULL )
- {
- matching_layer = new_layer(g_strdup( layername ), dia);
- data_add_layer(dia, matching_layer);
- }
+ if (matching_layer == NULL) {
+ matching_layer = dia_layer_new (g_strdup (layername), dia);
+ data_add_layer (dia, matching_layer);
+ }
- return matching_layer;
+ return matching_layer;
}
/* returns the matching dia linestyle for a given dxf linestyle */
@@ -232,12 +232,14 @@ read_entity_line_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
line_obj->ops->set_props(line_obj, props);
- prop_list_free(props);
+ prop_list_free (props);
- if (layer)
- layer_add_object(layer, line_obj);
- else
+ if (layer) {
+ dia_layer_add_object (layer, line_obj);
+ } else {
return line_obj;
+ }
+
/* don't add it it twice */
return NULL;
}
@@ -346,14 +348,15 @@ read_entity_solid_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
prop_list_add_fill_colour (props, &fill_colour);
prop_list_add_show_background (props, TRUE);
- polygon_obj->ops->set_props( polygon_obj, props );
+ dia_object_set_properties (polygon_obj, props);
- prop_list_free(props);
+ prop_list_free (props);
- if (layer)
- layer_add_object( layer, polygon_obj );
- else
+ if (layer) {
+ dia_layer_add_object (layer, polygon_obj);
+ } else {
return polygon_obj;
+ }
return NULL;
}
@@ -567,14 +570,14 @@ read_entity_polyline_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
prop_list_add_line_width (props, line_width);
prop_list_add_line_style (props, style, 1.0);
- polyline_obj->ops->set_props( polyline_obj, props );
+ dia_object_set_properties (polyline_obj, props);
- prop_list_free(props);
+ prop_list_free (props);
if (layer)
- layer_add_object( layer, polyline_obj );
+ dia_layer_add_object (layer, polyline_obj);
else
- return polyline_obj;
+ return polyline_obj;
return NULL; /* don't add it twice */
}
@@ -643,13 +646,13 @@ read_entity_circle_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
prop_list_add_line_width (props, line_width);
prop_list_add_show_background (props, FALSE);
- ellipse_obj->ops->set_props(ellipse_obj, props);
- prop_list_free(props);
+ dia_object_set_properties (ellipse_obj, props);
+ prop_list_free (props);
if (layer)
- layer_add_object(layer, ellipse_obj);
+ dia_layer_add_object (layer, ellipse_obj);
else
- return ellipse_obj;
+ return ellipse_obj;
return NULL; /* don't add it twice */
}
@@ -734,15 +737,15 @@ read_entity_arc_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
prop_list_add_line_colour (props, &line_colour);
prop_list_add_line_width (props, line_width);
- arc_obj->ops->set_props(arc_obj, props);
- prop_list_free(props);
+ dia_object_set_properties (arc_obj, props);
+ prop_list_free(props);
- if (layer)
- layer_add_object(layer, arc_obj);
- else
- return arc_obj ;
+ if (layer)
+ dia_layer_add_object (layer, arc_obj);
+ else
+ return arc_obj ;
- return NULL; /* don't add it twice */
+ return NULL; /* don't add it twice */
}
/* reads an ellipse entity from the dxf file and creates an ellipse object in dia*/
@@ -811,13 +814,13 @@ read_entity_ellipse_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
prop_list_add_line_width (props, line_width);
prop_list_add_show_background (props, FALSE);
- ellipse_obj->ops->set_props(ellipse_obj, props);
- prop_list_free(props);
+ dia_object_set_properties (ellipse_obj, props);
+ prop_list_free (props);
if (layer)
- layer_add_object(layer, ellipse_obj);
+ dia_layer_add_object (layer, ellipse_obj);
else
- return ellipse_obj;
+ return ellipse_obj;
return NULL; /* don't add it twice */
}
@@ -964,13 +967,13 @@ read_entity_text_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
tprop->attr.color = text_colour;
tprop->attr.height = height;
- text_obj->ops->set_props(text_obj, props);
- prop_list_free(props);
+ dia_object_set_properties (text_obj, props);
+ prop_list_free (props);
if (layer)
- layer_add_object(layer, text_obj);
+ dia_layer_add_object (layer, text_obj);
else
- return text_obj;
+ return text_obj;
return NULL; /* don't add it twice */
}
@@ -1243,10 +1246,10 @@ read_section_blocks_dxf(FILE *filedxf, DxfData *data, DiagramData *dia)
if( group && group_items > 0 && group_list != NULL )
{
obj = group_create( group_list );
- if( NULL == group_layer )
- layer_add_object( dia->active_layer, obj );
+ if (NULL == group_layer )
+ dia_layer_add_object( dia->active_layer, obj );
else
- layer_add_object( group_layer, obj );
+ dia_layer_add_object( group_layer, obj );
}
group = FALSE;
diff --git a/plug-ins/pixbuf/pixbuf.c b/plug-ins/pixbuf/pixbuf.c
index 571d6eaa..329dedf0 100644
--- a/plug-ins/pixbuf/pixbuf.c
+++ b/plug-ins/pixbuf/pixbuf.c
@@ -32,6 +32,7 @@
#include "properties.h"
#include "object.h"
#include "intl.h"
+#include "dia-layer.h"
static gboolean
export_data(DiagramData *data, DiaContext *ctx,
@@ -54,7 +55,7 @@ export_data(DiagramData *data, DiaContext *ctx,
rect.bottom = data->extents.bottom;
/* quite arbitrary */
- zoom = 20.0 * data->paper.scaling;
+ zoom = 20.0 * data->paper.scaling;
/* Adding a bit of padding to account for rounding errors. Better to
* pad than to clip. See bug #413275 */
width = ceil((rect.right - rect.left) * zoom) + 1;
@@ -148,16 +149,16 @@ import_data (const gchar *filename, DiagramData *data, DiaContext *ctx, void* us
prop_list_add_real (plist, "elem_width", width / 20.0);
prop_list_add_real (plist, "elem_height", height / 20.0);
- obj->ops->set_props(obj, plist);
+ dia_object_set_properties (obj, plist);
prop_list_free (plist);
- layer_add_object(data->active_layer, obj);
+ dia_layer_add_object (data->active_layer, obj);
return TRUE;
}
}
else
{
- dia_context_add_message(ctx, _("Pixbuf[%s] can't load:\n%s"),
+ dia_context_add_message(ctx, _("Pixbuf[%s] can't load:\n%s"),
(gchar*)user_data, dia_context_get_filename(ctx));
}
@@ -207,7 +208,7 @@ dia_plugin_init(PluginInfo *info)
/*
* If GTK is not initialized yet don't register this plug-in. This is
* almost the same as app_is_interactive() but avoids to make plug-ins
- * depend on Dia's app core function. Also what we really need is a
+ * depend on Dia's app core function. Also what we really need is a
* display, not an interactive app ;)
*/
if (gdk_display_get_default ()) {
@@ -253,7 +254,7 @@ dia_plugin_init(PluginInfo *info)
gchar* name;
name = gdk_pixbuf_format_get_name (format);
- /* filter out the less useful ones to keep the total list reasonable short
+ /* filter out the less useful ones to keep the total list reasonable short
* (If anyone complains make it configurable via persistence and this default ;-)
*/
if ( strcmp (name, "ani") == 0
diff --git a/plug-ins/python/pydia-diagramdata.c b/plug-ins/python/pydia-diagramdata.c
index 9a219b09..98e186af 100644
--- a/plug-ins/python/pydia-diagramdata.c
+++ b/plug-ins/python/pydia-diagramdata.c
@@ -32,6 +32,7 @@
#include <structmember.h> /* PyMemberDef */
#include "app/diagram.h"
+#include "dia-layer.h"
#include "pydia-diagram.h" /* support dynamic_cast */
PyObject *
@@ -182,7 +183,7 @@ PyDiaDiagramData_DeleteLayer(PyDiaDiagramData *self, PyObject *args)
return Py_None;
}
-/*!
+/*!
* Callback for "object_add" and "object_remove "signal, used by the connect_after method,
* it's a proxy for the python function, creating the values it needs.
* Params are those of the signals on the Diagram object.
@@ -196,13 +197,13 @@ PyDiaDiagramData_CallbackObject(DiagramData *dia,Layer *layer,DiaObject *obj,voi
{
PyObject *pydata,*pylayer,*pyobj,*res,*arg;
PyObject *func = user_data;
-
- /* Check that we got a function */
+
+ /* Check that we got a function */
if (!func || !PyCallable_Check (func)) {
g_warning ("Callback called without valid callback function.");
return;
}
-
+
/* Create a new PyDiaDiagramData object.
*/
if (dia)
@@ -211,7 +212,7 @@ PyDiaDiagramData_CallbackObject(DiagramData *dia,Layer *layer,DiaObject *obj,voi
pydata = Py_None;
Py_INCREF (pydata);
}
-
+
/*
* Create PyDiaLayer
*/
@@ -220,8 +221,8 @@ PyDiaDiagramData_CallbackObject(DiagramData *dia,Layer *layer,DiaObject *obj,voi
else {
pylayer = Py_None;
Py_INCREF (pylayer);
- }
-
+ }
+
/*
* Create PyDiaObject
*/
@@ -230,9 +231,9 @@ PyDiaDiagramData_CallbackObject(DiagramData *dia,Layer *layer,DiaObject *obj,voi
else {
pyobj = Py_None;
Py_INCREF (pyobj);
- }
-
-
+ }
+
+
Py_INCREF(func);
/* Call the callback. */
@@ -241,7 +242,7 @@ PyDiaDiagramData_CallbackObject(DiagramData *dia,Layer *layer,DiaObject *obj,voi
res = PyEval_CallObject (func, arg);
ON_RES(res, FALSE);
}
-
+
/* Cleanup */
Py_XDECREF (arg);
Py_DECREF(func);
@@ -279,7 +280,7 @@ PyDiaDiagramData_ConnectAfter(PyDiaDiagramData *self, PyObject *args)
/* connect to signal */
g_signal_connect_after(DIA_DIAGRAM_DATA(self->data),signal,G_CALLBACK(PyDiaDiagramData_CallbackObject), func);
-
+
Py_INCREF(Py_None);
return Py_None;
}
@@ -347,8 +348,8 @@ PyDiaDiagramData_GetAttr(PyDiaDiagramData *self, gchar *attr)
if (!strcmp(attr, "__members__"))
return Py_BuildValue("[ssssssssssss]",
"extents", "bg_color", "paper",
- "layers", "active_layer",
- "grid_width", "grid_visible",
+ "layers", "active_layer",
+ "grid_width", "grid_visible",
"hguides", "vguides",
"layers", "active_layer",
"selected" );
@@ -398,7 +399,7 @@ PyDiaDiagramData_GetAttr(PyDiaDiagramData *self, gchar *attr)
if (DIA_IS_DIAGRAM (self->data)) {
Diagram *diagram = DIA_DIAGRAM(self->data);
if (diagram) { /* paranoid and helping scan-build */
- if (!strcmp(attr, "grid_width"))
+ if (!strcmp(attr, "grid_width"))
return Py_BuildValue("(dd)", diagram->grid.width_x, diagram->grid.width_y);
else if (!strcmp(attr, "grid_visible"))
return Py_BuildValue("(ii)", diagram->grid.visible_x, diagram->grid.visible_y);
diff --git a/plug-ins/python/pydia-layer.c b/plug-ins/python/pydia-layer.c
index 3ef09457..bb555181 100644
--- a/plug-ins/python/pydia-layer.c
+++ b/plug-ins/python/pydia-layer.c
@@ -23,6 +23,7 @@
#include "pydia-object.h"
#include "pydia-cpoint.h"
#include "pydia-render.h"
+#include "dia-layer.h"
#include <structmember.h> /* PyMemberDef */
@@ -67,151 +68,166 @@ PyDiaLayer_Str(PyDiaLayer *self)
/* methods here */
static PyObject *
-PyDiaLayer_Destroy(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_Destroy (PyDiaLayer *self, PyObject *args)
{
- if (!PyArg_ParseTuple(args, ":Layer.destroy"))
- return NULL;
- layer_destroy(self->layer);
- self->layer = NULL; /* we need some error checking elsewhere */
- Py_INCREF(Py_None);
- return Py_None;
+ if (!PyArg_ParseTuple(args, ":Layer.destroy"))
+ return NULL;
+ dia_layer_destroy (self->layer);
+ self->layer = NULL; /* we need some error checking elsewhere */
+ Py_INCREF (Py_None);
+ return Py_None;
}
static PyObject *
-PyDiaLayer_ObjectGetIndex(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_ObjectGetIndex (PyDiaLayer *self, PyObject *args)
{
- PyDiaObject *obj;
+ PyDiaObject *obj;
- if (!PyArg_ParseTuple(args, "O!:Layer.object_get_index",
- &PyDiaObject_Type, &obj))
- return NULL;
- return PyInt_FromLong(layer_object_get_index(self->layer, obj->object));
+ if (!PyArg_ParseTuple(args, "O!:Layer.object_get_index",
+ &PyDiaObject_Type, &obj))
+ return NULL;
+
+ return PyInt_FromLong (dia_layer_object_get_index (self->layer, obj->object));
}
static PyObject *
-PyDiaLayer_AddObject(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_AddObject (PyDiaLayer *self, PyObject *args)
{
- PyDiaObject *obj;
- int pos = -1;
-
- if (!PyArg_ParseTuple(args, "O!|i:Layer.add_object",
- &PyDiaObject_Type, &obj,
- &pos))
- return NULL;
- if (pos != -1)
- layer_add_object_at(self->layer, obj->object, pos);
- else
- layer_add_object(self->layer, obj->object);
- Py_INCREF(Py_None);
- return Py_None;
+ PyDiaObject *obj;
+ int pos = -1;
+
+ if (!PyArg_ParseTuple(args, "O!|i:Layer.add_object",
+ &PyDiaObject_Type, &obj,
+ &pos)) {
+ return NULL;
+ }
+
+ if (pos != -1) {
+ dia_layer_add_object_at (self->layer, obj->object, pos);
+ } else {
+ dia_layer_add_object (self->layer, obj->object);
+ }
+
+ Py_INCREF(Py_None);
+ return Py_None;
}
static PyObject *
PyDiaLayer_RemoveObject(PyDiaLayer *self, PyObject *args)
{
- PyDiaObject *obj;
-
- if (!PyArg_ParseTuple(args, "O!:Layer.remove_object",
- &PyDiaObject_Type, &obj))
- return NULL;
- layer_remove_object(self->layer, obj->object);
- Py_INCREF(Py_None);
- return Py_None;
+ PyDiaObject *obj;
+
+ if (!PyArg_ParseTuple(args, "O!:Layer.remove_object",
+ &PyDiaObject_Type, &obj))
+ return NULL;
+
+ dia_layer_remove_object (self->layer, obj->object);
+
+ Py_INCREF(Py_None);
+ return Py_None;
}
static PyObject *
-PyDiaLayer_FindObjectsInRectangle(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_FindObjectsInRectangle (PyDiaLayer *self, PyObject *args)
{
- Rectangle rect;
- GList *list, *tmp;
- PyObject *ret;
-
- if (!PyArg_ParseTuple(args, "dddd:Layer.find_objects_in_rectange",
- &rect.top, &rect.left, &rect.bottom, &rect.right))
- return NULL;
- list = layer_find_objects_in_rectangle(self->layer, &rect);
- ret = PyList_New(0);
- for (tmp = list; tmp; tmp = tmp->next)
- PyList_Append(ret, PyDiaObject_New((DiaObject *)tmp->data));
- g_list_free(list);
- return ret;
+ Rectangle rect;
+ GList *list, *tmp;
+ PyObject *ret;
+
+ if (!PyArg_ParseTuple (args, "dddd:Layer.find_objects_in_rectange",
+ &rect.top, &rect.left, &rect.bottom, &rect.right))
+ return NULL;
+
+ list = dia_layer_find_objects_in_rectangle (self->layer, &rect);
+ ret = PyList_New (0);
+ for (tmp = list; tmp; tmp = tmp->next) {
+ PyList_Append (ret, PyDiaObject_New ((DiaObject *) tmp->data));
+ }
+ g_list_free (list);
+
+ return ret;
}
static PyObject *
-PyDiaLayer_FindClosestObject(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_FindClosestObject (PyDiaLayer *self, PyObject *args)
{
- Point pos;
- real maxdist;
- DiaObject *obj;
-
- if (!PyArg_ParseTuple(args, "ddd:Layer.find_closest_object",
- &pos.x, &pos.y, &maxdist))
- return NULL;
- obj = layer_find_closest_object(self->layer, &pos, maxdist);
- if (obj)
- return PyDiaObject_New(obj);
- Py_INCREF(Py_None);
- return Py_None;
+ Point pos;
+ real maxdist;
+ DiaObject *obj;
+
+ if (!PyArg_ParseTuple(args, "ddd:Layer.find_closest_object",
+ &pos.x, &pos.y, &maxdist))
+ return NULL;
+
+ obj = dia_layer_find_closest_object (self->layer, &pos, maxdist);
+
+ if (obj)
+ return PyDiaObject_New (obj);
+
+ Py_INCREF(Py_None);
+ return Py_None;
}
static PyObject *
-PyDiaLayer_FindClosestConnectionPoint(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_FindClosestConnectionPoint (PyDiaLayer *self, PyObject *args)
{
- ConnectionPoint *cpoint = NULL;
- Point pos;
- real dist;
- PyObject *ret;
- PyDiaObject *obj;
-
- if (!PyArg_ParseTuple(args, "dd|O!:Layer.find_closest_connection_point",
- &pos.x, &pos.y, PyDiaObject_Type, &obj))
- return NULL;
- dist = layer_find_closest_connectionpoint(self->layer, &cpoint, &pos, obj ? obj->object : NULL);
-
- ret = PyTuple_New(2);
- PyTuple_SetItem(ret, 0, PyFloat_FromDouble(dist));
- if (cpoint)
- PyTuple_SetItem(ret, 1, PyDiaConnectionPoint_New(cpoint));
- else {
- Py_INCREF(Py_None);
- PyTuple_SetItem(ret, 1, Py_None);
- }
- return ret;
+ ConnectionPoint *cpoint = NULL;
+ Point pos;
+ real dist;
+ PyObject *ret;
+ PyDiaObject *obj;
+
+ if (!PyArg_ParseTuple(args, "dd|O!:Layer.find_closest_connection_point",
+ &pos.x, &pos.y, PyDiaObject_Type, &obj))
+ return NULL;
+
+ dist = dia_layer_find_closest_connectionpoint (self->layer, &cpoint, &pos, obj ? obj->object : NULL);
+
+ ret = PyTuple_New (2);
+ PyTuple_SetItem (ret, 0, PyFloat_FromDouble (dist));
+ if (cpoint) {
+ PyTuple_SetItem (ret, 1, PyDiaConnectionPoint_New (cpoint));
+ } else {
+ Py_INCREF (Py_None);
+ PyTuple_SetItem (ret, 1, Py_None);
+ }
+ return ret;
}
static PyObject *
-PyDiaLayer_UpdateExtents(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_UpdateExtents (PyDiaLayer *self, PyObject *args)
{
- if (!PyArg_ParseTuple(args, ":Layer.update_extents"))
- return NULL;
- return PyInt_FromLong(layer_update_extents(self->layer));
+ if (!PyArg_ParseTuple (args, ":Layer.update_extents"))
+ return NULL;
+
+ return PyInt_FromLong (dia_layer_update_extents (self->layer));
}
static PyObject *
-PyDiaLayer_Render(PyDiaLayer *self, PyObject *args)
+PyDiaLayer_Render (PyDiaLayer *self, PyObject *args)
{
- PyObject* renderer;
- DiaRenderer *wrapper;
- Rectangle *update = NULL;
- gboolean active = FALSE; /* could derive from layer->parent_diagram->active_layer
- * but not sure if it's worth the effort. */
-
- if (!PyArg_ParseTuple(args, "O:Layer.render", &renderer))
- return NULL;
-
- /* We need to create the PythonRenderer wrapper to provide the gobject interface.
- * This could be done much more efficient if it would somehow be cached for the
- * whole rendering pass ...
- */
- wrapper = PyDia_new_renderer_wrapper (renderer);
- layer_render (self->layer, wrapper, update,
- NULL, /* no special object renderer */
- NULL, /* no user data */
- active);
- g_object_unref (wrapper);
-
- Py_INCREF(Py_None);
- return Py_None;
+ PyObject* renderer;
+ DiaRenderer *wrapper;
+ Rectangle *update = NULL;
+ gboolean active = FALSE; /* could derive from layer->parent_diagram->active_layer
+ * but not sure if it's worth the effort. */
+
+ if (!PyArg_ParseTuple (args, "O:Layer.render", &renderer))
+ return NULL;
+
+ /* We need to create the PythonRenderer wrapper to provide the gobject interface.
+ * This could be done much more efficient if it would somehow be cached for the
+ * whole rendering pass ...
+ */
+ wrapper = PyDia_new_renderer_wrapper (renderer);
+ dia_layer_render (self->layer, wrapper, update,
+ NULL, /* no special object renderer */
+ NULL, /* no user data */
+ active);
+ g_object_unref (wrapper);
+
+ Py_INCREF (Py_None);
+ return Py_None;
}
/* missing functions:
@@ -269,29 +285,31 @@ static PyMemberDef PyDiaLayer_Members[] = {
static PyObject *
PyDiaLayer_GetAttr(PyDiaLayer *self, gchar *attr)
{
- if (!strcmp(attr, "__members__"))
- return Py_BuildValue("[ssss]", "extents", "name", "objects",
- "visible");
- else if (!strcmp(attr, "name"))
- return PyString_FromString(self->layer->name);
- else if (!strcmp(attr, "extents"))
- return Py_BuildValue("(dddd)", self->layer->extents.top,
- self->layer->extents.left,
- self->layer->extents.bottom,
- self->layer->extents.right);
- else if (!strcmp(attr, "objects")) {
- PyObject *ret;
- GList *tmp;
- gint i;
-
- ret = PyTuple_New(g_list_length(self->layer->objects));
- for (i = 0, tmp = self->layer->objects; tmp; i++, tmp = tmp->next)
- PyTuple_SetItem(ret, i, PyDiaObject_New((DiaObject *)tmp->data));
- return ret;
- } else if (!strcmp(attr, "visible"))
- return PyInt_FromLong(self->layer->visible);
-
- return Py_FindMethod(PyDiaLayer_Methods, (PyObject *)self, attr);
+ if (!strcmp (attr, "__members__"))
+ return Py_BuildValue ("[ssss]", "extents", "name", "objects", "visible");
+ else if (!strcmp (attr, "name"))
+ return PyString_FromString (self->layer->name);
+ else if (!strcmp (attr, "extents"))
+ return Py_BuildValue ("(dddd)",
+ self->layer->extents.top,
+ self->layer->extents.left,
+ self->layer->extents.bottom,
+ self->layer->extents.right);
+ else if (!strcmp (attr, "objects")) {
+ PyObject *ret;
+ GList *tmp;
+ gint i;
+
+ ret = PyTuple_New (g_list_length (self->layer->objects));
+ for (i = 0, tmp = self->layer->objects; tmp; i++, tmp = tmp->next) {
+ PyTuple_SetItem (ret, i, PyDiaObject_New ((DiaObject *)tmp->data));
+ }
+ return ret;
+ } else if (!strcmp (attr, "visible")) {
+ return PyInt_FromLong (self->layer->visible);
+ }
+
+ return Py_FindMethod (PyDiaLayer_Methods, (PyObject *) self, attr);
}
PyTypeObject PyDiaLayer_Type = {
diff --git a/plug-ins/svg/render_svg.c b/plug-ins/svg/render_svg.c
index ca7b5f78..d1f171d0 100644
--- a/plug-ins/svg/render_svg.c
+++ b/plug-ins/svg/render_svg.c
@@ -46,6 +46,7 @@
#include "group.h"
#include "textline.h"
#include "dia_svg.h"
+#include "dia-layer.h"
G_BEGIN_DECLS
diff --git a/plug-ins/svg/svg-import.c b/plug-ins/svg/svg-import.c
index 27cb5fcb..db394136 100644
--- a/plug-ins/svg/svg-import.c
+++ b/plug-ins/svg/svg-import.c
@@ -49,6 +49,7 @@
#include "font.h"
#include "attributes.h"
#include "pattern.h"
+#include "dia-layer.h"
/*!
* \defgroup SvgImport Import SVG
@@ -1910,7 +1911,7 @@ import_shape_info (xmlNodePtr start_node, DiagramData *dia, DiaContext *ctx)
dia_context_add_message (ctx, _("'Shape Design' shapes missing."));
return FALSE;
}
- layer = new_layer (g_strdup ("Shape Design"), dia);
+ layer = dia_layer_new (g_strdup ("Shape Design"), dia);
data_add_layer (dia, layer);
for (node = start_node; node != NULL; node = node->next) {
@@ -1923,27 +1924,27 @@ import_shape_info (xmlNodePtr start_node, DiagramData *dia, DiaContext *ctx)
xmlNodePtr cp_node;
for (cp_node = node->xmlChildrenNode; cp_node != NULL; cp_node = cp_node->next) {
- Point pos;
- gboolean is_main = FALSE;
-
- if (_parse_shape_cp (cp_node, &pos.x, &pos.y, &is_main)) {
- Handle *h1, *h2;
- const DiaObjectType *ot = is_main ? ot_mp : ot_cp;
- DiaObject *o;
-
- o = ot->ops->create (&pos, ot->default_user_data, &h1, &h2);
-
- if (o) {
- /* we have to adjust the position to be centered */
- g_return_val_if_fail (o->num_handles == 8, FALSE);
- pos.x -= (o->handles[1]->pos.x - o->handles[0]->pos.x);
- pos.y -= (o->handles[3]->pos.y - o->handles[0]->pos.y);
- o->ops->move (o, &pos);
- layer_add_object (layer, o);
- } else {
- dia_context_add_message (ctx, _("Object '%s' creation failed"), ot->name);
- }
- }
+ Point pos;
+ gboolean is_main = FALSE;
+
+ if (_parse_shape_cp (cp_node, &pos.x, &pos.y, &is_main)) {
+ Handle *h1, *h2;
+ const DiaObjectType *ot = is_main ? ot_mp : ot_cp;
+ DiaObject *o;
+
+ o = ot->ops->create (&pos, ot->default_user_data, &h1, &h2);
+
+ if (o) {
+ /* we have to adjust the position to be centered */
+ g_return_val_if_fail (o->num_handles == 8, FALSE);
+ pos.x -= (o->handles[1]->pos.x - o->handles[0]->pos.x);
+ pos.y -= (o->handles[3]->pos.y - o->handles[0]->pos.y);
+ o->ops->move (o, &pos);
+ dia_layer_add_object (layer, o);
+ } else {
+ dia_context_add_message (ctx, _("Object '%s' creation failed"), ot->name);
+ }
+ }
}
} else if ( !xmlStrcmp(node->name, (const xmlChar *)"default-width")
|| !xmlStrcmp(node->name, (const xmlChar *)"default-height")) {
@@ -2104,15 +2105,15 @@ import_svg (xmlDocPtr doc, DiagramData *dia,
if (groups_to_layers) {
gchar *name = dia_object_get_meta (obj, "id");
/* new_layer() is taking ownership of the name */
- Layer *layer = new_layer (name, dia);
+ Layer *layer = dia_layer_new (name, dia);
/* keep the group for potential transformation */
- layer_add_object (layer, obj);
+ dia_layer_add_object (layer, obj);
data_add_layer (dia, layer);
} else {
/* Just as before: throw it in the active layer */
- layer_add_object(dia->active_layer, obj);
- layer_update_extents(dia->active_layer);
+ dia_layer_add_object (dia->active_layer, obj);
+ dia_layer_update_extents (dia->active_layer);
}
}
diff --git a/plug-ins/vdx/vdx-export.c b/plug-ins/vdx/vdx-export.c
index 4512db32..984abaf4 100644
--- a/plug-ins/vdx/vdx-export.c
+++ b/plug-ins/vdx/vdx-export.c
@@ -45,6 +45,7 @@
#include "prop_pixbuf.h"
#include "dia_image.h"
#include "group.h"
+#include "dia-layer.h"
#include "vdx.h"
#include "visio-types.h"
@@ -1784,7 +1785,7 @@ export_vdx(DiagramData *data, DiaContext *ctx,
for (i = 0; i < data->layers->len; i++) {
layer = (Layer *) g_ptr_array_index (data->layers, i);
if (layer->visible) {
- layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
+ dia_layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
}
renderer->depth++;
}
@@ -1800,11 +1801,11 @@ export_vdx(DiagramData *data, DiaContext *ctx,
/* Now render */
for (i = 0; i < data->layers->len; i++) {
- layer = (Layer *) g_ptr_array_index (data->layers, i);
- if (layer->visible) {
- layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
- }
- renderer->depth++;
+ layer = (Layer *) g_ptr_array_index (data->layers, i);
+ if (layer->visible) {
+ dia_layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
+ }
+ renderer->depth++;
}
dia_renderer_end_render (DIA_RENDERER (renderer));
diff --git a/plug-ins/vdx/vdx-import.c b/plug-ins/vdx/vdx-import.c
index f7fdfde1..697bee4b 100644
--- a/plug-ins/vdx/vdx-import.c
+++ b/plug-ins/vdx/vdx-import.c
@@ -51,6 +51,7 @@
#include "visio-types.h"
#include "bezier_conn.h"
#include "connection.h"
+#include "dia-layer.h"
void static vdx_get_colors(xmlNodePtr cur, VDXDocument* theDoc, DiaContext *ctx);
void static vdx_get_facenames(xmlNodePtr cur, VDXDocument* theDoc, DiaContext *ctx);
@@ -2747,10 +2748,9 @@ vdx_parse_shape(xmlNodePtr Shape, struct vdx_PageSheet *PageSheet,
/* Add the objects straight into the diagram */
/* This isn't strictly correct as a child object can be on a
different layer from its parent. */
- for (object = objects; object; object = object->next)
- {
- if (!object->data) continue;
- layer_add_object(diaLayer, (DiaObject *)object->data);
+ for (object = objects; object; object = object->next) {
+ if (!object->data) continue;
+ dia_layer_add_object (diaLayer, (DiaObject *)object->data);
}
free_children(&theShape);
@@ -2824,7 +2824,7 @@ vdx_setup_layers(struct vdx_PageSheet* PageSheet, VDXDocument* theDoc,
if (!found)
{
g_array_append_val(theDoc->LayerNames, layername->data);
- diaLayer = new_layer(g_strdup((char*)layername->data), dia);
+ diaLayer = dia_layer_new (g_strdup ((char*)layername->data), dia);
data_add_layer(dia, diaLayer);
}
page_layer++;
diff --git a/plug-ins/vdx/vdx-xml.c b/plug-ins/vdx/vdx-xml.c
index 9587db3b..68fd142b 100644
--- a/plug-ins/vdx/vdx-xml.c
+++ b/plug-ins/vdx/vdx-xml.c
@@ -39,6 +39,7 @@
#include "font.h"
#include "vdx.h"
#include "visio-types.h"
+#include "dia-layer.h"
/** Parses an XML object into internal representation
* @param cur the current XML node
diff --git a/plug-ins/wpg/wpg-import.c b/plug-ins/wpg/wpg-import.c
index 510829e1..199a245c 100644
--- a/plug-ins/wpg/wpg-import.c
+++ b/plug-ins/wpg/wpg-import.c
@@ -29,6 +29,7 @@
#include "diacontext.h"
#include "intl.h"
#include "message.h" /* just dia_log_message() */
+#include "dia-layer.h"
typedef struct _WpgImportRenderer WpgImportRenderer;
@@ -665,10 +666,10 @@ import_data (const gchar *filename, DiagramData *dia, DiaContext *ctx, void* use
{
DiaObject *objs = dia_import_renderer_get_objects (DIA_RENDERER(ren));
if (objs) {
- layer_add_object (dia->active_layer, objs);
+ dia_layer_add_object (dia->active_layer, objs);
} else {
- dia_context_add_message (ctx, _("Empty WPG file?"));
- bRet = FALSE;
+ dia_context_add_message (ctx, _("Empty WPG file?"));
+ bRet = FALSE;
}
}
g_object_unref (ren);
diff --git a/plug-ins/xfig/xfig-export.c b/plug-ins/xfig/xfig-export.c
index ce693ac3..c6851da0 100644
--- a/plug-ins/xfig/xfig-export.c
+++ b/plug-ins/xfig/xfig-export.c
@@ -46,6 +46,7 @@
#include "dia_image.h"
#include "group.h"
#include "diatransformrenderer.h"
+#include "dia-layer.h"
#include "xfig.h"
@@ -1184,7 +1185,7 @@ export_fig(DiagramData *data, DiaContext *ctx,
for (i = 0; i < data->layers->len; i++) {
layer = (Layer *) g_ptr_array_index (data->layers, i);
if (layer->visible) {
- layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
+ dia_layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
renderer->depth++;
}
}
@@ -1198,7 +1199,7 @@ export_fig(DiagramData *data, DiaContext *ctx,
for (i=0; i<data->layers->len; i++) {
layer = (Layer *) g_ptr_array_index (data->layers, i);
if (layer->visible) {
- layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
+ dia_layer_render (layer, DIA_RENDERER (renderer), NULL, NULL, data, 0);
renderer->depth++;
}
}
diff --git a/plug-ins/xfig/xfig-import.c b/plug-ins/xfig/xfig-import.c
index 5f8b3fe1..041aad95 100644
--- a/plug-ins/xfig/xfig-import.c
+++ b/plug-ins/xfig/xfig-import.c
@@ -47,6 +47,7 @@
#include "properties.h"
#include "propinternals.h"
#include "group.h"
+#include "dia-layer.h"
#include "create.h"
#include "xfig.h"
@@ -1338,12 +1339,12 @@ import_fig(const gchar *filename, DiagramData *dia, DiaContext *ctx, void* user_
}
} while (TRUE);
- /* Now we can reorder for the depth fields */
- for (i = 0; i < FIG_MAX_DEPTHS; i++) {
- if (depths[i] != NULL)
- layer_add_objects_first(dia->active_layer, depths[i]);
- }
- return TRUE;
+ /* Now we can reorder for the depth fields */
+ for (i = 0; i < FIG_MAX_DEPTHS; i++) {
+ if (depths[i] != NULL)
+ dia_layer_add_objects_first (dia->active_layer, depths[i]);
+ }
+ return TRUE;
}
/* interface from filter.h */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]