Commit Graph

2220 Commits

Author SHA1 Message Date
Campbell Barton
b3f52205f2 draw vector icons using the the scaled width,height. The buttons window context arrow wasn't scaling with the DPI. 2013-01-13 18:21:47 +00:00
Campbell Barton
023e7f489c fix for building with cycles. 2013-01-13 16:42:02 +00:00
Campbell Barton
c045cf2c0d fix [#33846] Points of Curves in Vector Curves node can't have negative X or Y values/. 2013-01-12 20:19:58 +00:00
Ton Roosendaal
7db00f0826 Usability:
Ancient annoying thing for zooming in 2d views: when a view was restricted to keep
aspect ratio, it only allowed vertical or horizontal MMB-drag zooms, depending 
portrait or landscape size of editors. Same for trackpad and magic mouse.

Now vertical zoom drag always works for editors like buttons, nodes.
2013-01-12 11:00:27 +00:00
Ton Roosendaal
2f4cc3530d Bug fix #33826
Post 2.65a issue

Now scrollbars appear/disappear correctly, a bug in checking if mouse clicks
where on panel headers popped up. That disabled using scrollers next to a
panel header.
2013-01-11 15:19:47 +00:00
Campbell Barton
65497a25ba fix for error in gradient theme rgba_char_args_set() use, was setting char's to float values. 2013-01-11 03:19:52 +00:00
Ton Roosendaal
9a4a5fa2b4 Usability fix:
Blender's data link button (typically with menu and searching options)
now has a X icon to clear its contents. 

Before you had to click, delete text, enter.

For example:
- Object Parent
- Modifier objects or vertexgroups

This fix saves each user 100 clicks per day, with 100k users
that's 3 billion clicks per year!
2013-01-09 15:58:34 +00:00
Campbell Barton
2d526c23dd remove uiPanelClearType(), instead redraw all windows when registering/unregistering. 2013-01-09 13:15:23 +00:00
Campbell Barton
9b5a2084bc avoid having dangling panel pointers in the interface, unregistering addons could leave the interface pointing to freed memory. 2013-01-09 06:00:33 +00:00
Campbell Barton
e24443b79a style cleanup 2013-01-09 03:30:15 +00:00
Campbell Barton
73ead0b207 drawing texture icon was multiplying the red channel by alpha, this is almost certainly a typo/accident. 2013-01-09 03:26:39 +00:00
Campbell Barton
682df047a0 style cleanup 2013-01-08 02:06:16 +00:00
Antony Riakiotakis
ff6339a979 Make options for background gradient more organized.
This was difficult to do because we group theme colours and display them
together in user preferences. To make the background options more
presentable and keep them grouped and separate, I needed to group the
two gradient colours somehow. I added a separate ThemeSpaceGradient RNA
struct as opposed to ThemeSpaceGeneric. This struct is the same as
ThemeSpaceGeneric but it lacks the window background option (which does
nothing now) and includes the UiGradient struct which now has both
gradient colours. I modified the clear functions to use a new high
colour from the gradient. Now all options appear grouped and any other
editor that may use a gradient for the window background may do so.

Also corrected incorrect MAIN_VERSION_ATLEAST macro, it would not detect
versions correctly
2013-01-07 15:42:42 +00:00
Antony Riakiotakis
75f05ebe62 Initialize gradient for default theme 2013-01-06 19:26:30 +00:00
Ton Roosendaal
bbd95fafef Three fixes:
- Old issue: on scrolling button views, tooltips could open or stayed open.

- New fix: alt+swipe now changes button values again

- Removed test print, from WIP code project.
2013-01-06 18:28:39 +00:00
Antony Riakiotakis
d72a90349a Eyecandy feature: background gradient for 3D viewport. Enable in user preferences under themes->3D view->Theme Gradient Color. This is only used when use render only is not ticked and for now it may interfere with grid lines. Will investigate how to adjust contrast.
Tidying up of options after advisory session on irc: Move all RNA code
in Themes.

Changes after merging trunk's commit that renders sky
2013-01-06 16:45:10 +00:00
Ton Roosendaal
16ca65e4a9 Solving nasty annoyance:
Trackpad zoom (swipe + CTRL) direction was inverted compared to MMB-drag
or scrollwheel usage. In the 3D viewport it was OK, in all others not.

Now the same physical gesture maps identical to zooming everywhere. Or to
recap (with blender factory settings)

Zooming in:
- MMB-drag, move mouse towards screen
- Scroll wheel, move finger towards screen
- Magic Mouse, move finger towards screen
- Trackpad 2-finger swipe: move fingers toward screen.

To make this extra confusing: this is only consistent if you set your system
to inperpret trackpad swipes as "inverted" (pan view left = swipe to right).
This is a typical default, although Apple wants you to call this "Unnatural" :)

Next commit will be testing on laptop if all pinch gestures zoom consistent.

And following to that, a sensible user preference to map trackpad use for
Blender yourself, to invert system defaults again. :)

