Hi all, I’d be interested in known what widgets, and design tools you think would be useful for creating custom blender interfaces, and how you might go about adding them, options they would need etc. Also what interface builders might be worth looking at for ideas.
Here are some ideas I’ve had.
UI elements needed
vertical tabs
view 3D floating buttons/HUD buttons
button containers (add->button container then define the num rows.columns)
note button containers should be growable height/width and scrollable
button containers within button containers
button seperators within button containers - horizontal, vertical
right click>add>ui element
tab options-> width (standard, half)
button container ->width, height (in number of standard buttons); add button, add vertical seperator, add horizontal seperator
button ->add pictorial button (small, medium, large), add text button, assign image, assign hotkey, assign command
menu ->add submenu, add seperator, assign command
panel
arc menu for corners
pie menu
rectangle menu
I’d like to gather up a bunch of useful ideas, perhaps do a wiki page.
1 - for the buttons are theses gong to be equivalent to what we had in 2.49 ?
like label , text combo ect…
any complete list we can consult ?
and will be able to locate theses buttons where we want on the GUI
no automtic localisation like we have in panels righ now!
2 - I could use something that did not exist in 2.49
a Text box with scroll bars that you can size as you wish
so if people needs to read more they can scroll sideways or up and down
so no need to use all the GUI to show some general Text
3 - be able to load up and locate a picture or image that you can size as you want
and this pic could be located anywhere you want including in the same folder then the blend file from which it’s being called
4 - if possible be able to open up a small window where you could draw small simple drawings like lines 1/2 circle and locate these to make a drawing without using opengl
or may be open a new blender window over the GUI where we could use normal blender instructions to make a simple drawing to represent some graphic results!
An interesting feature would be the possibility that multiple windows toolbars were conditioned (scripting) by a environment-workspace, this would allow to create different UI profiles for different workgroup components, to avoid edit errors… and customize tasks.
Similar to the user profiles management on an operating system. This would allow manage large projects and teams
Manage user profiles (UI modeling, UI editing, UI FX …), with access management (sudo)
Hey Ciriaco, I like the second recommendation, that would be a very nice and easy way to view the structure of other blend files and to append/ link using that view.
Great suggestions letterip, the menu/submenu thing is one I’ve been struggling with recently… it seems overkill to creaye classes foreach sub menus in python and a class for a master menu to call them… i
Also, when you talk of buttons it’d be nice to be able to add image buttons too…
I was toying with material stuff in python and it seems you can only get a preview of a texture or a material in context… it’d be good to arbitrarily get material previews for any material in the scene for example…
nice thread, thanx for bringing this up. first things that come to my mind:
(1) Programmable progress bar
I think Matt has laid the foundation for this
(3) grid/array widget:
an editable widget with rows and columns where multiple properties could be viewed/edited. maybe for selections of multiple objects? see QTs table widget. Is this what you meant with button containers?
(4) Picking Session (this one I’m not sure of)
sometimes you want to do some scripting on initial selection but then again need the users feedback for picking/selecting another object, after that the script automatically continues. really dont know if this is the best workflow, but happened to me more than once. think of an automated car rig for example: first pick chassis (script does constraints/drivers based on size), then pick one of the wheels (script does more constraints) then pick road…
A tree control would be nice. It could use the list box (the boxes used for materials, shapekeys, vertex groups ect) as a base. A method for transversing the tree would be needed, wx does this nicely (is this the standard?)
Also, is it possible to custom theme widgets? It would be good to be able to be able to do this,
TreeView with grid is the most needed control at the moment in my opinion, that is, An empty outliner that you can:
add icons (we already can load icons from disk with python).
add/delete child items
expand/collapse items with some event triggered, so you can modify the current item.
define columns width/resizing/
ability for placing icons/texts on any column and get events when mouse is over and mousedown/mouseUp
If this kind of control could be showed inside a popup window when you dropdown a menu or combobox then, it will be marvellous, because you won’t need a lot of space to show this kind of control.
Also I would like to add new items to the “current editor type” menu (I’m sorry, I don’t know weather it is posible yet or not), I mean:
Editor type:
Console
File Browser
…
My custom window here
TimeLine
3D View
Qt Designer style editor either integrated into Blender or outside of blender.
Perhaps the code could be stored to an xml file and loaded into a python script using a simple command instead of outputing the ui code in the script file
I’d like to see button hold action states. ie. click and hold a button and then move the mouse to pan the view
Better access to changing/adding icons. Perhaps user definable icons. Simplest would be to simply right click on a button and select the icon image to replace it.
Image map based button creation capabilities. Think creating a control interface to select specific pieces of an armature.
You mean the ability to create custom panels that have an opengl canvas to do all sorts of magic on?
Which is kind of cool actually…
Pretty sure you can already do these with modal operators, if I understand them correctly they get ‘first crack’ at the action and if they don’t want to do anything with it they can just pass it along.
Also pretty sure you can already do this (in the 3d viewport) with the opengl module.
I was thinking of re-doing my pie menu script where it loads an image (as the menu) and uses python to do the highlighting and selection determination instead of using python to do all the layout and drawing which is kind of slow with a high poly object in the viewport.
A companion List View object to go with the Tree View. The list view should work like the windows list view (i.e. multiple columns, if needed) or the finder list view.
I know this may be an odd request, but how about a way to embed a flash movie and process events from the movie via python intercepts? By leveraging flash, some really cool interfaces could be created and you would not have to re-create custom controls for every possibility.
I would like to have a ‘pin’ or a ‘link’ option for a values. So, if I change only one value that would change also all other ‘pinned’ or ‘linked’ values. That would be useful with a nodes too!