summaryrefslogtreecommitdiffstats
path: root/src/canvas-base.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-12-21 19:30:29 +0000
committerDavid Robillard <d@drobilla.net>2012-12-21 19:30:29 +0000
commit9306840a17b29faa3dccb614dfe27a15fa0250c8 (patch)
tree7eb3cdfcd74d4371a9e234e8bea60e1b23656583 /src/canvas-base.c
parent2c3cbd04b0d62382bad891e7933f709ef48c4be1 (diff)
downloadganv-9306840a17b29faa3dccb614dfe27a15fa0250c8.tar.gz
ganv-9306840a17b29faa3dccb614dfe27a15fa0250c8.tar.bz2
ganv-9306840a17b29faa3dccb614dfe27a15fa0250c8.zip
Implement item stacking.
git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@4876 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/canvas-base.c')
-rw-r--r--src/canvas-base.c97
1 files changed, 13 insertions, 84 deletions
diff --git a/src/canvas-base.c b/src/canvas-base.c
index 76e34e0..653ebf2 100644
--- a/src/canvas-base.c
+++ b/src/canvas-base.c
@@ -216,6 +216,7 @@ ganv_item_construct(GanvItem* item, GanvItem* parent,
item->parent = parent;
item->canvas = item->parent->canvas;
+ item->layer = 0;
g_object_set_valist(G_OBJECT(item), first_arg_name, args);
@@ -402,6 +403,18 @@ ganv_item_set_valist(GanvItem* item, const gchar* first_arg_name, va_list args)
item->canvas->need_repick = TRUE;
}
+void
+ganv_item_raise(GanvItem* item)
+{
+ ++item->layer;
+}
+
+void
+ganv_item_lower(GanvItem* item)
+{
+ --item->layer;
+}
+
/**
* ganv_item_move:
* @item: A canvas item.
@@ -421,90 +434,6 @@ ganv_item_move(GanvItem* item, double dx, double dy)
item->canvas->need_repick = TRUE;
}
-/* Convenience function to reorder items in a group's child list. This puts the
- * specified link after the "before" link. Returns TRUE if the list was changed.
- */
-#if 0
-static gboolean
-put_item_after(GList* link, GList* before)
-{
- GanvGroup* parent;
- GList* old_before, * old_after;
- GList* after;
-
- parent = GANV_GROUP(GANV_ITEM(link->data)->parent);
-
- if (before) {
- after = before->next;
- } else {
- after = parent->item_list;
- }
-
- if (( before == link) || ( after == link) ) {
- return FALSE;
- }
-
- /* Unlink */
-
- old_before = link->prev;
- old_after = link->next;
-
- if (old_before) {
- old_before->next = old_after;
- } else {
- parent->item_list = old_after;
- }
-
- if (old_after) {
- old_after->prev = old_before;
- } else {
- parent->item_list_end = old_before;
- }
-
- /* Relink */
-
- link->prev = before;
- if (before) {
- before->next = link;
- } else {
- parent->item_list = link;
- }
-
- link->next = after;
- if (after) {
- after->prev = link;
- } else {
- parent->item_list_end = link;
- }
-
- return TRUE;
-}
-#endif
-
-/**
- * ganv_item_raise_to_top:
- * @item: A canvas item.
- *
- * Raises an item to the top of its parent's stack.
- **/
-void
-ganv_item_raise_to_top(GanvItem* item)
-{
- fprintf(stderr, "FIXME: ganv_item_raise_to_top\n");
-}
-
-/**
- * ganv_item_lower_to_bottom:
- * @item: A canvas item.
- *
- * Lowers an item to the bottom of its parent's stack.
- **/
-void
-ganv_item_lower_to_bottom(GanvItem* item)
-{
- fprintf(stderr, "FIXME: ganv_item_lower_to_bottom\n");
-}
-
/**
* ganv_item_show:
* @item: A canvas item.