Commit graph

113 commits

Author SHA1 Message Date
bruvzg
eddc9cea11
[NativeMenu] Do not auto toggle check/multi-state items. Add is_native_menu method. 2024-07-08 11:20:28 +03:00
kobewi
b365a63403 Automatically use property count in PropertyListHelper 2024-05-25 10:51:37 +02:00
kobewi
e95e954c68 Add PropertyListHelper in all simple cases 2024-04-11 18:13:29 +02:00
bruvzg
ac7583e449
[NativeMenu] Implement native popup menu support on Windows. 2024-03-13 10:51:38 +02:00
bruvzg
c65a667924
Move global_menu_* methods to a separate NativeMenu class. 2024-03-04 23:41:41 +02:00
Mounir Tohami
7884d63281 Fix PopupMenu doesn't respect it's ScrollContainer's margins 2024-02-23 15:51:47 +02:00
kobewi
aeec3c1309 Add methods to add submenus without using names 2024-02-22 15:13:53 +01:00
Rémi Verschelde
8f1915eb90
Revert "Fix selecting popup menu items on mouse release" 2024-02-20 10:05:41 +01:00
Rémi Verschelde
92951b0295
Merge pull request #86952 from ryevdokimov/fix-selecting-popup-menu-items-on-mouse-release
Fix selecting popup menu items on mouse release
2024-02-14 10:59:40 +01:00
kobewi
4f29ef82db Add PropertyListHelper to PopupMenu 2024-02-11 12:09:55 +01:00
mrcdk
c9bdccf7f2 Expose PopupMenu get_item_multistate(), get_item_multistate_max() and set_item_multistate_max() 2024-01-22 20:07:19 +01:00
Robert Yevdokimov
06c2cda848 Fix selecting popup menu items on mouse release 2024-01-14 17:45:52 -05:00
bruvzg
15cdc52658
[PopupMenu] Handle physical_keycode and key_label of shortcuts. 2023-12-30 13:17:46 +02:00
Yuri Sizov
8a9aa30348 Merge pull request #81243 from Sauermann/fix-window-events
Fix internal events not being delivered to some Window types
2023-12-19 13:01:00 +01:00
bruvzg
0d44b50520
[macOS] Add default Window and Help menus, allow special menu customization. 2023-12-13 23:20:05 +02:00
Markus Sauermann
fa02d19fd1 Fix internal events not being delivered to some Window types
`AcceptDialog`, `Popup` and `PopupMenu` no longer subscribe to
"window_input" signal, because that is only sent if it is not an
internal signal.

Instead they receive events in `_input_from_window`. They ensure that
the event is also propagated to their super-function, just like
previously the signals would be treated.
2023-11-14 20:29:17 +01:00
bruvzg
d1aaa914f3
[macOS] Add about_to_open and popup_hide callback for the global menus, move part of logic to the PopupMenu to allow live menu modification. 2023-10-04 09:49:51 +03:00
kobewi
df24882f9a Free submenu children when clearing PopupMenu 2023-09-25 16:45:41 +02:00
Yuri Sizov
2924bfd4d3 Register theme properties with ThemeDB 2023-09-11 13:45:23 +02:00
Tomasz Chabora
3dd881b4e4 Add option to allow echo events in menu shortcuts 2023-08-16 16:59:17 +02:00
bruvzg
4790da7900
[macOS] Implement optional native file selection dialog support for sandboxed apps. 2023-07-12 22:36:24 +03:00
Florian Kothmeier
c33748d954 Fix invalid minimum size for translated messages in option button 2023-06-29 15:01:36 +02:00
Markus Sauermann
840e2b14f3 Remove unused variable PopupMenu::parent_rect
This private variable is not read anywhere.
Remove it and all places, where it is set.
2023-06-15 12:08:47 +02:00
Rémi Verschelde
f00c971b81
Merge pull request #63168 from Levrault/master
Fix: InputEventJoypadMotion should trigger only once on a vslider
2023-06-05 18:04:39 +02:00
Luc-Frédéric Langis
166ca77f20 feat(gamepad): improve gamepad behavior with slider and popup_menu 2023-06-05 10:20:46 -04:00
Ninni Pipping
44a5b710f5 Unify item indexing in PopupMenu 2023-05-24 15:58:50 +02:00
the-sink
a85eef4367 Add icon_modulate functionality to PopupMenu 2023-05-08 15:25:00 -07:00
Yuri Sizov
1522762dc9 Make icons of scripted and custom classes fit the editor UI
Also:
- Add an option to limit the icon size in PopupMenu.
This is similar to how this works in Tree and TreeItem.
- Add the same option to TabBar.
- Add a theme constant for Tree, PopupMenu, Button, and
TabBar to apply this limit on the control level.

