Hi,<br><br>Is there any reason in particular that the uiPanelPush(block);/uiPanelPop(block);&nbsp; lines have been added in drawview.c for the Transform Orientations panel? Removing them gets rid of a little redraw bug I&#39;m getting with the panel here.
<br><br><br>Regards,<br>Aligorith<br><br><div class="gmail_quote">On Jan 14, 2008 7:24 AM, Martin Poirier &lt;<a href="mailto:theeth@yahoo.com">theeth@yahoo.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Revision: 13223<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=13223" target="_blank">http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&amp;root=bf-blender&amp;revision=13223
</a><br>Author: &nbsp; theeth<br>Date: &nbsp; &nbsp; 2008-01-13 19:24:09 +0100 (Sun, 13 Jan 2008)<br><br>Log Message:<br>-----------<br>=== Custom Transform Orientation ===<br><br>Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -&gt; Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.
<br><br>If you plan on using only a single custom orientation and don&#39;t really need a list, I suggest you use the hotkey as it adds and selects at the same time.<br><br>Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).
<br><br>Adding from an object, the orientation is a normalized version of the object&#39;s orientation.<br>Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest.
<br>(More logical orientations can be suggested).<br><br>I plan to add: 2 vertice (connected or not) =&gt; edge orientation , 3 vertice = face orientation<br><br>Differences from the patch:<br>- orientations no longer link back to the object they came from, everything is copy on creation.
<br>- orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)<br><br>Modified Paths:<br>--------------<br> &nbsp; &nbsp;trunk/blender/source/blender/blenkernel/intern/scene.c
<br> &nbsp; &nbsp;trunk/blender/source/blender/blenloader/intern/readfile.c<br> &nbsp; &nbsp;trunk/blender/source/blender/blenloader/intern/writefile.c<br> &nbsp; &nbsp;trunk/blender/source/blender/include/BIF_space.h<br> &nbsp; &nbsp;trunk/blender/source/blender/include/BIF_transform.h
<br> &nbsp; &nbsp;trunk/blender/source/blender/include/blendef.h<br> &nbsp; &nbsp;trunk/blender/source/blender/include/butspace.h<br> &nbsp; &nbsp;trunk/blender/source/blender/include/transform.h<br> &nbsp; &nbsp;trunk/blender/source/blender/makesdna/DNA_scene_types.h
<br> &nbsp; &nbsp;trunk/blender/source/blender/makesdna/DNA_view3d_types.h<br> &nbsp; &nbsp;trunk/blender/source/blender/src/drawview.c<br> &nbsp; &nbsp;trunk/blender/source/blender/src/header_info.c<br> &nbsp; &nbsp;trunk/blender/source/blender/src/header_view3d.c
<br> &nbsp; &nbsp;trunk/blender/source/blender/src/space.c<br> &nbsp; &nbsp;trunk/blender/source/blender/src/transform.c<br> &nbsp; &nbsp;trunk/blender/source/blender/src/transform_constraints.c<br> &nbsp; &nbsp;trunk/blender/source/blender/src/transform_manipulator.c
<br><br>Modified: trunk/blender/source/blender/blenkernel/intern/scene.c<br>===================================================================<br>--- trunk/blender/source/blender/blenkernel/intern/scene.c &nbsp; &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)
<br>+++ trunk/blender/source/blender/blenkernel/intern/scene.c &nbsp; &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -153,6 +153,7 @@<br> &nbsp; &nbsp; &nbsp; &nbsp;}<br><br> &nbsp; &nbsp; &nbsp; &nbsp;BLI_freelistN(&amp;sce-&gt;markers);<br>+ &nbsp; &nbsp; &nbsp; BLI_freelistN(&amp;sce-&gt;transform_spaces);
<br> &nbsp; &nbsp; &nbsp; &nbsp;BLI_freelistN(&amp;sce-&gt;r.layers);<br><br> &nbsp; &nbsp; &nbsp; &nbsp;if(sce-&gt;toolsettings){<br><br>Modified: trunk/blender/source/blender/blenloader/intern/readfile.c<br>===================================================================
<br>--- trunk/blender/source/blender/blenloader/intern/readfile.c &nbsp; 2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/blenloader/intern/readfile.c &nbsp; 2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -3457,6 +3457,7 @@
<br> &nbsp; &nbsp; &nbsp; &nbsp;}<br><br> &nbsp; &nbsp; &nbsp; &nbsp;link_list(fd, &amp;(sce-&gt;markers));<br>+ &nbsp; &nbsp; &nbsp; link_list(fd, &amp;(sce-&gt;transform_spaces));<br> &nbsp; &nbsp; &nbsp; &nbsp;link_list(fd, &amp;(sce-&gt;r.layers));<br><br> &nbsp; &nbsp; &nbsp; &nbsp;sce-&gt;nodetree= newdataadr(fd, sce-&gt;nodetree);
<br><br>Modified: trunk/blender/source/blender/blenloader/intern/writefile.c<br>===================================================================<br>--- trunk/blender/source/blender/blenloader/intern/writefile.c &nbsp;2008-01-13 18:13:39 UTC (rev 13222)
<br>+++ trunk/blender/source/blender/blenloader/intern/writefile.c &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -1401,6 +1401,7 @@<br> &nbsp; &nbsp; &nbsp; &nbsp;MetaStack *ms;<br> &nbsp; &nbsp; &nbsp; &nbsp;Strip *strip;<br> &nbsp; &nbsp; &nbsp; &nbsp;TimeMarker *marker;<br>+ &nbsp; &nbsp; &nbsp; TransformOrientation *ts;
<br> &nbsp; &nbsp; &nbsp; &nbsp;SceneRenderLayer *srl;<br> &nbsp; &nbsp; &nbsp; &nbsp;int a;<br><br>@@ -1505,6 +1506,10 @@<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for(marker= sce-&gt;markers.first; marker; marker= marker-&gt;next)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writestruct(wd, DATA, &quot;TimeMarker&quot;, 1, marker);
<br><br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* writing dynamic list of TransformOrientations to the blend file */<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(ts = sce-&gt;transform_spaces.first; ts; ts = ts-&gt;next)<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; writestruct(wd, DATA, &quot;TransformOrientation&quot;, 1, ts);
<br>+<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for(srl= sce-&gt;r.layers.first; srl; srl= srl-&gt;next)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writestruct(wd, DATA, &quot;SceneRenderLayer&quot;, 1, srl);<br><br><br>Modified: trunk/blender/source/blender/include/BIF_space.h
<br>===================================================================<br>--- trunk/blender/source/blender/include/BIF_space.h &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/include/BIF_space.h &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)
<br>@@ -55,6 +55,7 @@<br>&nbsp;#define VIEW3D_HANDLER_OBJECT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3<br>&nbsp;#define VIEW3D_HANDLER_PREVIEW &nbsp; &nbsp; &nbsp; &nbsp; 4<br>&nbsp;#define VIEW3D_HANDLER_MULTIRES &nbsp; &nbsp; &nbsp; &nbsp; 5<br>+#define VIEW3D_HANDLER_TRANSFORM &nbsp; &nbsp; &nbsp; 6<br><br>&nbsp;/* ipo handler codes */
<br>&nbsp;#define IPO_HANDLER_PROPERTIES 20<br><br>Modified: trunk/blender/source/blender/include/BIF_transform.h<br>===================================================================<br>--- trunk/blender/source/blender/include/BIF_transform.h &nbsp; &nbsp; &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)
<br>+++ trunk/blender/source/blender/include/BIF_transform.h &nbsp; &nbsp; &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -81,6 +81,8 @@<br><br>&nbsp;struct TransInfo;<br>&nbsp;struct ScrArea;<br>+struct Base;<br>+struct Scene;<br><br>&nbsp;struct TransInfo * BIF_GetTransInfo(void);
<br>&nbsp;void BIF_setSingleAxisConstraint(float vec[3], char *text);<br>@@ -88,6 +90,18 @@<br>&nbsp;void BIF_setLocalAxisConstraint(char axis, char *text);<br>&nbsp;void BIF_setLocalLockConstraint(char axis, char *text);<br><br>+struct TransformOrientation;
<br>+<br>+void BIF_clearTransformOrientation(void);<br>+void BIF_removeTransformOrientation(struct TransformOrientation *ts);<br>+void BIF_manageTransformOrientation(int confirm, int set);<br>+int BIF_menuselectTransformOrientation(void);
<br>+void BIF_selectTransformOrientation(struct TransformOrientation *ts);<br>+void BIF_selectTransformOrientationFromIndex(int index);<br>+<br>+char * BIF_menustringTransformOrientation(); /* the returned value was allocated and needs to be freed after use */
<br>+int BIF_countTransformOrientation();<br>+<br>&nbsp;/* Drawing callbacks */<br>&nbsp;void BIF_drawConstraint(void);<br>&nbsp;void BIF_drawPropCircle(void);<br><br>Modified: trunk/blender/source/blender/include/blendef.h<br>===================================================================
<br>--- trunk/blender/source/blender/include/blendef.h &nbsp; &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/include/blendef.h &nbsp; &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -237,6 +237,7 @@<br>&nbsp;#define B_SEL_PATH &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 166
<br>&nbsp;#define B_SEL_POINT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;167<br>&nbsp;#define B_SEL_END &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;168<br>+#define B_MAN_MODE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 169<br><br>&nbsp;/* IPO: 200 */<br>&nbsp;#define B_IPOHOME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;201<br><br>Modified: trunk/blender/source/blender/include/butspace.h
<br>===================================================================<br>--- trunk/blender/source/blender/include/butspace.h &nbsp; &nbsp; 2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/include/butspace.h &nbsp; &nbsp; 2008-01-13 18:24:09 UTC (rev 13223)
<br>@@ -170,6 +170,8 @@<br>&nbsp;#define B_ARMATUREPANEL3 &nbsp; &nbsp; &nbsp; 1013<br>&nbsp;#define B_OBJECTPANELSCALE &nbsp; &nbsp; 1014<br>&nbsp;#define B_OBJECTPANELDIMS &nbsp; &nbsp; &nbsp;1015<br>+#define B_TRANSFORMSPACEADD &nbsp; &nbsp;1016<br>+#define B_TRANSFORMSPACECLEAR &nbsp;1017
<br><br>&nbsp;/* *********************** */<br>&nbsp;#define B_LAMPBUTS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1200<br><br>Modified: trunk/blender/source/blender/include/transform.h<br>===================================================================<br>--- trunk/blender/source/blender/include/transform.h &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)
<br>+++ trunk/blender/source/blender/include/transform.h &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -463,6 +463,15 @@<br>&nbsp;void applyNumInput(NumInput *n, float *vec);<br>&nbsp;char handleNumInput(NumInput *n, unsigned short event);
<br><br>+/*********************** TransSpace ******************************/<br>+<br>+int manageObjectSpace(int confirm, int set);<br>+int manageMeshSpace(int confirm, int set);<br>+<br>+int addMatrixSpace(float mat[3][3], char name[]);
<br>+int addObjectSpace(struct Object *ob);<br>+void applyTransformOrientation(void);<br>+<br>&nbsp;#endif<br><br><br><br>Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h<br>===================================================================
<br>--- trunk/blender/source/blender/makesdna/DNA_scene_types.h &nbsp; &nbsp; 2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h &nbsp; &nbsp; 2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -333,6 +333,12 @@
<br> &nbsp; &nbsp; &nbsp; &nbsp;int draw_timed;<br>&nbsp;} ParticleEditSettings;<br><br>+typedef struct TransformOrientation {<br>+ &nbsp; &nbsp; &nbsp; struct TransformOrientation *next, *prev;<br>+ &nbsp; &nbsp; &nbsp; char name[36];<br>+ &nbsp; &nbsp; &nbsp; float mat[3][3];<br>+} TransformOrientation;
<br>+<br>&nbsp;typedef struct ToolSettings {<br> &nbsp; &nbsp; &nbsp; &nbsp;/* Subdivide Settings */<br> &nbsp; &nbsp; &nbsp; &nbsp;short cornertype;<br>@@ -366,7 +372,7 @@<br> &nbsp; &nbsp; &nbsp; &nbsp;/* Auto-IK */<br> &nbsp; &nbsp; &nbsp; &nbsp;short autoik_chainlen;<br><br>- &nbsp; &nbsp; &nbsp; /* Image Paint (8 byte aligned please!) */
<br>+ &nbsp; &nbsp; &nbsp; /* Image Paint (8 byttse aligned please!) */<br> &nbsp; &nbsp; &nbsp; &nbsp;struct ImagePaintSettings imapaint;<br><br> &nbsp; &nbsp; &nbsp; &nbsp;/* Particle Editing */<br>@@ -494,6 +500,7 @@<br> &nbsp; &nbsp; &nbsp; &nbsp;ScriptLink scriptlink;<br><br> &nbsp; &nbsp; &nbsp; &nbsp;ListBase markers;
<br>+ &nbsp; &nbsp; &nbsp; ListBase transform_spaces;<br><br> &nbsp; &nbsp; &nbsp; &nbsp;short jumpframe, pad1;<br> &nbsp; &nbsp; &nbsp; &nbsp;short snap_flag, snap_target;<br><br>Modified: trunk/blender/source/blender/makesdna/DNA_view3d_types.h<br>===================================================================
<br>--- trunk/blender/source/blender/makesdna/DNA_view3d_types.h &nbsp; &nbsp;2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/makesdna/DNA_view3d_types.h &nbsp; &nbsp;2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -200,6 +200,7 @@
<br>&nbsp;#define V3D_MANIP_LOCAL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1<br>&nbsp;#define V3D_MANIP_NORMAL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2<br>&nbsp;#define V3D_MANIP_VIEW &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 3<br>+#define V3D_MANIP_CUSTOM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 4 /* anything of value 4 or higher is custom */
<br><br>&nbsp;/* View3d-&gt;twflag */<br> &nbsp; &nbsp;/* USE = user setting, DRAW = based on selection */<br><br>Modified: trunk/blender/source/blender/src/drawview.c<br>===================================================================
<br>--- trunk/blender/source/blender/src/drawview.c 2008-01-13 18:13:39 UTC (rev 13222)<br>+++ trunk/blender/source/blender/src/drawview.c 2008-01-13 18:24:09 UTC (rev 13223)<br>@@ -2228,9 +2228,83 @@<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;allqueue(REDRAWVIEW3D, 1);
<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;<br>+ &nbsp; &nbsp; &nbsp; case B_TRANSFORMSPACEADD:<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BIF_manageTransformOrientation(1, 0);<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; allqueue(REDRAWVIEW3D, 1);<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br>+ &nbsp; &nbsp; &nbsp; case B_TRANSFORMSPACECLEAR:
<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BIF_clearTransformOrientation();<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; allqueue(REDRAWVIEW3D, 1);<br> &nbsp; &nbsp; &nbsp; &nbsp;}<br>&nbsp;}<br><br>+void removeTransformOrientation_func(void *target, void *unused)<br>+{<br>+ &nbsp; &nbsp; &nbsp; BIF_removeTransformOrientation((TransformOrientation *) target);
<br>+}<br>+<br>+void selectTransformOrientation_func(void *target, void *unused)<br>+{<br>+ &nbsp; &nbsp; &nbsp; BIF_selectTransformOrientation((TransformOrientation *) target);<br>+}<br>+<br>+static void view3d_panel_transform_spaces(short cntrl)
<br>+{<br>+ &nbsp; &nbsp; &nbsp; ListBase *transform_spaces = &amp;G.scene-&gt;transform_spaces;<br>+ &nbsp; &nbsp; &nbsp; TransformOrientation *ts = transform_spaces-&gt;first;<br>+ &nbsp; &nbsp; &nbsp; uiBlock *block;<br>+ &nbsp; &nbsp; &nbsp; uiBut *but;<br>+ &nbsp; &nbsp; &nbsp; int xco = 20, yco = 70, height = 140;
<br>+ &nbsp; &nbsp; &nbsp; int index;<br>+<br>+ &nbsp; &nbsp; &nbsp; block= uiNewBlock(&amp;curarea-&gt;uiblocks, &quot;view3d_panel_transform&quot;, UI_EMBOSS, UI_HELV, curarea-&gt;win);<br>+ &nbsp; &nbsp; &nbsp; uiPanelControl(UI_PNL_SOLID | UI_PNL_CLOSE &nbsp;| cntrl);
<br>+ &nbsp; &nbsp; &nbsp; uiSetPanelHandler(VIEW3D_HANDLER_TRANSFORM); &nbsp;// for close and esc<br>+<br>+ &nbsp; &nbsp; &nbsp; if(uiNewPanel(curarea, block, &quot;Transform Orientations&quot;, &quot;View3d&quot;, 10, 230, 318, height)==0) return;<br>+<br>
+ &nbsp; &nbsp; &nbsp; uiNewPanelHeight(block, height);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiBlockBeginAlign(block);<br>+<br>+ &nbsp; &nbsp; &nbsp; if (G.obedit)<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiDefBut(block, BUT, B_TRANSFORMSPACEADD, &quot;Add&quot;, xco,120,80,20, 0, 0, 0, 0, 0, &quot;Add the selected element as a Transform Orientation&quot;);
<br>+ &nbsp; &nbsp; &nbsp; else<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiDefBut(block, BUT, B_TRANSFORMSPACEADD, &quot;Add&quot;, xco,120,80,20, 0, 0, 0, 0, 0, &quot;Add the active object as a Transform Orientation&quot;);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiDefBut(block, BUT, B_TRANSFORMSPACECLEAR, &quot;Clear&quot;, xco + 80,120,80,20, 0, 0, 0, 0, 0, &quot;Removal all Transform Orientations&quot;);
<br>+<br>+ &nbsp; &nbsp; &nbsp; uiBlockEndAlign(block);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiPanelPush(block);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiBlockBeginAlign(block);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiDefButS(block, ROW, REDRAWHEADERS, &quot;Global&quot;, &nbsp;xco, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;90, 40,20, &amp;G.vd-&gt;twmode, 
5.0, (float)V3D_MANIP_GLOBAL,0, 0, &quot;Global Transform Orientation&quot;);<br>+ &nbsp; &nbsp; &nbsp; uiDefButS(block, ROW, REDRAWHEADERS, &quot;Local&quot;, &nbsp; xco + 40, &nbsp; &nbsp; &nbsp; 90, 40,20, &amp;G.vd-&gt;twmode, 5.0, (float)V3D_MANIP_LOCAL, 0, 0, &quot;Local Transform Orientation&quot;);
<br>+ &nbsp; &nbsp; &nbsp; uiDefButS(block, ROW, REDRAWHEADERS, &quot;Normal&quot;, &nbsp;xco + 80, &nbsp; &nbsp; &nbsp; 90, 40,20, &amp;G.vd-&gt;twmode, 5.0, (float)V3D_MANIP_NORMAL,0, 0, &quot;Normal Transform Orientation&quot;);<br>+ &nbsp; &nbsp; &nbsp; uiDefButS(block, ROW, REDRAWHEADERS, &quot;View&quot;, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xco + 120, &nbsp; &nbsp; &nbsp;90, 40,20, &amp;G.vd-&gt;twmode, 
5.0, (float)V3D_MANIP_VIEW, &nbsp; 0, 0, &quot;View Transform Orientation&quot;);<br>+<br>+ &nbsp; &nbsp; &nbsp; for (index = V3D_MANIP_CUSTOM, ts = transform_spaces-&gt;first ; ts ; ts = ts-&gt;next, index++) {<br>+<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BIF_ThemeColor(TH_BUT_ACTION);
<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; but = uiDefIconButS(block,ROW, REDRAWHEADERS, ICON_RIGHTARROW_THIN, xco,yco,XIC,YIC, &amp;G.vd-&gt;twmode, 5.0, (float)index, 0, 0, &quot;Use this Custom Transform Orientation&quot;);<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiButSetFunc(but, selectTransformOrientation_func, ts, NULL);
<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiDefBut(block, TEX, 0, &quot;&quot;, xco+=XIC, yco,100+XIC,20, &amp;ts-&gt;name, 0, 30, 0, 0, &quot;Edits the name of this Transform Orientation&quot;);<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; but = uiDefIconBut(block, BUT, REDRAWVIEW3D, ICON_X, xco+=100+XIC,yco,XIC,YIC, 0, 0, 0, 0, 0, &quot;Deletes this Transform Orientation&quot;);
<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uiButSetFunc(but, removeTransformOrientation_func, ts, NULL);<br>+<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; xco = 20;<br>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yco -= 25;<br>+ &nbsp; &nbsp; &nbsp; }<br>+ &nbsp; &nbsp; &nbsp; uiBlockEndAlign(block);<br>+<br>+ &nbsp; &nbsp; &nbsp; uiPanelPop(block);
<br>+<br><br>@@ Diff output truncated at 10240 characters. @@<br><br>_______________________________________________<br>Bf-blender-cvs mailing list<br><a href="mailto:Bf-blender-cvs@blender.org">Bf-blender-cvs@blender.org
</a><br><a href="http://lists.blender.org/mailman/listinfo/bf-blender-cvs" target="_blank">http://lists.blender.org/mailman/listinfo/bf-blender-cvs</a><br></blockquote></div><br>