[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14476] trunk/blender/source/blender: fix for [#7430] No way to back out of a PupStrInput() dialog

Campbell Barton ideasman42 at gmail.com
Sat Apr 19 13:44:10 CEST 2008


Revision: 14476
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14476
Author:   campbellbarton
Date:     2008-04-19 13:44:09 +0200 (Sat, 19 Apr 2008)

Log Message:
-----------
fix for [#7430] No way to back out of a PupStrInput() dialog

Modified Paths:
--------------
    trunk/blender/source/blender/include/BIF_toolbox.h
    trunk/blender/source/blender/src/toolbox.c

Modified: trunk/blender/source/blender/include/BIF_toolbox.h
===================================================================
--- trunk/blender/source/blender/include/BIF_toolbox.h	2008-04-19 11:26:51 UTC (rev 14475)
+++ trunk/blender/source/blender/include/BIF_toolbox.h	2008-04-19 11:44:09 UTC (rev 14476)
@@ -47,7 +47,7 @@
 
 short button (short *var, short min, short max, char *str);
 short fbutton (float *var, float min, float max, float a1, float a2, char *str);
-short sbutton (char *var, float min, float max, char *str);	/* __NLA */
+short sbutton (char *var, short min, short max, char *str);	/* __NLA */
 
 int movetolayer_buts (unsigned int *lay, char *title);
 int movetolayer_short_buts (short *lay, char *title);

Modified: trunk/blender/source/blender/src/toolbox.c
===================================================================
--- trunk/blender/source/blender/src/toolbox.c	2008-04-19 11:26:51 UTC (rev 14475)
+++ trunk/blender/source/blender/src/toolbox.c	2008-04-19 11:44:09 UTC (rev 14476)
@@ -291,13 +291,14 @@
 	return 0;
 }
 
-short sbutton(char *var, float min, float max, char *str)
+short sbutton(char *var, short min, short max, char *str)
 {
 	uiBlock *block;
 	ListBase listb={0, 0};
 	short x1,y1;
 	short mval[2], ret=0;
-
+	char *editvar = NULL; /* dont edit the original text, incase we cancel the popup */
+	
 	if(min>max) min= max;
 
 	getmouseco_sc(mval);
@@ -313,7 +314,10 @@
 	x1=mval[0]-250; 
 	y1=mval[1]-20; 
 	
-	uiDefButC(block, TEX, 32766, str,	x1+5,y1+10,225,20, var,(float)min,(float)max, 0, 0, "");
+	editvar = MEM_callocN(max, "sbutton");
+	BLI_strncpy(editvar, var, max);
+	
+	uiDefButC(block, TEX, 32766, str,	x1+5,y1+10,225,20, editvar,(float)min,(float)max, 0, 0, "");
 	uiDefBut(block, BUT, 32767, "OK",	x1+236,y1+10,25,20, NULL, 0, 0, 0, 0, "");
 
 	uiBoundsBlock(block, 5);
@@ -321,7 +325,12 @@
 	mainqenter_ext(BUT_ACTIVATE, 32766, 0);	/* note, button id '32766' is asking for errors some day! */
 	ret= uiDoBlocks(&listb, 0, 0);
 
-	if(ret==UI_RETURN_OK) return 1;
+	if(ret==UI_RETURN_OK) {
+		BLI_strncpy(var, editvar, max);
+		MEM_freeN(editvar);
+		return 1;
+	}
+	MEM_freeN(editvar);
 	return 0;
 	
 }





More information about the Bf-blender-cvs mailing list