forked from bartvdbraak/blender
- New Blender.Draw method by Campbell Barton (Cam / ideasman):
PupStrInput, a wrapper for the Blender String popup (thanks!) - Fixed bug #1374 reported by Gabriel Beloin (gabio, thanks too): http://projects.blender.org/tracker/?func=detail&atid=125&aid=1374&group_id=9 There was a minor mistake in the import menu: vrml called dxf and vice-versa and shortcuts were wrong (removed them). - Doc updates, minor updates elsewhere.
This commit is contained in:
parent
23165676b7
commit
ddec3db89d
@ -15,7 +15,7 @@ Tip: 'Export to AC3D (.ac) format.'
|
|||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# AC3DExport version 2.34
|
# AC3DExport version 2.34
|
||||||
# Program versions: Blender 2.34 and AC3Db files (means version 0xb)
|
# Program versions: Blender 2.34 and AC3Db files (means version 0xb)
|
||||||
# new: minor tweaks, exporter didn't change
|
# new: minor cosmetic tweaks, exporter itself didn't change
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
#
|
#
|
||||||
@ -398,10 +398,12 @@ def b_event(evt):
|
|||||||
Draw.Redraw(1)
|
Draw.Redraw(1)
|
||||||
elif evt == 10:
|
elif evt == 10:
|
||||||
ARG = 'all'
|
ARG = 'all'
|
||||||
Blender.Window.FileSelector(fs_callback, "AC3D Export")
|
fname = Blender.sys.makename(ext=".ac")
|
||||||
|
Blender.Window.FileSelector(fs_callback, "Export AC3D", fname)
|
||||||
elif evt == 11:
|
elif evt == 11:
|
||||||
ARG = 'sel'
|
ARG = 'sel'
|
||||||
Blender.Window.FileSelector(fs_callback, "AC3D Export")
|
fname = Blender.sys.makename(ext=".ac")
|
||||||
|
Blender.Window.FileSelector(fs_callback, "Export AC3D", fname)
|
||||||
elif evt == 20:
|
elif evt == 20:
|
||||||
HELPME = 1 - HELPME
|
HELPME = 1 - HELPME
|
||||||
Draw.Redraw(1)
|
Draw.Redraw(1)
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
#include "BLI_winstuff.h"
|
#include "BLI_winstuff.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "BLI_blenlib.h"
|
||||||
#include "MEM_guardedalloc.h"
|
#include "MEM_guardedalloc.h"
|
||||||
|
|
||||||
#include "BMF_Api.h"
|
#include "BMF_Api.h"
|
||||||
@ -107,9 +108,10 @@ static PyObject *Method_String (PyObject * self, PyObject * args);
|
|||||||
static PyObject *Method_GetStringWidth (PyObject * self, PyObject * args);
|
static PyObject *Method_GetStringWidth (PyObject * self, PyObject * args);
|
||||||
static PyObject *Method_Text (PyObject * self, PyObject * args);
|
static PyObject *Method_Text (PyObject * self, PyObject * args);
|
||||||
static PyObject *Method_PupMenu (PyObject * self, PyObject * args);
|
static PyObject *Method_PupMenu (PyObject * self, PyObject * args);
|
||||||
/* next two by Campbell: */
|
/* next three by Campbell: */
|
||||||
static PyObject *Method_PupIntInput (PyObject * self, PyObject * args);
|
static PyObject *Method_PupIntInput (PyObject * self, PyObject * args);
|
||||||
static PyObject *Method_PupFloatInput (PyObject * self, PyObject * args);
|
static PyObject *Method_PupFloatInput (PyObject * self, PyObject * args);
|
||||||
|
static PyObject *Method_PupStrInput (PyObject * self, PyObject * args);
|
||||||
|
|
||||||
static uiBlock *Get_uiBlock (void);
|
static uiBlock *Get_uiBlock (void);
|
||||||
static void py_slider_update (void *butv, void *data2_unused);
|
static void py_slider_update (void *butv, void *data2_unused);
|
||||||
@ -150,7 +152,8 @@ static char Method_Button_doc[] =
|
|||||||
(event) The event number to pass to the button event function when activated\n\
|
(event) The event number to pass to the button event function when activated\n\
|
||||||
(x, y) The lower left coordinate of the button\n\
|
(x, y) The lower left coordinate of the button\n\
|
||||||
(width, height) The button width and height\n\
|
(width, height) The button width and height\n\
|
||||||
[tooltip=] The button's tooltip";
|
[tooltip=] The button's tooltip\n\n\
|
||||||
|
This function can be called as Button() or PushButton().";
|
||||||
|
|
||||||
static char Method_Menu_doc[] =
|
static char Method_Menu_doc[] =
|
||||||
"(name, event, x, y, width, height, default, [tooltip]) - Create a new Menu \
|
"(name, event, x, y, width, height, default, [tooltip]) - Create a new Menu \
|
||||||
@ -251,18 +254,25 @@ Ex: Draw.PupMenu('OK?%t|QUIT BLENDER') # should be familiar ...";
|
|||||||
|
|
||||||
static char Method_PupIntInput_doc[] =
|
static char Method_PupIntInput_doc[] =
|
||||||
"(text, default, min, max) - Display an int pop-up input.\n\
|
"(text, default, min, max) - Display an int pop-up input.\n\
|
||||||
(text) - text string to display at the button;\n\
|
(text) - text string to display on the button;\n\
|
||||||
(default, min, max) - the default, min and max int values for the button;\n\
|
(default, min, max) - the default, min and max int values for the button;\n\
|
||||||
Return the value selected or None";
|
Return the user input value or None on user exit";
|
||||||
|
|
||||||
static char Method_PupFloatInput_doc[] =
|
static char Method_PupFloatInput_doc[] =
|
||||||
"(text, default, min, max, clickStep, floatLen) - Display a float pop-up input.\n\
|
"(text, default, min, max, clickStep, floatLen) - Display a float pop-up input.\n\
|
||||||
(text) - text string to display at the button;\n\
|
(text) - text string to display on the button;\n\
|
||||||
(default, min, max) - the default, min and max float values for the button;\n\
|
(default, min, max) - the default, min and max float values for the button;\n\
|
||||||
(clickStep) - float increment/decrement for each click on the button arrows;\n\
|
(clickStep) - float increment/decrement for each click on the button arrows;\n\
|
||||||
(floatLen) - an integer defining the precision (number of decimal places) of \n\
|
(floatLen) - an integer defining the precision (number of decimal places) of \n\
|
||||||
the float value show.\n\
|
the float value show.\n\
|
||||||
Return the value selected or None";
|
Return the user input value or None on user exit";
|
||||||
|
|
||||||
|
static char Method_PupStrInput_doc[] =
|
||||||
|
"(text, default, max = 20) - Display a float pop-up input.\n\
|
||||||
|
(text) - text string to display on the button;\n\
|
||||||
|
(default) - the initial string to display (truncated to 'max' chars);\n\
|
||||||
|
(max = 20) - The maximum number of chars the user can input;\n\
|
||||||
|
Return the user input value or None on user exit";
|
||||||
|
|
||||||
static char Method_Exit_doc[] = "() - Exit the windowing interface";
|
static char Method_Exit_doc[] = "() - Exit the windowing interface";
|
||||||
|
|
||||||
@ -293,10 +303,12 @@ static struct PyMethodDef Draw_methods[] = {
|
|||||||
MethodDef (PupMenu),
|
MethodDef (PupMenu),
|
||||||
MethodDef (PupIntInput),
|
MethodDef (PupIntInput),
|
||||||
MethodDef (PupFloatInput),
|
MethodDef (PupFloatInput),
|
||||||
|
MethodDef (PupStrInput),
|
||||||
MethodDef (Exit),
|
MethodDef (Exit),
|
||||||
MethodDef (Redraw),
|
MethodDef (Redraw),
|
||||||
MethodDef (Draw),
|
MethodDef (Draw),
|
||||||
MethodDef (Register),
|
MethodDef (Register),
|
||||||
|
{"PushButton", Method_Button, METH_VARARGS, Method_Button_doc},
|
||||||
{NULL, NULL,0,NULL}
|
{NULL, NULL,0,NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -356,7 +368,7 @@ static int Button_setattr (PyObject *self, char *name, PyObject *v)
|
|||||||
/* if the length of the new string is the same as */
|
/* if the length of the new string is the same as */
|
||||||
/* the old one, just copy, else delete and realloc. */
|
/* the old one, just copy, else delete and realloc. */
|
||||||
if (but->slen == strlen (newstr)) {
|
if (but->slen == strlen (newstr)) {
|
||||||
strncpy (but->val.asstr, newstr, but->slen);
|
BLI_strncpy (but->val.asstr, newstr, but->slen);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
MEM_freeN (but->val.asstr);
|
MEM_freeN (but->val.asstr);
|
||||||
@ -1084,10 +1096,10 @@ static PyObject *Method_PupMenu (PyObject *self, PyObject *args)
|
|||||||
|
|
||||||
static PyObject *Method_PupIntInput (PyObject *self, PyObject *args)
|
static PyObject *Method_PupIntInput (PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
char *text;
|
char *text = NULL;
|
||||||
int min, max;
|
int min = 0, max = 1;
|
||||||
short var;
|
short var = 0;
|
||||||
PyObject *ret;
|
PyObject *ret = NULL;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple (args, "s|hii", &text, &var, &min, &max))
|
if (!PyArg_ParseTuple (args, "s|hii", &text, &var, &min, &max))
|
||||||
return EXPP_ReturnPyObjError (PyExc_TypeError,
|
return EXPP_ReturnPyObjError (PyExc_TypeError,
|
||||||
@ -1105,9 +1117,9 @@ static PyObject *Method_PupIntInput (PyObject *self, PyObject *args)
|
|||||||
|
|
||||||
static PyObject *Method_PupFloatInput (PyObject *self, PyObject *args)
|
static PyObject *Method_PupFloatInput (PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
char *text;
|
char *text = NULL;
|
||||||
float min, max, var, a1, a2;
|
float min = 0, max = 1, var = 0, a1 = 10, a2 = 2;
|
||||||
PyObject *ret;
|
PyObject *ret = NULL;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple (args, "s|fffff", &text, &var, &min, &max, &a1, &a2))
|
if (!PyArg_ParseTuple (args, "s|fffff", &text, &var, &min, &max, &a1, &a2))
|
||||||
return EXPP_ReturnPyObjError (PyExc_TypeError,
|
return EXPP_ReturnPyObjError (PyExc_TypeError,
|
||||||
@ -1123,6 +1135,39 @@ static PyObject *Method_PupFloatInput (PyObject *self, PyObject *args)
|
|||||||
return EXPP_ReturnPyObjError (PyExc_MemoryError, "couldn't create a PyFloat");
|
return EXPP_ReturnPyObjError (PyExc_MemoryError, "couldn't create a PyFloat");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *Method_PupStrInput (PyObject *self, PyObject *args)
|
||||||
|
{
|
||||||
|
char *text = NULL, *textMsg = NULL;
|
||||||
|
char tmp[101];
|
||||||
|
char max = 20;
|
||||||
|
PyObject *ret = NULL;
|
||||||
|
|
||||||
|
if (!PyArg_ParseTuple (args, "ss|b", &textMsg, &text, &max))
|
||||||
|
return EXPP_ReturnPyObjError (PyExc_TypeError,
|
||||||
|
"expected 2 strings and 1 int");
|
||||||
|
|
||||||
|
if ((max <= 0) || (max > 100))
|
||||||
|
return EXPP_ReturnPyObjError (PyExc_AttributeError,
|
||||||
|
"max string length value must be in the range [1, 100].");
|
||||||
|
|
||||||
|
/* copying the text string handles both cases:
|
||||||
|
* max < strlen(text) (by truncating) and
|
||||||
|
* max > strlen(text) (by expanding to strlen(tmp)) */
|
||||||
|
BLI_strncpy(tmp, text, max);
|
||||||
|
|
||||||
|
if (sbutton (tmp, 0, max, textMsg) == 0) {
|
||||||
|
Py_INCREF (Py_None);
|
||||||
|
return Py_None;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = Py_BuildValue ("s", tmp);
|
||||||
|
|
||||||
|
if (ret) return ret;
|
||||||
|
|
||||||
|
return EXPP_ReturnPyObjError(PyExc_MemoryError, "couldn't create a PyString");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PyObject *Draw_Init (void)
|
PyObject *Draw_Init (void)
|
||||||
{
|
{
|
||||||
PyObject *submodule, *dict;
|
PyObject *submodule, *dict;
|
||||||
|
@ -56,8 +56,8 @@ void initDraw (void);
|
|||||||
typedef struct _Button
|
typedef struct _Button
|
||||||
{
|
{
|
||||||
PyObject_VAR_HEAD /* required Py Macro */
|
PyObject_VAR_HEAD /* required Py Macro */
|
||||||
int type; /*@ 1 == int, 2 == float, 3 == string */
|
int type; /*@ 1 == int, 2 == float, 3 == string */
|
||||||
int slen; /*@ length of string (if type == 3) */
|
unsigned int slen; /*@ length of string (if type == 3) */
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
int asint;
|
int asint;
|
||||||
|
@ -158,7 +158,7 @@ static PyObject *M_sys_basename (PyObject *self, PyObject *args)
|
|||||||
if (n > FILE_MAXFILE)
|
if (n > FILE_MAXFILE)
|
||||||
return EXPP_ReturnPyObjError(PyExc_RuntimeError, "path too long");
|
return EXPP_ReturnPyObjError(PyExc_RuntimeError, "path too long");
|
||||||
|
|
||||||
strncpy(basename, p+1, n); /* + 1 to skip the sep */
|
BLI_strncpy(basename, p+1, n); /* + 1 to skip the sep */
|
||||||
basename[n] = '\0';
|
basename[n] = '\0';
|
||||||
return Py_BuildValue("s", basename);
|
return Py_BuildValue("s", basename);
|
||||||
}
|
}
|
||||||
@ -190,7 +190,7 @@ static PyObject *M_sys_dirname (PyObject *self, PyObject *args)
|
|||||||
if (n > FILE_MAXDIR)
|
if (n > FILE_MAXDIR)
|
||||||
return EXPP_ReturnPyObjError (PyExc_RuntimeError, "path too long");
|
return EXPP_ReturnPyObjError (PyExc_RuntimeError, "path too long");
|
||||||
|
|
||||||
strncpy(dirname, name, n);
|
BLI_strncpy(dirname, name, n);
|
||||||
dirname[n] = '\0';
|
dirname[n] = '\0';
|
||||||
return Py_BuildValue("s", dirname);
|
return Py_BuildValue("s", dirname);
|
||||||
}
|
}
|
||||||
@ -233,9 +233,9 @@ static PyObject *M_sys_splitext (PyObject *self, PyObject *args)
|
|||||||
if (n > FILE_MAXFILE || (len - n ) > FILE_MAXFILE)
|
if (n > FILE_MAXFILE || (len - n ) > FILE_MAXFILE)
|
||||||
EXPP_ReturnPyObjError(PyExc_RuntimeError, "path too long");
|
EXPP_ReturnPyObjError(PyExc_RuntimeError, "path too long");
|
||||||
|
|
||||||
strncpy(ext, dot, n);
|
BLI_strncpy(ext, dot, n);
|
||||||
ext[n] = '\0';
|
ext[n] = '\0';
|
||||||
strncpy(path, name, dot - name);
|
BLI_strncpy(path, name, dot - name);
|
||||||
path[dot - name] = '\0';
|
path[dot - name] = '\0';
|
||||||
|
|
||||||
return Py_BuildValue("ss", path, ext);
|
return Py_BuildValue("ss", path, ext);
|
||||||
@ -271,11 +271,11 @@ static PyObject *M_sys_makename(PyObject *self, PyObject *args, PyObject *kw)
|
|||||||
if (p && strip) {
|
if (p && strip) {
|
||||||
n = path + len - p - 1; /* - 1 because we don't want the sep */
|
n = path + len - p - 1; /* - 1 because we don't want the sep */
|
||||||
|
|
||||||
strncpy(basename, p+1, n); /* + 1 to skip the sep */
|
BLI_strncpy(basename, p+1, n); /* + 1 to skip the sep */
|
||||||
basename[n] = 0;
|
basename[n] = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
strncpy(basename, path, len);
|
BLI_strncpy(basename, path, len);
|
||||||
n = len;
|
n = len;
|
||||||
basename[n] = '\0';
|
basename[n] = '\0';
|
||||||
}
|
}
|
||||||
@ -291,7 +291,7 @@ static PyObject *M_sys_makename(PyObject *self, PyObject *args, PyObject *kw)
|
|||||||
if (dot) n = dot - basename;
|
if (dot) n = dot - basename;
|
||||||
else n = strlen(basename);
|
else n = strlen(basename);
|
||||||
|
|
||||||
strncpy(basename + n, ext, lenext);
|
BLI_strncpy(basename + n, ext, lenext);
|
||||||
basename[n+lenext] = '\0';
|
basename[n+lenext] = '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ The Blender.Draw submodule.
|
|||||||
Draw
|
Draw
|
||||||
====
|
====
|
||||||
|
|
||||||
|
B{New}: L{PupIntInput}, L{PupFloatInput}, L{PupStrInput}.
|
||||||
|
|
||||||
This module provides access to a B{windowing interface} in Blender. Its widgets
|
This module provides access to a B{windowing interface} in Blender. Its widgets
|
||||||
include many kinds of buttons: push, toggle, menu, number, string, slider,
|
include many kinds of buttons: push, toggle, menu, number, string, slider,
|
||||||
scrollbar, plus support for text drawing. It also includes keyboard keys and
|
scrollbar, plus support for text drawing. It also includes keyboard keys and
|
||||||
@ -73,6 +75,8 @@ not necessary to re-register the callbacks, they will stay until Draw.Exit
|
|||||||
is called. It's enough to redraw the screen when a relevant event is caught.
|
is called. It's enough to redraw the screen when a relevant event is caught.
|
||||||
Apologies for the confusion.
|
Apologies for the confusion.
|
||||||
|
|
||||||
|
@note: function Button has a new alias: L{PushButton}.
|
||||||
|
|
||||||
@warn: Inside the windowing loop (after Draw.Register() has been executed and
|
@warn: Inside the windowing loop (after Draw.Register() has been executed and
|
||||||
before Draw.Exit() is called), don't use the redraw functions from other
|
before Draw.Exit() is called), don't use the redraw functions from other
|
||||||
modules (Blender and Window). The Draw submodule has its own Draw.Redraw() and
|
modules (Blender and Window). The Draw submodule has its own Draw.Redraw() and
|
||||||
@ -124,11 +128,9 @@ def Create(value):
|
|||||||
@return: The Button created.
|
@return: The Button created.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def Button_(name, event, x, y, width, height, tooltip = None):
|
def PushButton(name, event, x, y, width, height, tooltip = None):
|
||||||
"""
|
"""
|
||||||
Create a new (push) Button object. Please note there is no '_' character at the end of 'Button'.
|
Create a new (push) Button object.
|
||||||
This is due to a bug in our doc generation program. Use Button(....) instead.
|
|
||||||
And stop laughing.
|
|
||||||
@type name: string
|
@type name: string
|
||||||
@param name: The string to display on the button.
|
@param name: The string to display on the button.
|
||||||
@type event: int
|
@type event: int
|
||||||
@ -145,6 +147,10 @@ def Button_(name, event, x, y, width, height, tooltip = None):
|
|||||||
@type tooltip: string
|
@type tooltip: string
|
||||||
@param tooltip: The button's tooltip (the string that appears when the mouse
|
@param tooltip: The button's tooltip (the string that appears when the mouse
|
||||||
is kept over the button).
|
is kept over the button).
|
||||||
|
@note: This function used to be called only "Button". We added an
|
||||||
|
alternative alias to avoid a name clash with the L{Button} class/type that
|
||||||
|
caused trouble in this documentation's generation. The old name shouldn't
|
||||||
|
be deprecated, use Button or PushButton (better) at your choice.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def PupMenu(name, maxrow = None):
|
def PupMenu(name, maxrow = None):
|
||||||
@ -193,7 +199,7 @@ def PupIntInput(text, default, min, max):
|
|||||||
@type text: string
|
@type text: string
|
||||||
@param text: The text that is displayed in the popup.
|
@param text: The text that is displayed in the popup.
|
||||||
@type default: int
|
@type default: int
|
||||||
@param default: The value that the popup is set to initialy.
|
@param default: The value that the popup is set to initially.
|
||||||
@type min: int
|
@type min: int
|
||||||
@param min: The lowest value the popup will allow.
|
@param min: The lowest value the popup will allow.
|
||||||
@type max: int
|
@type max: int
|
||||||
@ -225,7 +231,7 @@ def PupFloatInput(text, default, min, max, clickStep, floatLen):
|
|||||||
@type text: string
|
@type text: string
|
||||||
@param text: The text that is displayed in the popup.
|
@param text: The text that is displayed in the popup.
|
||||||
@type default: float
|
@type default: float
|
||||||
@param default: The value that the popup is set to initialy.
|
@param default: The value that the popup is set to initially.
|
||||||
@type min: float
|
@type min: float
|
||||||
@param min: The lowest value the popup will allow.
|
@param min: The lowest value the popup will allow.
|
||||||
@type max: float
|
@type max: float
|
||||||
@ -238,6 +244,27 @@ def PupFloatInput(text, default, min, max, clickStep, floatLen):
|
|||||||
@return: the number chosen or None if none was chosen.
|
@return: the number chosen or None if none was chosen.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def PupStrInput(text, default, max = 20):
|
||||||
|
"""
|
||||||
|
Create a string input pop-up.
|
||||||
|
|
||||||
|
This allows python to use Blender's string popup input.
|
||||||
|
|
||||||
|
Example::
|
||||||
|
Blender.Draw.PupStrInput("Name:", "untitled", 25)
|
||||||
|
|
||||||
|
@type text: string
|
||||||
|
@param text: The text that is displayed in the popup.
|
||||||
|
@type default: string
|
||||||
|
@param default: The value that the popup is set to initially. If it's longer
|
||||||
|
then 'max', it's truncated.
|
||||||
|
@type max: int
|
||||||
|
@param max: The most characters the popup input will allow. If not given
|
||||||
|
it defaults to 20 chars. It should be in the range [1, 100].
|
||||||
|
@rtype: string
|
||||||
|
@return: The text entered by the user or None if none was chosen.
|
||||||
|
"""
|
||||||
|
|
||||||
def Menu(name, event, x, y, width, height, default, tooltip = None):
|
def Menu(name, event, x, y, width, height, default, tooltip = None):
|
||||||
"""
|
"""
|
||||||
Create a new Menu Button object.
|
Create a new Menu Button object.
|
||||||
|
@ -6,7 +6,7 @@ The Blender.sys submodule.
|
|||||||
sys
|
sys
|
||||||
===
|
===
|
||||||
|
|
||||||
B{New}: L{exists}
|
B{New}: L{exists}, L{makename}.
|
||||||
|
|
||||||
This module provides a minimal set of helper functions and data. Its purpose
|
This module provides a minimal set of helper functions and data. Its purpose
|
||||||
is to avoid the need for the standard Python module 'os', in special 'os.path',
|
is to avoid the need for the standard Python module 'os', in special 'os.path',
|
||||||
|
@ -715,11 +715,11 @@ static uiBlock *info_file_importmenu(void *arg_unused)
|
|||||||
uiBlockSetButmFunc(block, do_info_file_importmenu, NULL);
|
uiBlockSetButmFunc(block, do_info_file_importmenu, NULL);
|
||||||
//uiBlockSetXOfs(block, -50); // offset to parent button
|
//uiBlockSetXOfs(block, -50); // offset to parent button
|
||||||
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "VRML 1.0...|Ctrl F2",
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "VRML 1.0...",
|
||||||
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 0, "");
|
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "DXF...|Shift F2",
|
|
||||||
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 1, "");
|
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 1, "");
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "VideoScape...|Alt W",
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "DXF...",
|
||||||
|
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 0, "");
|
||||||
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "VideoScape...",
|
||||||
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 2, "");
|
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 2, "");
|
||||||
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "STL...",
|
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "STL...",
|
||||||
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 3, "");
|
0, yco-=20, 120, 19, NULL, 0.0, 0.0, 1, 3, "");
|
||||||
|
Loading…
Reference in New Issue
Block a user