yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::editor::WelcomeScreen Class Reference

Modern welcome screen with project grid and quick actions. More...

#include <welcome_screen.h>

Collaboration diagram for yaze::editor::WelcomeScreen:

Classes

struct  Particle
 

Public Member Functions

 WelcomeScreen ()
 
bool Show (bool *p_open)
 Show the welcome screen.
 
void SetOpenRomCallback (std::function< void()> callback)
 Set callback for opening ROM.
 
void SetNewProjectCallback (std::function< void()> callback)
 Set callback for creating new project.
 
void SetNewProjectWithTemplateCallback (std::function< void(const std::string &)> callback)
 Set callback for creating project with template.
 
void SetOpenProjectCallback (std::function< void(const std::string &)> callback)
 Set callback for opening project.
 
void SetOpenAgentCallback (std::function< void()> callback)
 Set callback for opening AI Agent.
 
void SetOpenProjectDialogCallback (std::function< void()> callback)
 Set callback for opening the project file dialog.
 
void SetOpenProjectManagementCallback (std::function< void()> callback)
 Set callback for showing project management.
 
void SetOpenProjectFileEditorCallback (std::function< void()> callback)
 Set callback for showing the project file editor.
 
void RefreshRecentProjects ()
 Refresh recent projects list from the project manager.
 
void UpdateAnimations ()
 Update animation time for dynamic effects.
 
bool ShouldShow () const
 Check if screen should be shown.
 
void MarkManuallyClosed ()
 Mark as manually closed (don't show again this session)
 
void ResetFirstShow ()
 Reset first show flag (for testing/forcing display)
 
void SetLayoutOffsets (float left, float right)
 Set layout offsets for sidebar awareness.
 
void SetContextState (bool has_rom, bool has_project)
 Set context state for gating actions.
 

Private Member Functions

void DrawHeader ()
 
void DrawQuickActions ()
 
void DrawRecentProjects ()
 
void DrawProjectPanel (const RecentProject &project, int index, const ImVec2 &card_size)
 
void DrawTemplatesSection ()
 
void DrawTipsSection ()
 
void DrawWhatsNew ()
 

Private Attributes

std::vector< RecentProjectrecent_projects_
 
bool manually_closed_ = false
 
bool first_show_attempt_ = true
 
std::function< void()> open_rom_callback_
 
std::function< void()> new_project_callback_
 
std::function< void(const std::string &) open_project_callback_ )
 
std::function< void(const std::string &) new_project_with_template_callback_ )
 
std::function< void()> open_agent_callback_
 
std::function< void()> open_project_dialog_callback_
 
std::function< void()> open_project_management_callback_
 
std::function< void()> open_project_file_editor_callback_
 
int selected_template_ = 0
 
float animation_time_ = 0.0f
 
float card_hover_scale_ [6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}
 
int hovered_card_ = -1
 
bool entry_animations_started_ = false
 
float entry_time_ = 0.0f
 
ImVec2 triforce_positions_ [kNumTriforces] = {}
 
ImVec2 triforce_base_positions_ [kNumTriforces] = {}
 
bool triforce_positions_initialized_ = false
 
Particle particles_ [kMaxParticles] = {}
 
int active_particle_count_ = 0
 
bool show_triforce_settings_ = false
 
float triforce_alpha_multiplier_ = 1.0f
 
float triforce_speed_multiplier_ = 0.3f
 
float triforce_size_multiplier_ = 1.0f
 
bool triforce_mouse_repel_enabled_ = true
 
bool particles_enabled_ = true
 
float particle_spawn_rate_ = 2.0f
 
float left_offset_ = 0.0f
 
float right_offset_ = 0.0f
 
bool has_rom_ = false
 
bool has_project_ = false
 
bool pending_recent_refresh_ = false
 

Static Private Attributes

static constexpr int kMaxRecentProjects = 6
 
static constexpr float kEntryAnimDuration = 0.4f
 
static constexpr float kEntryStaggerDelay = 0.08f
 
static constexpr int kNumTriforces = 6
 
static constexpr int kMaxParticles = 50
 

Detailed Description

Modern welcome screen with project grid and quick actions.

Definition at line 34 of file welcome_screen.h.

Constructor & Destructor Documentation

◆ WelcomeScreen()

yaze::editor::WelcomeScreen::WelcomeScreen ( )

