Age | Commit message (Collapse) | Author |
|
Letting users of `PopupMenu` use them. `OptionButton` was one of those interested and is updated in this commit.
Fixes #18063.
|
|
Radio buttons in menus
|
|
It seems that popups were intended to "grab" the mouse click that triggered them, but their intent was being lost. This commit does the necessary changes to let it happen and updates items that were trying to get advantage of it, because the semantics of `Control::grab_click_focus()` have changed a bit. Namely, it must be called **before** showing the modal.
This allows to popup a menu and activate an item in it in a single click-point-release cycle, instead of having to click once to open the menu and once more to pick an item.
This ability is extended even to context menus activated with the RMB (or any other mouse button, for that matter). The editor benefits from this in the context menu of the tree dock, which has been patched to opt-in for this feature.
This improves UX a bit by saving unnecessary clicks.
From now on, `PopupMenu` always grabs the click and also invalidates the first button release unless the mouse has moved (that's what `set_invalidate_click_until_motion()` was doing and now it's removed), so there is no longer the need of doing both things at every point a pop-up menu is shown.
|
|
They work exactly the same as current checkbox-decorated items, but in order to preserve compatibility, separate methods are used, like `add_radio_check_item()`. The other option would have been to add a new parameter at the end of `add_check_item()` and the like, but that would have forced callers to provide the defaults manually.
`is_item_checkable()`, `is_item_checked()` and `set_item_checked()` are used regardless the item is set to look as check box or radio button.
Keeping check in the name adds an additional clue about these facts.
Closes #13055.
|
|
And id_focused to Popupmenu.
|
|
|
|
Notable potentially breaking changes:
- PROPERTY_USAGE_NOEDITOR is now PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_NETWORK, without PROPERTY_USAGE_INTERNAL
- Some properties were renamed, and sometimes even shadowed by new ones
- New getter methods (some virtual) were added
|
|
|
|
|
|
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
|
|
Fix #15275
|
|
Happy new year to the wonderful Godot community!
|
|
Made highlighted item in PopupMenu circle back to the beginning/end when using the keyboard
|
|
|
|
using the keyboard.
|
|
|
|
|
|
Added skeleton x-ray
|
|
Removed code visibility code from popup menu
|
|
|
|
|
|
Currently we rely on some undefined behavior when Object->cast_to() gets
called with a Null pointer. This used to work fine with GCC < 6 but
newer versions of GCC remove all codepaths in which the this pointer is
Null. However, the non-static cast_to() was supposed to be null safe.
This patch makes cast_to() Null safe and removes the now redundant Null
checks where they existed.
It is explained in this article: https://www.viva64.com/en/b/0226/
|
|
Partial revert of #10380 based on contributor ~~bullying~~ feedback.
|
|
Also renames `set_message_translation` to `set_message_localization`
for consistency.
|
|
|
|
|
|
Closes #7695
|
|
|
|
|
|
|
|
Update PopupMenu hiding
|
|
|
|
Make the naming consistent with other classes.
|
|
this might cause bugs I haven't found yet..
|
|
|
|
Working platforms platform: OSX, Windows.
Support for almost all ui elements, including project list.
|
|
Make PopupMenu hiding distinguish between checkable item and non checkable
item.
|
|
Control set_pos -> set_position
Control set_global_pos -> set_global_position
[gs]et_mouse_pos -> [gs]et_mouse_position
[gs]et_global_mouse_pos -> [gs]et_global_mouse_position
fixes #8005
|
|
|
|
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
|
|
This new name also makes its purpose a little clearer
This is a step towards fixing #56
|
|
This saves typing and is a step towards fixing #56
|
|
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
|
|
visible (property) - access set_visible(bool) is_visible()
is_visible_in_tree() - true when visible and parents visible
show() hide() - for convenience
|
|
poups when translation is changed.
-Added a NOTIFICATION_TRANSLATION_CHANGED for controls that need custom code
-Sorry, editor will not update automatically because it uses a different translatio method.
|
|
item_pressed, closes #3188
|
|
differentiated than generalized _input
|
|
categories.
-Changed SectionedPropertyEditor to support this
-Renamed Globals singleton to GlobalConfig, makes more sense.
-Changed the logic behind persisten global settings, instead of the persist checkbox, a revert button is now available
|
|
Variant.
All usages of "type" to refer to classes were renamed to "class"
ClassDB has been exposed to GDScript.
OBJ_TYPE() macro is now GDCLASS()
|
|
|