[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50668] trunk/blender/source/blender/ editors/space_node/drawnode.c: Fix drawing of output slots with utf-8 names .

Sv. Lockal lockalsash at gmail.com
Sun Sep 16 21:06:17 CEST 2012


Revision: 50668
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50668
Author:   lockal
Date:     2012-09-16 19:06:17 +0000 (Sun, 16 Sep 2012)
Log Message:
-----------
Fix drawing of output slots with utf-8 names. Also always show last letters in already clipped output slots names

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/drawnode.c

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2012-09-16 18:05:32 UTC (rev 50667)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2012-09-16 19:06:17 UTC (rev 50668)
@@ -200,25 +200,22 @@
                                      const char *name, int UNUSED(x), int UNUSED(y), int UNUSED(width))
 {
 	SpaceNode *snode = CTX_wm_space_node(C);
-	float slen;
-	int ofs = 0;
 	const char *ui_name = IFACE_(name);
-	int len = strlen(ui_name);
+	float slen;
+
 	UI_ThemeColor(TH_TEXT);
 	slen = (UI_GetStringWidth(ui_name) + NODE_MARGIN_X) * snode->aspect_sqrt;
-	while (slen > node->width && ofs < len) {
-		ofs++;
-		slen = (UI_GetStringWidth(ui_name + ofs) + NODE_MARGIN_X) * snode->aspect_sqrt;
+	while (slen > node->width && *ui_name) {
+		ui_name = BLI_str_find_next_char_utf8(ui_name, NULL);
+		slen = (UI_GetStringWidth(ui_name) + NODE_MARGIN_X) * snode->aspect_sqrt;
 	}
-
-	if (ofs < len) {
-		uiDefBut(block, LABEL, 0, ui_name + ofs,
-		         (int)(sock->locx - slen), (int)(sock->locy - 9.0f),
-		         (short)(node->width - NODE_DY), (short)NODE_DY,
-		         NULL, 0, 0, 0, 0, "");
+	
+	if (*ui_name) {
+		uiDefBut(block, LABEL, 0, ui_name,
+				 (int)(sock->locx - slen), (int)(sock->locy - 9.0f),
+				 (short)slen, (short)NODE_DY,
+				 NULL, 0, 0, 0, 0, "");
 	}
-
-	(void)snode;
 }
 
 /* ****************** BASE DRAW FUNCTIONS FOR NEW OPERATOR NODES ***************** */




More information about the Bf-blender-cvs mailing list