First commit of a new toolbox system.
Aim was to find a simple & easy system, script alike, to add and configure
a toolbox system, so that others can experiment, but also of course Python.
Summary:
- spacebar calls it up. SHIFT+A still does old toolbox
- hold left or rightmouse for 0.4 second, and it pops up as well
this is experimental! Can be tweaked with Userdef var "ThresA"
- it is a little bit complete for Object mode only. Needs still work
at information desing/structure level
- the code works like an engine, interpreting structs like this:
static TBitem addmenu_curve[]= {
{ 0, "Bezier Curve", 0, NULL},
{ 0, "Bezier Circle", 1, NULL},
{ 0, "NURBS Curve", 2, NULL},
{ 0, "NURBS Circle", 3, NULL},
{ 0, "Path", 4, NULL},
{ -1, "", 0, do_info_add_curvemenu}};
- first value is ICON code,
- then name
- return value
- pointer to optional child
last row has -1 to indicate its the last...
plus a callback to event function.
I also built an old toolbox style callback for this:
static TBitem tb_object_select[]= {
{ 0, "Border Select|B", 'b', NULL},
{ 0, "(De)select All|A", 'a', NULL},
{ 0, "Linked...|Shift L", 'L', NULL},
{ 0, "Grouped...|Shift G", 'G', NULL},
{ -1, "", 0, tb_do_hotkey}};
here the return values are put back as hotkeys in mainqueue.
A mainloop can do all context switching, and build menus on the fly.
Meaning, it also allows other designs such as radials...
This commit is contained in:
@@ -105,4 +105,11 @@ void do_view3d_buttons(short event);
|
||||
|
||||
void do_headerbuttons(short event);
|
||||
|
||||
/* header_info.c */
|
||||
void do_info_add_meshmenu(void *arg, int event);
|
||||
void do_info_add_curvemenu(void *arg, int event);
|
||||
void do_info_add_surfacemenu(void *arg, int event);
|
||||
void do_info_add_metamenu(void *arg, int event);
|
||||
void do_info_addmenu(void *arg, int event);
|
||||
|
||||
#endif /* BSE_HEADERBUTTONS_H */
|
||||
|
||||
Reference in New Issue
Block a user