- Trackpad swipes now behave same as scrollwheel for listview scrolls
(disabling 2d view scroll when mouse over)
- Added back 2.4 debug print for glGetError()
Only useful for developers - to check what goes on when ogl messes up.
- Made more clear print for read factory default. It's not error :)
When trackpad swipes don't convert to ScrollWheel steps anymore, several hardcoded
wheel events need to support swipe too.
This adds swipe support to:
- Menu item scroll
- Search item scroll
- ALT + number/slider/swatch values
The amount of old style scroll "clicks" is calculated based on how trackad is
being mapped to move a mouse pointer. Move it one widget unit = 1 click.
The swatch option applies trackpad swipe motion in analog way.
from Patrick Boelens (senshi). with modifications to split it into its own function.
also added C style multi-line comment support /* ... */
I've left out the part of this patch that sets the language in the space, since I think this might be better stored in the text block.
For now it simply uses OSL syntax highlighting when the extension is '.osl'.
- UV Image editor and other 2d views didn't zoom for CTRL+swipe yet.
(2 finger trackpad, 1 finger mighty mouse)
- Switched defaults for 3D window swiping...
- default rotate view
- SHIFT for translate
- CTRL for zooms
This makes all editors use 'swipe' like 'middle mouse', and not
like scrollwheel (as in releases).
This is nice for consistancy, but it still feels a bit weird...
Of course users can config this in keymaps. We need a sensible
default though, and to make a 2D input input device behave like
middle mouse seeems more sensible than like a 1D wheel...
Proposal therefore for defaults:
- 1D scrollwheels: zoom in 3d, zoom in 2d, but scroll for list views.
- 2D trackpads: pan for all 2d views, rotate for 3D
I'll check with frequent trackpad users about this and we can freeze it
before release. Give it a try :)
It introduces a new (py-extendable and registrable) RNA type, UIList (roughly similar to Panel one), which currently contains only "standard" list's scroll pos and size (but may be expended to include e.g. some filtering data, etc.). This now makes lists completely independent from Panels!
This UIList has a draw_item callback which allows to customize items' drawing from python, that all addons can now use. Incidentally, this also greatly simplifies the C code of this widget, as we do not code any "special case" here anymore!
To make all this work, other changes were also necessary:
* Now all buttons (uiBut struct) have a 'custom_data' void pointer, used currently to store the uiList struct associated with a given uiLayoutListBox.
* DynamicPaintSurface now exposes a new bool, use_color_preview (readonly), saying whether that surface has some 3D view preview data or not.
* UILayout class has now four new (static) functions, to get the actual icon of any RNA object (important e.g. with materials or textures), and to get an enum item's UI name, description and icon.
* UILayout's label() func now takes an optional 'icon_value' integer parameter, which if not zero will override the 'icon' one (mandatory to use "custom" icons as generated for material/texture/... previews).
Note: not sure whether we should add that one to all UILayout's prop funcs?
Note: will update addons using template list asap.
Now scrollbars correctly hide and show, making space for the actual contents
in a region. It solves several old hacks, and puts view2d code a bit more
back in control as well.
Implementation notes:
- The view2d mask feature is working again
- The #define V2D_SCROLL_HORIZONTAL_HIDE means: "turn on hiding".
- Code for UI_view2d_region_reinit() is enforcing better standard view settings
But... two hack/patches needed to be added:
- Region panel drawing: if after generating the button panels it appears
a scroller hides or reveils, it calls all the generating code again.
(a simple scale doesn't work due to rounding differences in layout code)
- View2d code that maps 'tot' and 'cur' rects: if this code detects that
the mask changes, it calcs the map code again.
Also a bugfix (issue in 2.65)
- The left/bottom area split widget was drawing 1 pixel too large sometimes,
leaving bad trails on moving area dividers.
This two things were using the same DNA and RNA structures because
internally they're completely the same. However, that was confusing
from the interface point of view.
Now it should be much more clear what's going on there.
Icons in search menus were not drawing on the right location when UI panels were zoomed in large.
Not very common, but annoying. (DPI setting worked fine)
- use DummyRNA_NULL_items to replace empty enums.
- replace calloc with malloc in copy_dverts since its copied over after.
- add wmGesture->userdata, so operators that use gestures have somewhere to store their own data (not used yet).
- Button panel animation didn't work for 3D View properties and similar regions.
- Akey on View3d overlapping panel: was accidentally passed on as event to the main window.
Notes in code:
- This has to become a decent handler
- Actually "A" should open/close all?
Currently, Enter key does open/close too, but only on headers.
This because Enter on a button gets handled by buttons... that's
why the Akey was proposed :)
- Recoded soft shadow drawing for menus, giving better predictable results
(and round off nicer on top side, was looking bad still)
- Brought it under DPI control
- Added Theme setting to control size and strength for it.
Max size 24 pix:
http://wiki.blender.org/index.php/File:MenuShadow.png
- Exported via Inkscape a 16 and 32 pixel bitmap version
- Use these as mipmap levels for OpenGL texture drawing.
- Changed code to get right sizes for drawing icons - better than last week's method.
Todo:
- Custom icons don't work yet (old one)
- Missing icons in the svg
- The .sh script for inkscape needs changed to support this
(now do manual saving)
Also fixed CTX_FOO_ macros when building without i18n, those were kinda wrong.
And hid i18n ui section in userpreferences when built without its support too.
* It collapsed panels in other tabs too
* Ctrl + click next to the panel header still caused panels do be collapsed
* Ctrl + Return over panel header now works as well
- on setting lower DPI, the regions that were scrolled down would start moving down
1 pixel on every draw. Caused by rounding error. (int + 0.1 vs int -0.1)
(Ancient bug)
- circles used in outliner - to denote selection/active - now draw bigger, and better
centered. (2.66 fix only)
Tooltips in Blender were not scaling when zooming in/out on UI elements.
(They did follow DPI though, but tooltips were in a 'global' fixed size).
Error was that for tooltips on large scaled popups (like in Node editor)
the drawing was entirely wrong even.
Now tooltips scale correctly, also for fonts.
Notes and image:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.66/Usability
- now each editor has own settings for "show panel header" and
"show panel background", and colors+alpha for this.
- this setting used to be global for all editors, but it can conflict
with looks of specific editors.
- Now you can set for editors to show panels with a 100% transparent
tool/properties region.
Note: read XML theme files now might get an error, Campbell will fix.