Definition at line 497 of file welcome_screen.cc.

References RefreshRecentProjects().

Here is the call graph for this function:

Member Function Documentation

◆ Show()

◆ SetOpenRomCallback()

void yaze::editor::WelcomeScreen::SetOpenRomCallback ( std::function< void()> callback)
inline

Set callback for opening ROM.

Definition at line 48 of file welcome_screen.h.

References open_rom_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetNewProjectCallback()

void yaze::editor::WelcomeScreen::SetNewProjectCallback ( std::function< void()> callback)
inline

Set callback for creating new project.

Definition at line 55 of file welcome_screen.h.

References new_project_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetNewProjectWithTemplateCallback()

void yaze::editor::WelcomeScreen::SetNewProjectWithTemplateCallback ( std::function< void(const std::string &)> callback)
inline

Set callback for creating project with template.

Definition at line 62 of file welcome_screen.h.

References new_project_with_template_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetOpenProjectCallback()

void yaze::editor::WelcomeScreen::SetOpenProjectCallback ( std::function< void(const std::string &)> callback)
inline

Set callback for opening project.

Definition at line 70 of file welcome_screen.h.

References open_project_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetOpenAgentCallback()

void yaze::editor::WelcomeScreen::SetOpenAgentCallback ( std::function< void()> callback)
inline

Set callback for opening AI Agent.

Definition at line 78 of file welcome_screen.h.

References open_agent_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetOpenProjectDialogCallback()

void yaze::editor::WelcomeScreen::SetOpenProjectDialogCallback ( std::function< void()> callback)
inline

Set callback for opening the project file dialog.

Definition at line 85 of file welcome_screen.h.

References open_project_dialog_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetOpenProjectManagementCallback()

void yaze::editor::WelcomeScreen::SetOpenProjectManagementCallback ( std::function< void()> callback)
inline

Set callback for showing project management.

Definition at line 92 of file welcome_screen.h.

References open_project_management_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ SetOpenProjectFileEditorCallback()

void yaze::editor::WelcomeScreen::SetOpenProjectFileEditorCallback ( std::function< void()> callback)
inline

Set callback for showing the project file editor.

Definition at line 99 of file welcome_screen.h.

References open_project_file_editor_callback_.

Referenced by yaze::editor::EditorManager::SetupWelcomeScreenCallbacks().

◆ RefreshRecentProjects()

◆ UpdateAnimations()

void yaze::editor::WelcomeScreen::UpdateAnimations ( )

Update animation time for dynamic effects.

Definition at line 847 of file welcome_screen.cc.

References animation_time_, card_hover_scale_, and hovered_card_.

Referenced by Show().

◆ ShouldShow()

bool yaze::editor::WelcomeScreen::ShouldShow ( ) const
inline

Check if screen should be shown.

Definition at line 116 of file welcome_screen.h.

References manually_closed_.

◆ MarkManuallyClosed()

void yaze::editor::WelcomeScreen::MarkManuallyClosed ( )
inline