Co-authored-by: Daylily-Zeleen <daylily-zeleen@foxmail.com>
2023-03-31 21:39:02 +02:00
Juan Linietsky
0e0a6bb39b
Removed unused property hints and Object::get_translatable_strings()
* Remove unused `EditorPropertyMember` and related hints, previouly used by
  VisualScript. Such logic should be implemented in the VS module itself.
* As the above broke compatibility with the VS module, clean up the other
  hacks that were still in core in support of VisualScript.
* `PROPERTY_USAGE_INTERNATIONALIZED` was only used in Object's
  `get_translatable_strings()`, which is a legacy function not used anywhere.
  So both are removed.
* Reordered some usage flags after the above removal to minimize the diff.
* General clean up.

Fixes #30203.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-01-09 16:56:01 +01:00
Juan Linietsky
2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Eric M
af438ae742 Ensure popup menu redraws items when shortcuts update. 2022-09-26 23:21:32 +10:00
Michael Alexsander
9507e91c07 Rename PopupMenu's set/get_current_index() to set/get_focused_item() 2022-09-06 10:51:14 -03:00
Yuri Sizov
15fd025f90 Add dumb and manual theme caching systems to Window 2022-09-01 16:05:02 +03:00
bruvzg
8c56a7416b
Implement MenuBar control to wrap PopupMenus or native menu, use native menu for editor. 2022-08-18 22:25:44 +03:00
Rémi Verschelde
90019676b0 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 11:17:40 +02:00
bruvzg
344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
FireForge
f85eb4164a Expose PopupMenu set/get_item_horizontal_offset()
- Renames setter from set_item_h_offset()
- Adds getter
2022-06-15 02:08:44 -05:00
bruvzg
f7269fe878
Single-window mode popups and edited scene windows fixes.
Fix single-window mode popup not closing when OptionBox is clicked.
Fix single-window mode submenus closing when parent menu item, that was used to open it is clicked (using same safe-area logic as platform specific code).
Disallow windows that are part of an edited scene from being set as exclusive or popup to prevent it from locking up the editor.
2022-06-13 09:56:08 +03:00
reduz
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
bruvzg
8b0761d1fd
Fix sub-menu keyboard navigation. 2022-04-13 09:58:38 +03:00
Rémi Verschelde
f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Michael Alexsander
21bf23d966 Enhancements and fixes for OptionButton and PopupMenu 2022-02-06 16:03:18 -03:00
Ricardo Buring
4562106cbf OptionButton::pressed(): give focus to selected 2022-01-15 22:52:12 +01:00
Rémi Verschelde
fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Aaron Franke
3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
rafallus
4554892223 Implement inspector property array for PopupMenu and MenuButton 2021-11-03 09:32:29 -06:00
Michael Alexsander
ee4b0108e0 Make some enhancements to the POT generation 2021-09-02 11:12:54 -03:00
reduz
5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
Michael Alexsander
a690cd9251 Make MenuButton's switch_on_hover work again 2021-07-22 14:27:30 -03:00