diff options
Diffstat (limited to 'editor/project_manager.h')
-rw-r--r-- | editor/project_manager.h | 79 |
1 files changed, 58 insertions, 21 deletions
diff --git a/editor/project_manager.h b/editor/project_manager.h index 7ed8df8a9d..1c829e971d 100644 --- a/editor/project_manager.h +++ b/editor/project_manager.h @@ -41,11 +41,15 @@ class EditorFileDialog; class HFlowContainer; class LineEdit; class LinkButton; +class MarginContainer; class OptionButton; class PanelContainer; class ProjectDialog; class ProjectList; +class QuickSettingsDialog; +class RichTextLabel; class TabContainer; +class VBoxContainer; class ProjectManager : public Control { GDCLASS(ProjectManager, Control); @@ -63,42 +67,79 @@ class ProjectManager : public Control { // Main layout. + Ref<Theme> theme; + void _update_size_limits(); + void _update_theme(bool p_skip_creation = false); + MarginContainer *root_container = nullptr; Panel *background_panel = nullptr; - Button *about_btn = nullptr; - LinkButton *version_btn = nullptr; + VBoxContainer *main_vbox = nullptr; - ConfirmationDialog *open_templates = nullptr; - EditorAbout *about = nullptr; + HBoxContainer *title_bar = nullptr; + Button *title_bar_logo = nullptr; + HBoxContainer *main_view_toggles = nullptr; + Button *quick_settings_button = nullptr; - void _show_about(); - void _version_button_pressed(); + enum MainViewTab { + MAIN_VIEW_PROJECTS, + MAIN_VIEW_ASSETLIB, + MAIN_VIEW_MAX + }; + + MainViewTab current_main_view = MAIN_VIEW_PROJECTS; + HashMap<MainViewTab, Control *> main_view_map; + HashMap<MainViewTab, Button *> main_view_toggle_map; + + PanelContainer *main_view_container = nullptr; + Ref<ButtonGroup> main_view_toggles_group; + + Button *_add_main_view(MainViewTab p_id, const String &p_name, const Ref<Texture2D> &p_icon, Control *p_view_control); + void _set_main_view_icon(MainViewTab p_id, const Ref<Texture2D> &p_icon); + void _select_main_view(int p_id); - TabContainer *tabs = nullptr; VBoxContainer *local_projects_vb = nullptr; EditorAssetLibrary *asset_library = nullptr; - void _on_tab_changed(int p_tab); - void _open_asset_library(); + EditorAbout *about_dialog = nullptr; - // Quick settings. + void _show_about(); + void _open_asset_library_confirmed(); - OptionButton *language_btn = nullptr; - ConfirmationDialog *restart_required_dialog = nullptr; + AcceptDialog *error_dialog = nullptr; - void _language_selected(int p_id); - void _restart_confirm(); + void _show_error(const String &p_message, const Size2 &p_min_size = Size2()); void _dim_window(); + // Quick settings. + + QuickSettingsDialog *quick_settings_dialog = nullptr; + + void _show_quick_settings(); + void _restart_confirmed(); + + // Footer. + + LinkButton *version_btn = nullptr; + + void _version_button_pressed(); + // Project list. - ProjectList *_project_list = nullptr; + VBoxContainer *empty_list_placeholder = nullptr; + Button *empty_list_create_project = nullptr; + Button *empty_list_import_project = nullptr; + Button *empty_list_open_assetlib = nullptr; + Label *empty_list_online_warning = nullptr; + + void _update_list_placeholder(); + + ProjectList *project_list = nullptr; LineEdit *search_box = nullptr; Label *loading_label = nullptr; OptionButton *filter_option = nullptr; - PanelContainer *search_panel = nullptr; + PanelContainer *project_list_panel = nullptr; Button *create_btn = nullptr; Button *import_btn = nullptr; @@ -121,11 +162,7 @@ class ProjectManager : public Control { ConfirmationDialog *multi_open_ask = nullptr; ConfirmationDialog *multi_run_ask = nullptr; - HBoxContainer *settings_hb = nullptr; - - AcceptDialog *run_error_diag = nullptr; - AcceptDialog *dialog_error = nullptr; - ProjectDialog *npdialog = nullptr; + ProjectDialog *project_dialog = nullptr; void _scan_projects(); void _run_project(); |