Blame and thanks goes to Sebastian Koenig, for his perseverance on getting this
solved :)
2013-01-06 11:16:49 +00:00
Ton Roosendaal
4fa340c716 Fixes - post 2.65a
- 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 :)
2013-01-04 14:51:02 +00:00
Campbell Barton
c7b7cba238 code cleanup: warnings 2013-01-04 02:13:29 +00:00
Campbell Barton
c03d1270c8 fix bad left aligned text when zoomed out.
also minor change to cylinder_project_exec() - delay getting the MTFace.
2013-01-03 15:52:31 +00:00
Campbell Barton
220a233921 correct invalid filter value being use for icon scaling. 2013-01-03 13:19:16 +00:00
Ton Roosendaal
be519ad7ff Further trackpad work:
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.
2013-01-01 16:42:35 +00:00
Campbell Barton
3de85a8797 style cleanup: casts, some casts had odd formatting, but very few. Style checker script detects this now so easy to detect this if new code is added that doesnt follow blenders style. 2012-12-30 15:16:08 +00:00
Campbell Barton
e12354c4c5 add syntax highlighting color for symbols 2012-12-30 01:26:31 +00:00
Campbell Barton
e9c7aaaa3c patch [#33609] Syntax highlighting for OSL in Text Editor
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'.
2012-12-29 18:25:03 +00:00
Campbell Barton
1cffa7f339 style cleanup 2012-12-29 15:55:37 +00:00
Ton Roosendaal
dfc63e98bc Trackpad fixes & changes:
- 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 :)
2012-12-29 13:21:01 +00:00
Mitchell Stokes
7d6ea8cddf Finally fixing the issue where the bezier curve drawn while creating a link between two logic bricks doesn't match the mouse cursor location. The issue was the last line segment for the bezier curve was not getting drawn. This is why the error increased as the curve got longer. 2012-12-29 09:44:19 +00:00
Campbell Barton
4a427d8e0d style cleanup 2012-12-29 01:54:58 +00:00
Ton Roosendaal
914b0aafa5 Yesterday's memory free error fix in IMB_onehalf was wrong, it should
be fixed in the icons code!
2012-12-28 10:38:07 +00:00
Campbell Barton
8c00c57187 style cleanup: var naming for ui list 2012-12-28 10:32:49 +00:00
Bastien Montagne
7504cf34b4 This commit frees list ui items from their dependencies to Panel, and hence from all the limitations this implied (mostly, the "only one list per panel" one).
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.
2012-12-28 09:20:16 +00:00
Ton Roosendaal
86134fd8c6 Bug fix #33633 (and irc report)
The function ui_popup_block_clip() didn't correct the buttons if a clip
happened, causing the items to draw outside.
2012-12-26 13:57:07 +00:00
Ton Roosendaal
fa28e50ac2 Region scrollbar fix!
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.
2012-12-26 13:05:39 +00:00
Sergey Sharybin
2fe36c0139 Separate image input and sequencer's color spaces in the UI
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.
2012-12-24 15:51:27 +00:00
Campbell Barton
128e6d51ba fix possible bug with ui_item_fit() causing uninitialized variable use. 2012-12-24 14:21:14 +00:00
Campbell Barton
97bdec1811 fix for use of uninitialized variable with ui_handler_region_menu. 2012-12-23 16:08:02 +00:00
Ton Roosendaal
60ffe9f8ec Bug fix (own collection)
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)
2012-12-23 13:02:38 +00:00
Bastien Montagne
ba14beb000 Code cleanup: add usual 'BKE_' prefix to 'public' constraint functions from blenkernel... 2012-12-23 11:31:15 +00:00
Campbell Barton
806720507e style cleanup: wrap long lines (>200) 2012-12-23 01:18:35 +00:00
Campbell Barton
2a5cabb039 code cleanup and minor changes
- 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).
2012-12-22 01:08:42 +00:00
Ton Roosendaal
4d8f340d3e Bug fix, own collection:
User preference "Zoom Scale" didn't work correct for 2d views.
(was calculating center of region badly).
2012-12-21 16:11:50 +00:00
Campbell Barton
26752e8b3a minor cleanup to ui_get_but_vectorf / ui_set_but_vectorf, change the vector with one function call if its size 3. 2012-12-21 00:11:45 +00:00
Ton Roosendaal
e7731cbede UI fixes, from the todo:
- 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.
2012-12-20 19:18:46 +00:00
Ton Roosendaal
c5de14ae1e Bugfix, irc collection:
Copy/Paste from and to color swatches now includes alpha.
Buttons without alpha have this value on '1' on copy.
2012-12-20 18:18:09 +00:00
Ton Roosendaal
291f59c339 Restored old hack to open/close panels on A-key.
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 :)
2012-12-20 18:04:06 +00:00
Ton Roosendaal
566d350369 UI todo:
- 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
2012-12-20 16:50:39 +00:00
Campbell Barton
3bc3e178b3 style cleanup 2012-12-20 00:29:31 +00:00
Brecht Van Lommel
ec85a4370f UI DPI: use a sharper filter when scaling icons, when the scale matches a mipmap
level, this has no effect, it's for the zoom levels in between. There's a
tradeoff here between blurring and aliasing, I think this looks better.

Before: http://www.pasteall.org/pic/show.php?id=42090
After: http://www.pasteall.org/pic/show.php?id=42091
2012-12-19 12:51:43 +00:00
Ton Roosendaal
1dbb84c1c9 UI DPI scaling fix:
2D views with scale prints (numbers over slider) now follow the text size.
2012-12-19 12:22:15 +00:00