Page MenuHome

cto_menu.patch

cto_menu.patch

Index: /home/theeth/bf-blender/blender/source/blender/src/header_view3d.c
===================================================================
--- /home/theeth/bf-blender/blender/source/blender/src/header_view3d.c (revision 15043)
+++ /home/theeth/bf-blender/blender/source/blender/src/header_view3d.c (working copy)
@@ -5306,8 +5306,23 @@
allqueue(REDRAWVIEW3D, 1);
break;
case B_MAN_MODE:
- allqueue(REDRAWVIEW3D, 1);
- break;
+ {
+ int mode = V3D_MANIP_CUSTOM + BIF_countTransformOrientation();
+ if (G.vd->twmode > mode)
+ {
+ mode = G.vd->twmode - mode;
+ if (mode == 2)
+ {
+ BIF_manageTransformOrientation(1, 1);
+ }
+ else if (mode == 1)
+ {
+ BIF_clearTransformOrientation();
+ }
+ }
+ allqueue(REDRAWVIEW3D, 1);
+ break;
+ }
default:
Index: /home/theeth/bf-blender/blender/source/blender/src/transform_orientations.c
===================================================================
--- /home/theeth/bf-blender/blender/source/blender/src/transform_orientations.c (revision 15050)
+++ /home/theeth/bf-blender/blender/source/blender/src/transform_orientations.c (working copy)
@@ -346,8 +346,10 @@
char * BIF_menustringTransformOrientation(char *title) {
char menu[] = "%t|Global%x0|Local%x1|Normal%x2|View%x3";
+ char actions[] = "|%%l|Clear All%%x%d|Add New%%x%d";
ListBase *transform_spaces = &G.scene->transform_spaces;
TransformOrientation *ts;
+ /*int has_CTO = transform_spaces->first != NULL;*/
int i = V3D_MANIP_CUSTOM;
char *str_menu, *p;
@@ -352,7 +354,7 @@
char *str_menu, *p;
- str_menu = MEM_callocN(strlen(menu) + strlen(title) + 40 * BIF_countTransformOrientation(), "UserTransSpace from matrix");
+ str_menu = MEM_callocN(strlen(menu) + strlen(title) + strlen(actions) + 40 * BIF_countTransformOrientation(), "UserTransSpace from matrix");
p = str_menu;
p += sprintf(str_menu, "%s", title);
@@ -357,6 +359,13 @@
p += sprintf(str_menu, "%s", title);
p += sprintf(p, "%s", menu);
+
+/* Separator is too big, so no need for another one
+ if (has_CTO)
+ {
+ p += sprintf(p, "|%%l");
+ }
+*/
for (ts = transform_spaces->first; ts; ts = ts->next) {
p += sprintf(p, "|%s%%x%d", ts->name, i++);
@@ -362,6 +371,8 @@
p += sprintf(p, "|%s%%x%d", ts->name, i++);
}
+ p += sprintf(p, actions, i + 1, i + 2);
+
return str_menu;
}

File Metadata

Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
1d/0b/e67ebffd7346c20790d824bf4d98

Event Timeline