The "quick setup" dialog is actually a 'menu', and the "splash screen" block
contains the UI_BLOCK_LOOP flag which causes the buttons' text to align
to the left, however, usually regular buttons have centered text.
As a workaround, add the UI_BLOCK_QUICK_SETUP flag which prevents
the text from being left-aligned.
Differential Revision: https://developer.blender.org/D10486
Reviewed by: Julian Eisel
Expanded enum items like this usually have centered text, but there are
limitations in the popup code that break this here. Add a workaround for this
limitation.
Differential Revision: https://developer.blender.org/D9854
Reviewed by: Julian Eisel
This reverts commit 7ee518cf70.
Causes T84869. The initial issue is less bad than this. We are looking into
alternative fixes for 2.93 (see D9854 and D9853).
This adds fuzzy search functionality to various input fields in Blender
where one can choose a value from many existing values (e.g. the
Vertex Group property in the Displace modifier).
Differential Revision: https://developer.blender.org/D10446
E.g. steps to reproduce:
* Enter Vertex Paint mode
* In the tool settings, right-click > "Edit Source"
When creating a number slider via `layout.prop(..., slider=True)`, the UI code
would reallocate the number button to be a number-slider button. That's because
we now actually have different button data-structures for these (see
e6f0b60c2e). The edit source code stored data based on the button pointers,
which didn't get updated after changing the type. The fix just adds this
updating.
This commit adds support for `bl_description` and python docstrings for panels.
This is useful for pop-over panel types so they can have a label and description.
This commit also includes an example use case.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D10429
The 'ui_pan_to_scroll' uses 'WM_event_absolute_delta_y'. For scrolling the List View
we need to invert the direction to respect "natural scroll direction" system preferences.
Differential Revision: https://developer.blender.org/D10291
When a searchbox-button for string properties (e.g. to reference a vertex
group) was created, and a value was set, the tooltip timer would constantly get
cancelled.
That was because the code to validate the current value
(`ui_but_search_refresh()` - early exists for non-string properties) would call
a helper function to update the search results (`ui_searchbox_update_fn()`),
which always reset tooltips. Resetting them in the helper makes sense, for as
long as the searchbox is open. But while it's not, and we just validate the
current value, it shouldn't do this.
This was also noticable in the output settings of dynamic paint, and probably a
number of other cases (especially with script UIs which tend to use string
properties more often).
Likely caused by de53c039ad.
The outline for the active modifier was abusing the property search
match theme color, as noted in a comment. This commit adds a new
theme color in RNA specifically for the active modifier outline.
For buttons that edit array properties, the soft min/max and slider ranges are
based on the range of all values in the array. However for alpha this does not
make much sense, the only reasonable range is 0..1 even when there are RGB
values larger than 1. So treat alpha as an individual property.
Now the icon's rect are drawn wider than it should be, and with
overlapping, probably in order to compensate for the icon's offsets
inside the rect. The solution is to draw icon's rect of the correct
size and center the icon itself.
And make the hotspot exactly match the icon's rect. The last/right
button's hotspot also covers the extra padding on the right.
Differential Revision: https://developer.blender.org/D9936
Reviewed by: Julian Eisel
Now the icon's rect are drawn wider than it should be, and with
overlapping, probably in order to compensate for the icon's offsets
inside the rect. The solution is to draw icon's rect of the correct
size and center the icon itself.
And make the hotspot exactly match the icon's rect. The last/right
button's hotspot also covers the extra padding on the right.
Differential Revision: https://developer.blender.org/D9936
Reviewed by: Julian Eisel
Activating buttons was running too early, before the popup was
positioned on the screen,
causing data-selectors to be positioned incorrectly.
As the early button activation isn't needed, remove this call.
Ensure this doesn't happen again with an assert.
Disable key-accelerators for key-repeat events.
When a key was held it could open the menu and activate the menu
item associated with that key.
With the RMB select option: edit-meshes & edge-selection caused
holding W to open & activate "Edge Bevel Weight".
Long data-block names are clipped to fit into data-block selector menus. For
linked data-blocks, there's also a hint indicating the source library, which
takes further space and may get clipped too.
So this commit adds a tooltip to the menu items, which displays the full,
unclipped data-block name and the unclipped library name. Plus, the library
path is shown too, which is also useful info.
Adds helper functions for search menu item tooltips, so these are easier to add
to other search menus in future.
Part of T84188.
Allow use of ellipsis to indicate truncated text down to a single character.
Differential Revision: https://developer.blender.org/D9483
Reviewed by Hans Goudey
Issue is visible here https://developer.blender.org/F8626313.
If there is enough space for both the item name and the library hint, display
both. Otherwise, clip either the item name, the library hint, or both so that
not more than 60% and 40% of the available width are used repectively.
There are further improvements we could do, as noted in T84188, this just fixes
the regression for the release.
Part of T84188. There were multiple reports about this, see merged in and
mentioned reports in T84188 and T78012.
Passing 4x arguments for the rectangle,
mixed in with round-box radius & color wasn't very readable.
Instead, pass a `rctf` as the first argument to UI box drawing functions.
The new GPU_SHADER_2D_WIDGET_BASE shader allows us to draw
many complex shapes with anti-aliasing.
One thing it can do is draw an opaque rounded rectangle with colors
that differ between its interior and outline.
In order to do the above in a single pass I recently added an "_ex"
version of UI_draw_roundbox that exposes most of that shaders features.
This simplifies interface_draw.c by removing redundancy in the calling
of this shader by using this new uber "_ex" version.
Ref D10189
Position Gizmo tooltips below their bounds so they do not obscure the content.
Differential Revision: https://developer.blender.org/D9793
Reviewed by Julian Eisel
Simplification and changes to the Navigation gizmo. Better indication of negative axes, consistent use of color and size to indicate orientation, ability to be resized.
Differential Revision: https://developer.blender.org/D9744
Reviewed by Campbell Barton