mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 17:19:50 +00:00
Make it possible for extensions to add menu items
With metadata
This commit is contained in:
parent
f2a24aaffd
commit
6d641259d5
|
@ -274,7 +274,7 @@ func _setup_image_menu() -> void:
|
||||||
"Outline": 0,
|
"Outline": 0,
|
||||||
"Adjust Hue/Saturation/Value": 0,
|
"Adjust Hue/Saturation/Value": 0,
|
||||||
"Gradient": 0,
|
"Gradient": 0,
|
||||||
# "Shader" : 0
|
# "Shader": 0
|
||||||
}
|
}
|
||||||
var image_menu: PopupMenu = image_menu_button.get_popup()
|
var image_menu: PopupMenu = image_menu_button.get_popup()
|
||||||
|
|
||||||
|
@ -323,6 +323,15 @@ func _setup_help_menu() -> void:
|
||||||
help_menu.connect("id_pressed", self, "help_menu_id_pressed")
|
help_menu.connect("id_pressed", self, "help_menu_id_pressed")
|
||||||
|
|
||||||
|
|
||||||
|
func _handle_metadata(id: int, menu_button: MenuButton) -> void:
|
||||||
|
# Used for extensions that want to add extra menu items
|
||||||
|
var metadata = menu_button.get_popup().get_item_metadata(id)
|
||||||
|
if metadata:
|
||||||
|
if metadata is Object:
|
||||||
|
if metadata.has_method("menu_item_clicked"):
|
||||||
|
metadata.call("menu_item_clicked")
|
||||||
|
|
||||||
|
|
||||||
func file_menu_id_pressed(id: int) -> void:
|
func file_menu_id_pressed(id: int) -> void:
|
||||||
match id:
|
match id:
|
||||||
FileMenuId.NEW:
|
FileMenuId.NEW:
|
||||||
|
@ -342,6 +351,8 @@ func file_menu_id_pressed(id: int) -> void:
|
||||||
Global.dialog_open(true)
|
Global.dialog_open(true)
|
||||||
FileMenuId.QUIT:
|
FileMenuId.QUIT:
|
||||||
Global.control.show_quit_dialog()
|
Global.control.show_quit_dialog()
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, file_menu_button)
|
||||||
|
|
||||||
|
|
||||||
func _on_new_project_file_menu_option_pressed() -> void:
|
func _on_new_project_file_menu_option_pressed() -> void:
|
||||||
|
@ -428,6 +439,8 @@ func edit_menu_id_pressed(id: int) -> void:
|
||||||
EditMenuId.PREFERENCES:
|
EditMenuId.PREFERENCES:
|
||||||
Global.preferences_dialog.popup_centered(Vector2(400, 280))
|
Global.preferences_dialog.popup_centered(Vector2(400, 280))
|
||||||
Global.dialog_open(true)
|
Global.dialog_open(true)
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, edit_menu_button)
|
||||||
|
|
||||||
|
|
||||||
func view_menu_id_pressed(id: int) -> void:
|
func view_menu_id_pressed(id: int) -> void:
|
||||||
|
@ -444,6 +457,9 @@ func view_menu_id_pressed(id: int) -> void:
|
||||||
_toggle_show_rulers()
|
_toggle_show_rulers()
|
||||||
ViewMenuId.SHOW_GUIDES:
|
ViewMenuId.SHOW_GUIDES:
|
||||||
_toggle_show_guides()
|
_toggle_show_guides()
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, view_menu_button)
|
||||||
|
|
||||||
Global.canvas.update()
|
Global.canvas.update()
|
||||||
|
|
||||||
|
|
||||||
|
@ -469,6 +485,8 @@ func window_menu_id_pressed(id: int) -> void:
|
||||||
_toggle_zen_mode()
|
_toggle_zen_mode()
|
||||||
WindowMenuId.FULLSCREEN_MODE:
|
WindowMenuId.FULLSCREEN_MODE:
|
||||||
_toggle_fullscreen()
|
_toggle_fullscreen()
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, window_menu_button)
|
||||||
|
|
||||||
|
|
||||||
func _panels_submenu_id_pressed(id: int) -> void:
|
func _panels_submenu_id_pressed(id: int) -> void:
|
||||||
|
@ -616,9 +634,12 @@ func image_menu_id_pressed(id: int) -> void:
|
||||||
Global.control.get_node("Dialogs/ImageEffects/GradientDialog").popup_centered()
|
Global.control.get_node("Dialogs/ImageEffects/GradientDialog").popup_centered()
|
||||||
Global.dialog_open(true)
|
Global.dialog_open(true)
|
||||||
|
|
||||||
ImageMenuId.SHADER:
|
# ImageMenuId.SHADER:
|
||||||
Global.control.get_node("Dialogs/ImageEffects/ShaderEffect").popup_centered()
|
# Global.control.get_node("Dialogs/ImageEffects/ShaderEffect").popup_centered()
|
||||||
Global.dialog_open(true)
|
# Global.dialog_open(true)
|
||||||
|
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, image_menu_button)
|
||||||
|
|
||||||
|
|
||||||
func _show_scale_image_popup() -> void:
|
func _show_scale_image_popup() -> void:
|
||||||
|
@ -654,6 +675,8 @@ func select_menu_id_pressed(id: int) -> void:
|
||||||
Global.canvas.selection.clear_selection(true)
|
Global.canvas.selection.clear_selection(true)
|
||||||
SelectMenuId.INVERT:
|
SelectMenuId.INVERT:
|
||||||
Global.canvas.selection.invert()
|
Global.canvas.selection.invert()
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, select_menu_button)
|
||||||
|
|
||||||
|
|
||||||
func help_menu_id_pressed(id: int) -> void:
|
func help_menu_id_pressed(id: int) -> void:
|
||||||
|
@ -676,3 +699,5 @@ func help_menu_id_pressed(id: int) -> void:
|
||||||
HelpMenuId.ABOUT_PIXELORAMA:
|
HelpMenuId.ABOUT_PIXELORAMA:
|
||||||
Global.control.get_node("Dialogs/AboutDialog").popup_centered()
|
Global.control.get_node("Dialogs/AboutDialog").popup_centered()
|
||||||
Global.dialog_open(true)
|
Global.dialog_open(true)
|
||||||
|
_:
|
||||||
|
_handle_metadata(id, help_menu_button)
|
||||||
|
|
Loading…
Reference in a new issue