additional widgets and tools you'd like for custom interfaces

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
arc menu for corners
pie menu
rectangle menu

I’d like to gather up a bunch of useful ideas, perhaps do a wiki page.

here are a few ideas

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!

Thanks happy 2.5

hum !
may be open a new thread in python froum!

or eveybory is gone sleeping or on holiday !

i remember there wa a lot of request for this during last year!

happy 2.5

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)

and (tree view/control )

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…

are you talking about the UI here - intersting feature but
this is about custom special UI for scripting if i remember well!

happy 2.5

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

(2) OpenGL widget:
a free scriptable OpenGL widget (Nuke 5.2 has got something like this). A usecase can be seen here:
there’s a video Python - Movie2 and the widget and source can be seen from 15min:10sec onwards

(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…

greetz happy 2.5

nice 2d23d!

putting images onto panels would be goos too! (either by themselves or as backgrounds)

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:
File Browser

My custom window here
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

  1. I’d like to see button hold action states. ie. click and hold a button and then move the mouse to pan the view

  2. 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.

  3. 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.

i would love to see Blender have something similar to XSI Synaptic Rig or better :slight_smile: very handy for animator like me :slight_smile:

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 know pie menu is in LetterRip’s list but I want to emphasize the importance of customizable pie menus again. :o

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!

I think those are called drivers.

Hmm, not quite as it looks,

Maybe you know some additional trick how to do it? I still think that would be really useful…