Commit Graph

2209 Commits

Author SHA1 Message Date
682df047a0 style cleanup 2013-01-08 02:06:16 +00:00
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
75f05ebe62 Initialize gradient for default theme 2013-01-06 19:26:30 +00:00
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
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
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
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
c7b7cba238 code cleanup: warnings 2013-01-04 02:13:29 +00:00
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
220a233921 correct invalid filter value being use for icon scaling. 2013-01-03 13:19:16 +00:00
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
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
e12354c4c5 add syntax highlighting color for symbols 2012-12-30 01:26:31 +00:00
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
1cffa7f339 style cleanup 2012-12-29 15:55:37 +00:00
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
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
4a427d8e0d style cleanup 2012-12-29 01:54:58 +00:00
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
8c00c57187 style cleanup: var naming for ui list 2012-12-28 10:32:49 +00:00
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
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
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
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
128e6d51ba fix possible bug with ui_item_fit() causing uninitialized variable use. 2012-12-24 14:21:14 +00:00
97bdec1811 fix for use of uninitialized variable with ui_handler_region_menu. 2012-12-23 16:08:02 +00:00
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
ba14beb000 Code cleanup: add usual 'BKE_' prefix to 'public' constraint functions from blenkernel... 2012-12-23 11:31:15 +00:00
806720507e style cleanup: wrap long lines (>200) 2012-12-23 01:18:35 +00:00
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
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
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
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
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
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
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
3bc3e178b3 style cleanup 2012-12-20 00:29:31 +00:00
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
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
a970991da6 Icon scaling fix: for zoom levels near 1, icon positions are moved to exact pixel
locations. Makes default headers and menus always crisp.
2012-12-19 11:55:41 +00:00
a4cb186df5 DPI: icons were still drawing with color fringing when scaled up/down, opengl
texture needs to be premul alpha for correct results.
2012-12-19 10:12:58 +00:00
fbf4f57cd6 bmesh optimization: use BM_face_create() rather then BM_face_create_ngon() in BM_mesh_copy(), gives ~30% overall speedup in my tests. 2012-12-19 09:13:06 +00:00
6b2af22d37 DPI: fix wrong scaling of editor type choosing buttons, and for menu arrows
overlapping or being too close to icons in small buttons.
2012-12-18 20:00:52 +00:00
8168fba972 Icons now draw good again!
- 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)
2012-12-18 19:35:54 +00:00
edf826d924 Various minor fixes to i18n code (mostly, translation of enum items' tooltips was wrongly bound to iface option, not tooltips one, and recent changes in r53119 were incorectly using BLF_pgettext, made them simpler by using CTX_IFACE_ macro).
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.
2012-12-18 18:25:48 +00:00
63731453e2 make sure color picker and color swatch buttons have rnaindex of -1.
Some were 0 some -1, but this messed up reporting - making it think that only red was being changed for each button.
2012-12-18 17:00:49 +00:00
5fcb12d754 changing RNA properties now prints python script in the info view.
next will add context so bpy.data.xxx[id] are not used for all references.
2012-12-18 15:22:06 +00:00
3c2b5e7fc0 Blender icons now are in the 21st century too!
Default size for bitmap now is 32x32 pixels. Code change for higher densities is easy,
all under review. Let's first check this!
2012-12-18 15:10:54 +00:00
c21c4b0774 Fixes for ctrl+click on panel header:
* 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
2012-12-18 14:46:00 +00:00
db14a81e04 some speedup by avoiding translation on entire enum arrays, and just translate the single name that ends up being used. 2012-12-18 13:46:37 +00:00