fix for [#7430] No way to back out of a PupStrInput() dialog
This commit is contained in:
@@ -47,7 +47,7 @@ int okee (char *fmt, ...);
|
|||||||
|
|
||||||
short button (short *var, short min, short max, char *str);
|
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 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_buts (unsigned int *lay, char *title);
|
||||||
int movetolayer_short_buts (short *lay, char *title);
|
int movetolayer_short_buts (short *lay, char *title);
|
||||||
|
|||||||
@@ -291,13 +291,14 @@ short button(short *var, short min, short max, char *str)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
short sbutton(char *var, float min, float max, char *str)
|
short sbutton(char *var, short min, short max, char *str)
|
||||||
{
|
{
|
||||||
uiBlock *block;
|
uiBlock *block;
|
||||||
ListBase listb={0, 0};
|
ListBase listb={0, 0};
|
||||||
short x1,y1;
|
short x1,y1;
|
||||||
short mval[2], ret=0;
|
short mval[2], ret=0;
|
||||||
|
char *editvar = NULL; /* dont edit the original text, incase we cancel the popup */
|
||||||
|
|
||||||
if(min>max) min= max;
|
if(min>max) min= max;
|
||||||
|
|
||||||
getmouseco_sc(mval);
|
getmouseco_sc(mval);
|
||||||
@@ -313,7 +314,10 @@ short sbutton(char *var, float min, float max, char *str)
|
|||||||
x1=mval[0]-250;
|
x1=mval[0]-250;
|
||||||
y1=mval[1]-20;
|
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, "");
|
uiDefBut(block, BUT, 32767, "OK", x1+236,y1+10,25,20, NULL, 0, 0, 0, 0, "");
|
||||||
|
|
||||||
uiBoundsBlock(block, 5);
|
uiBoundsBlock(block, 5);
|
||||||
@@ -321,7 +325,12 @@ short sbutton(char *var, float min, float max, char *str)
|
|||||||
mainqenter_ext(BUT_ACTIVATE, 32766, 0); /* note, button id '32766' is asking for errors some day! */
|
mainqenter_ext(BUT_ACTIVATE, 32766, 0); /* note, button id '32766' is asking for errors some day! */
|
||||||
ret= uiDoBlocks(&listb, 0, 0);
|
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;
|
return 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user