Mark as manually closed (don't show again this session)

Definition at line 121 of file welcome_screen.h.

References manually_closed_.

◆ ResetFirstShow()

void yaze::editor::WelcomeScreen::ResetFirstShow ( )
inline

Reset first show flag (for testing/forcing display)

Definition at line 126 of file welcome_screen.h.

References first_show_attempt_.

◆ SetLayoutOffsets()

void yaze::editor::WelcomeScreen::SetLayoutOffsets ( float left,
float right )
inline

Set layout offsets for sidebar awareness.

Parameters
leftLeft sidebar width (0 if hidden)
rightRight panel width (0 if hidden)

Definition at line 133 of file welcome_screen.h.

References left_offset_, and right_offset_.

◆ SetContextState()

void yaze::editor::WelcomeScreen::SetContextState ( bool has_rom,
bool has_project )
inline

Set context state for gating actions.

Definition at line 141 of file welcome_screen.h.

References has_project_, and has_rom_.

◆ DrawHeader()

void yaze::editor::WelcomeScreen::DrawHeader ( )
private

◆ DrawQuickActions()

◆ DrawRecentProjects()

void yaze::editor::WelcomeScreen::DrawRecentProjects ( )
private

◆ DrawProjectPanel()

◆ DrawTemplatesSection()

◆ DrawTipsSection()

void yaze::editor::WelcomeScreen::DrawTipsSection ( )
private

Definition at line 1778 of file welcome_screen.cc.

References yaze::editor::GetStaggeredEntryProgress(), ICON_MD_CLOSE, and ICON_MD_LIGHTBULB.

Referenced by Show().

Here is the call graph for this function:

◆ DrawWhatsNew()

Member Data Documentation

◆ recent_projects_

std::vector<RecentProject> yaze::editor::WelcomeScreen::recent_projects_
private

Definition at line 156 of file welcome_screen.h.

Referenced by DrawQuickActions(), and RefreshRecentProjects().

◆ manually_closed_

bool yaze::editor::WelcomeScreen::manually_closed_ = false
private

Definition at line 157 of file welcome_screen.h.

Referenced by MarkManuallyClosed(), and ShouldShow().

◆ first_show_attempt_

bool yaze::editor::WelcomeScreen::first_show_attempt_ = true
private

Definition at line 158 of file welcome_screen.h.

Referenced by ResetFirstShow(), and Show().

◆ open_rom_callback_

std::function<void()> yaze::editor::WelcomeScreen::open_rom_callback_
private

Definition at line 161 of file welcome_screen.h.

Referenced by DrawQuickActions(), and SetOpenRomCallback().

◆ new_project_callback_

std::function<void()> yaze::editor::WelcomeScreen::new_project_callback_
private

Definition at line 162 of file welcome_screen.h.

Referenced by SetNewProjectCallback().

◆ open_project_callback_

std::function<void(const std::string&) yaze::editor::WelcomeScreen::open_project_callback_)
private

Definition at line 163 of file welcome_screen.h.

Referenced by DrawQuickActions(), and SetOpenProjectCallback().

◆ new_project_with_template_callback_

std::function<void(const std::string&) yaze::editor::WelcomeScreen::new_project_with_template_callback_)
private

Definition at line 164 of file welcome_screen.h.

Referenced by SetNewProjectWithTemplateCallback().

◆ open_agent_callback_

std::function<void()> yaze::editor::WelcomeScreen::open_agent_callback_
private

Definition at line 165 of file welcome_screen.h.

Referenced by SetOpenAgentCallback().

◆ open_project_dialog_callback_

std::function<void()> yaze::editor::WelcomeScreen::open_project_dialog_callback_
private

Definition at line 166 of file welcome_screen.h.

Referenced by SetOpenProjectDialogCallback().

◆ open_project_management_callback_

std::function<void()> yaze::editor::WelcomeScreen::open_project_management_callback_
private

Definition at line 167 of file welcome_screen.h.

Referenced by SetOpenProjectManagementCallback().

◆ open_project_file_editor_callback_

std::function<void()> yaze::editor::WelcomeScreen::open_project_file_editor_callback_
private

Definition at line 168 of file welcome_screen.h.

Referenced by SetOpenProjectFileEditorCallback().

◆ selected_template_

int yaze::editor::WelcomeScreen::selected_template_ = 0
private

Definition at line 171 of file welcome_screen.h.

◆ kMaxRecentProjects

constexpr int yaze::editor::WelcomeScreen::kMaxRecentProjects = 6
staticconstexprprivate

Definition at line 172 of file welcome_screen.h.

Referenced by RefreshRecentProjects().

◆ animation_time_

float yaze::editor::WelcomeScreen::animation_time_ = 0.0f
private

Definition at line 175 of file welcome_screen.h.

Referenced by Show(), and UpdateAnimations().

◆ card_hover_scale_

float yaze::editor::WelcomeScreen::card_hover_scale_[6] = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}
private

Definition at line 176 of file welcome_screen.h.

Referenced by UpdateAnimations().

◆ hovered_card_

int yaze::editor::WelcomeScreen::hovered_card_ = -1
private

Definition at line 177 of file welcome_screen.h.

Referenced by UpdateAnimations().

◆ entry_animations_started_

bool yaze::editor::WelcomeScreen::entry_animations_started_ = false
private

Definition at line 180 of file welcome_screen.h.

Referenced by Show().

◆ entry_time_

float yaze::editor::WelcomeScreen::entry_time_ = 0.0f
private

Definition at line 181 of file welcome_screen.h.

Referenced by DrawHeader(), DrawQuickActions(), and Show().

