window (type)
- each SpaceData struct (not the window!) can get 'block handlers'
assigned, basically event codes that invoke drawing button panels.
- this is saved in files, and Panels behave in any window like it does now
in buttonswindow
- it also means that a 'space window' should leave with a matrix set for
buttons level
- try it in view3d header menu, 'view'->'backdrop'. this opens the old
viewbuttons
- it all works non blocking! instant updates of viewbuttons visible in
3d window now.
Not done yet:
- checking and fixing frontbuffer drawing (select a wireframe draws over)
- temporally vertices cannot be selected, is my next project
- closing or hiding Panels...
- styling stuff... i committed for others to review as well.
Have fun. this is certainly a huge improvement over the old viewbuttons!
- in 'Horizontal Align' mode, Panels now close as a vertical bar
- switching align modes, also switches how closed Panels are drawn
- opengl nor ftgl support vertical string drawing... so for now it only
draws the capitals of the Panel title in a horizontal collapsed header
- converted sound buttons, part of Scene
- special request Matt: headers of windows 2 pixels higher! (test)
- special request Stefano: icons instead of menu for buttons-header
- 'data browse' buttons now almost all in buttonswindow.
- almost all buttons have been panelized now.
next stage: cleaning up usage of color in Blender, to allow presests!
performance, gave display errors in some occasions.
now its moved to the main drawing loop, which is not for each event
luckily.
tested at windows by ztonzy
i tried to find place for it in the other menus, like material, object,
camera, etc. But thats hard... now it's just one nice Panel, without
the idiot headerbuttons icons!
- changed drawing of 'tabbed' Panels. The old method takes too much space.
hint from xype! Dragging tabbed Panels can be done with the right hand
circle. designers are welcom to tweak this.
main reason: dragging is not meant to be happening a lot... pressing tabs
is more important.
- menu auto open now is user preset, including 2 thresholds you can set
- hilites of pulldown menus were not cleared, fixed
- changed F4 key to logic. F5 will show lamp buttons, when lamp active
- in 'shader context' buttons, clicking camera will show world
- Converted lamp buttons and world buttons, they're pretty!
- menu auto open now is user preset, including 2 thresholds you can set
- hilites of pulldown menus were not cleared, fixed
- changed F4 key to logic. F5 will show lamp buttons, when lamp active
- in 'shader context' buttons, clicking camera will show world
leftmost/top panel now always at same location, so switching button
'main contextes' works consistantly
- fixed some more events to make sure Panels update when editing
- preview render panel now is 320 wide, just for getting the space filled!
- error in preview render matrix, which caused unpredictable drawing errors
Bedtime!
-Ton-
EEEK! It doesn't look well yet! Hopefully it inspires others to come
with great solutions.
- the material buttons have 6 panels, three of them merged
- some drawing errors in preview render
- made settings for new Material that makes sense for Flares
- cutoff of text in menus and buttons now even better!
- size of pull-up menu buttons is corrected
- pressing at 'menu button' had a delay, fixed
General: the 'outo open' wont become default, it will be removed or
become a user option. I am experimenting with it to get it all OK.
The 'auto open' for secondary levels in pulldowns will remain there
Check the latest state of pull-up menu buttons. for example the mode
selector: you can use such buttons in three ways,
- click on it, it opens and you can select
- click-and-hold-mouse, move, release at item you want to select
- move mouse over button, wait, it opens
The 'auto open' and its time threshold both can be user settings.
First, check on the new files, which are listed below.
The new butspace.h is a local include, only to be used for the buttons
drawn in the buttonswindow.
- editbuts, animbuts, gamebuts, displaybuts, paintbuts, work now
- i quite completely reorganized it, it's now nicely telling you what
context it is in
- sorting error in panel align fixed (tabs were flipping)
- align works correctly automatic when you click around in Blender
- editsca.c renamed to buttons_logic.h
- button names are truncated from the right for allmost all buttons
(except text buttons and number buttons)
- while dragging panels, you cannot move them outside window anymore
And of course fixed loads of little bugs I encountered while testing
it all. This is a version I really need good test & feedback for.
Next step: restoring material/lamp/texture/world
The original headerbuttons.c is for now kept as headerbuttons.txt
The included .h files were updated to only include needed ones in each file.
Makefile.am (for the autotools build) was updated. Didn't test with original makefiles.
Other build systems will of course need to be updated.
layout. Old size was 800x600, just not too nice
New size is 900x768. this default small size is for older macs that
dont allow full size 32 bits opengl windows... silly er! :)
- automatic pulldown opening can now be controlled ( user setting?)
it has two thresholds:
- when no menu was opened before, it waits A milliseconds
- when (in the same block a menu was opened, it waits B millisec.
Currently A= 0.4 sec, B= 0.1 (or so)
- 3d window header; brought back old drawtype menu (test, compare!)
- another test: the old menubutton doesnt work anymore with hold-mouse
only, you can also use it as the other popups (old method still works)
- proposal; all buttons that pop up a block, get special drawtype (arrows)
- removed src/buttons.c and include/BIF_buttons.h
- added src/buttons.txt, which is the old buttons.c for review and adding
code to new panels structure
- changed internal events to match new buttonspace structure
- added tabs for new shading group of buttons
- removed loads of little warnings, -Wall now compiles src/ almost without
error (hint: setenv NAN_QUIET to see it all better)
Now I'm ready to do actual buttons -> panels conversion. I will do the raw
versions first, others then can cleanup
- changed meaning of F4-F10 keys (as compatible as possible, but we need
something!) check UI design doc for proposal
- made new call for switching direction of buttons in Y, for when pulldown
moves direction
- cleaned up all redundant manual switching code from headerbuttons.c
startup
- made nexted pulldowns easier to enter with diagonal mousemovement.
coded a heuristic like:
- while mouse moves in good x direction
- while mouse motion x is bigger than y motion
- while distance to center block diminishes
- only for 1 second
Works nice, but i left debug prints commented in for those who'd like
to tweak it.
without moving for 0.25 second. Also works for sublevels in pulldowns.
- removed hacks from mainloop, which caused setting the main window and
active subwindow for each event (including mousemove).
WARN: test for all OS's that no events get lost, and active window focus
is OK. For OSX it works nicely
- reduced load for uibuttons with 50%....