[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55097] trunk/blender/source/blender/ editors/gpencil/gpencil_buttons.c: GPencil feature request:

Ton Roosendaal ton at blender.org
Thu Mar 7 19:01:10 CET 2013


Revision: 55097
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55097
Author:   ton
Date:     2013-03-07 18:01:10 +0000 (Thu, 07 Mar 2013)
Log Message:
-----------
GPencil feature request:

Allow layers to be moved up and down, so you can control drawing order nicer.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c

Modified: trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c	2013-03-07 17:53:16 UTC (rev 55096)
+++ trunk/blender/source/blender/editors/gpencil/gpencil_buttons.c	2013-03-07 18:01:10 UTC (rev 55097)
@@ -86,7 +86,30 @@
 	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
 }
 
+/* move layer up */
+static void gp_ui_layer_up_cb(bContext *C, void *gpd_v, void *gpl_v)
+{
+	bGPdata *gpd = gpd_v;
+	bGPDlayer *gpl = gpl_v;
+	
+	BLI_remlink(&gpd->layers, gpl);
+	BLI_insertlinkbefore(&gpd->layers, gpl->prev, gpl);
+	
+	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
 
+/* move layer down */
+static void gp_ui_layer_down_cb(bContext *C, void *gpd_v, void *gpl_v)
+{
+	bGPdata *gpd = gpd_v;
+	bGPDlayer *gpl = gpl_v;
+	
+	BLI_remlink(&gpd->layers, gpl);
+	BLI_insertlinkafter(&gpd->layers, gpl->next, gpl);
+	
+	WM_event_add_notifier(C, NC_GPENCIL | ND_DATA | NA_EDITED, NULL);
+}
+
 /* ------- Drawing Code ------- */
 
 /* draw the controls for a given layer */
@@ -174,6 +197,18 @@
 		/* name */
 		uiItemR(sub, &ptr, "info", 0, "", ICON_NONE);
 		
+		/* move up/down */
+		if (gpl->prev) {
+			but = uiDefIconBut(block, BUT, 0, ICON_TRIA_UP, 0, 0, UI_UNIT_X, UI_UNIT_Y,
+						   NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Move layer up"));
+			uiButSetFunc(but, gp_ui_layer_up_cb, gpd, gpl);
+		}
+		if (gpl->next) {
+			but = uiDefIconBut(block, BUT, 0, ICON_TRIA_DOWN, 0, 0, UI_UNIT_X, UI_UNIT_Y,
+							   NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Move layer down"));
+			uiButSetFunc(but, gp_ui_layer_down_cb, gpd, gpl);
+		}
+		
 		/* delete 'button' */
 		uiBlockSetEmboss(block, UI_EMBOSSN);
 		/* right-align ............................... */




More information about the Bf-blender-cvs mailing list