◆ kEntryAnimDuration

constexpr float yaze::editor::WelcomeScreen::kEntryAnimDuration = 0.4f
staticconstexprprivate

Definition at line 182 of file welcome_screen.h.

Referenced by DrawHeader(), and DrawQuickActions().

◆ kEntryStaggerDelay

constexpr float yaze::editor::WelcomeScreen::kEntryStaggerDelay = 0.08f
staticconstexprprivate

Definition at line 183 of file welcome_screen.h.

Referenced by DrawHeader(), and DrawQuickActions().

◆ kNumTriforces

constexpr int yaze::editor::WelcomeScreen::kNumTriforces = 6
staticconstexprprivate

Definition at line 186 of file welcome_screen.h.

Referenced by Show().

◆ triforce_positions_

ImVec2 yaze::editor::WelcomeScreen::triforce_positions_[kNumTriforces] = {}
private

Definition at line 187 of file welcome_screen.h.

Referenced by Show().

◆ triforce_base_positions_

ImVec2 yaze::editor::WelcomeScreen::triforce_base_positions_[kNumTriforces] = {}
private

Definition at line 188 of file welcome_screen.h.

Referenced by Show().

◆ triforce_positions_initialized_

bool yaze::editor::WelcomeScreen::triforce_positions_initialized_ = false
private

Definition at line 189 of file welcome_screen.h.

Referenced by Show().

◆ kMaxParticles

constexpr int yaze::editor::WelcomeScreen::kMaxParticles = 50
staticconstexprprivate

Definition at line 192 of file welcome_screen.h.

Referenced by Show().

◆ particles_

Particle yaze::editor::WelcomeScreen::particles_[kMaxParticles] = {}
private

Definition at line 201 of file welcome_screen.h.

Referenced by Show().

◆ active_particle_count_

int yaze::editor::WelcomeScreen::active_particle_count_ = 0
private

Definition at line 202 of file welcome_screen.h.

Referenced by Show().

◆ show_triforce_settings_

bool yaze::editor::WelcomeScreen::show_triforce_settings_ = false
private

Definition at line 205 of file welcome_screen.h.

◆ triforce_alpha_multiplier_

float yaze::editor::WelcomeScreen::triforce_alpha_multiplier_ = 1.0f
private

Definition at line 206 of file welcome_screen.h.

Referenced by Show().

◆ triforce_speed_multiplier_

float yaze::editor::WelcomeScreen::triforce_speed_multiplier_ = 0.3f
private

Definition at line 207 of file welcome_screen.h.

Referenced by Show().

◆ triforce_size_multiplier_

float yaze::editor::WelcomeScreen::triforce_size_multiplier_ = 1.0f
private

Definition at line 208 of file welcome_screen.h.

Referenced by Show().

◆ triforce_mouse_repel_enabled_

bool yaze::editor::WelcomeScreen::triforce_mouse_repel_enabled_ = true
private

Definition at line 209 of file welcome_screen.h.

Referenced by Show().

◆ particles_enabled_

bool yaze::editor::WelcomeScreen::particles_enabled_ = true
private

Definition at line 210 of file welcome_screen.h.

Referenced by Show().

◆ particle_spawn_rate_

float yaze::editor::WelcomeScreen::particle_spawn_rate_ = 2.0f
private

Definition at line 211 of file welcome_screen.h.

Referenced by Show().

◆ left_offset_

float yaze::editor::WelcomeScreen::left_offset_ = 0.0f
private

Definition at line 214 of file welcome_screen.h.

Referenced by SetLayoutOffsets(), and Show().

◆ right_offset_

float yaze::editor::WelcomeScreen::right_offset_ = 0.0f
private

Definition at line 215 of file welcome_screen.h.

Referenced by SetLayoutOffsets(), and Show().

◆ has_rom_

bool yaze::editor::WelcomeScreen::has_rom_ = false
private

Definition at line 218 of file welcome_screen.h.

Referenced by SetContextState().

◆ has_project_

bool yaze::editor::WelcomeScreen::has_project_ = false
private

Definition at line 219 of file welcome_screen.h.

Referenced by SetContextState().

◆ pending_recent_refresh_

bool yaze::editor::WelcomeScreen::pending_recent_refresh_ = false
private

Definition at line 222 of file welcome_screen.h.


The documentation for this class was generated from the following files: