1#ifndef YAZE_APP_EDITOR_SHELL_COORDINATOR_WELCOME_SCREEN_H_
2#define YAZE_APP_EDITOR_SHELL_COORDINATOR_WELCOME_SCREEN_H_
9#include "imgui/imgui.h"
29 bool Show(
bool* p_open);
49 std::function<
void(
const std::string&)> callback) {
57 std::function<
void(
const std::string&)> callback) {
168 const ImVec2& card_size);
Manages user preferences and settings persistence.
Modern welcome screen with project grid and quick actions.
std::function< void()> open_rom_callback_
std::function< void()> new_project_callback_
void SetNewProjectCallback(std::function< void()> callback)
Set callback for creating new project.
bool entry_animations_started_
void MarkManuallyClosed()
Mark as manually closed (don't show again this session)
void DrawUndoRemovalBanner()
float triforce_alpha_multiplier_
void SetOpenAgentCallback(std::function< void()> callback)
Set callback for opening AI Agent.
static constexpr float kEntryStaggerDelay
float triforce_speed_multiplier_
bool show_triforce_settings_
std::string pending_annotation_path_
RecentProjectsModel recent_projects_model_
static constexpr int kNumTriforces
const RecentProjectsModel & recent_projects() const
void DrawRecentAnnotationPopup()
void SetLayoutOffsets(float left, float right)
Set layout offsets for sidebar awareness.
RecentAnnotationKind pending_annotation_kind_
static constexpr float kEntryAnimDuration
void SetOpenAssemblyEditorNoRomCallback(std::function< void()> callback)
Open the assembly editor for file/folder work (no ROM required).
void RefreshRecentProjects(bool force=false)
Refresh recent projects list from the project manager.
bool ShouldShow() const
Check if screen should be shown.
float triforce_size_multiplier_
void DrawProjectPanel(const RecentProject &project, int index, const ImVec2 &card_size)
void SetOpenRomCallback(std::function< void()> callback)
Set callback for opening ROM.
std::function< void()> open_project_file_editor_callback_
RecentProjectsModel & recent_projects()
Accessor used by command-palette wiring so the same recent list drives both the visual cards and the ...
ImVec2 triforce_base_positions_[kNumTriforces]
Particle particles_[kMaxParticles]
void SetOpenPrototypeResearchCallback(std::function< void()> callback)
Open the graphics editor focused on prototype research (no ROM).
void SetOpenProjectDialogCallback(std::function< void()> callback)
Set callback for opening the project file dialog.
std::function< void(const std::string &) new_project_with_template_callback_)
void UpdateAnimations()
Update animation time for dynamic effects.
void SetOpenProjectManagementCallback(std::function< void()> callback)
Set callback for showing project management.
static constexpr int kMaxParticles
void SetOpenProjectFileEditorCallback(std::function< void()> callback)
Set callback for showing the project file editor.
bool Show(bool *p_open)
Show the welcome screen.
float card_hover_scale_[6]
int active_particle_count_
void DrawTemplatesSection()
ImVec2 triforce_positions_[kNumTriforces]
void SetNewProjectWithTemplateCallback(std::function< void(const std::string &)> callback)
Set callback for creating project with template.
std::function< void(const std::string &) open_project_callback_)
void DrawRecentProjects()
std::function< void()> open_project_dialog_callback_
void PersistAnimationSettings()
UserSettings * user_settings_
bool triforce_mouse_repel_enabled_
void SetOpenProjectCallback(std::function< void(const std::string &)> callback)
Set callback for opening project.
std::function< void()> open_prototype_research_callback_
void SetContextState(bool has_rom, bool has_project)
Set context state for gating actions.
void SetUserSettings(UserSettings *settings)
Wire persisted user settings so animation tweaks survive restart.
std::function< void()> open_assembly_editor_no_rom_callback_
std::function< void()> open_agent_callback_
std::function< void()> open_project_management_callback_
bool triforce_positions_initialized_
float particle_spawn_accumulator_
float particle_spawn_rate_