Modern welcome screen with project grid and quick actions. More...
#include <welcome_screen.h>

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 | SetOpenProjectCallback (std::function< void(const std::string &)> callback) |
| Set callback for opening project. | |
| 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) | |
Private Member Functions | |
| void | DrawHeader () |
| void | DrawQuickActions () |
| void | DrawRecentProjects () |
| void | DrawProjectCard (const RecentProject &project, int index) |
| void | DrawTemplatesSection () |
| void | DrawTipsSection () |
| void | DrawWhatsNew () |
Private Attributes | |
| std::vector< RecentProject > | recent_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_ |
| 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 |
| 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 |
Static Private Attributes | |
| static constexpr int | kMaxRecentProjects = 6 |
| static constexpr int | kNumTriforces = 6 |
| static constexpr int | kMaxParticles = 50 |
Modern welcome screen with project grid and quick actions.
Definition at line 30 of file welcome_screen.h.
| yaze::editor::WelcomeScreen::WelcomeScreen | ( | ) |
Definition at line 132 of file welcome_screen.cc.
References RefreshRecentProjects().

| bool yaze::editor::WelcomeScreen::Show | ( | bool * | p_open | ) |
Show the welcome screen.
| p_open | Pointer to open state |
Definition at line 136 of file welcome_screen.cc.
References active_particle_count_, yaze::editor::WelcomeScreen::Particle::alpha, animation_time_, DrawHeader(), DrawQuickActions(), DrawRecentProjects(), DrawTemplatesSection(), DrawTipsSection(), DrawWhatsNew(), first_show_attempt_, yaze::TimingManager::Get(), yaze::TimingManager::GetDeltaTime(), kMaxParticles, kNumTriforces, yaze::editor::WelcomeScreen::Particle::lifetime, M_PI, yaze::editor::WelcomeScreen::Particle::max_lifetime, particle_spawn_rate_, particles_, particles_enabled_, yaze::editor::WelcomeScreen::Particle::position, yaze::editor::WelcomeScreen::Particle::size, triforce_alpha_multiplier_, triforce_base_positions_, triforce_mouse_repel_enabled_, triforce_positions_, triforce_positions_initialized_, triforce_size_multiplier_, triforce_speed_multiplier_, UpdateAnimations(), and yaze::editor::WelcomeScreen::Particle::velocity.
|
inline |
Set callback for opening ROM.
Definition at line 44 of file welcome_screen.h.
References open_rom_callback_.
Referenced by yaze::editor::EditorManager::Initialize().
|
inline |
Set callback for creating new project.
Definition at line 51 of file welcome_screen.h.
References new_project_callback_.
Referenced by yaze::editor::EditorManager::Initialize().
|
inline |
Set callback for opening project.
Definition at line 58 of file welcome_screen.h.
References open_project_callback_.
Referenced by yaze::editor::EditorManager::Initialize().
| void yaze::editor::WelcomeScreen::RefreshRecentProjects | ( | ) |
Refresh recent projects list from the project manager.
Definition at line 423 of file welcome_screen.cc.
References yaze::editor::RecentProject::filepath, yaze::project::RecentFilesManager::GetInstance(), yaze::project::RecentFilesManager::GetRecentFiles(), kMaxRecentProjects, yaze::editor::RecentProject::last_modified, yaze::editor::RecentProject::name, recent_projects_, and yaze::editor::RecentProject::rom_title.
Referenced by WelcomeScreen().

| void yaze::editor::WelcomeScreen::UpdateAnimations | ( | ) |
Update animation time for dynamic effects.
Definition at line 411 of file welcome_screen.cc.
References animation_time_, card_hover_scale_, and hovered_card_.
Referenced by Show().
|
inline |
Check if screen should be shown.
Definition at line 75 of file welcome_screen.h.
References manually_closed_.
|
inline |
Mark as manually closed (don't show again this session)
Definition at line 80 of file welcome_screen.h.
References manually_closed_.
|
inline |
Reset first show flag (for testing/forcing display)
Definition at line 85 of file welcome_screen.h.
References first_show_attempt_.
|
private |
|
private |
Definition at line 497 of file welcome_screen.cc.
References ICON_MD_ADD_CIRCLE, ICON_MD_BOLT, ICON_MD_FOLDER_OPEN, ICON_MD_INFO, new_project_callback_, and open_rom_callback_.
Referenced by Show().
|
private |
Definition at line 546 of file welcome_screen.cc.
References DrawProjectCard(), ICON_MD_EXPLORE, ICON_MD_HISTORY, and recent_projects_.
Referenced by Show().

|
private |
Definition at line 578 of file welcome_screen.cc.
References card_hover_scale_, yaze::editor::RecentProject::filepath, hovered_card_, ICON_MD_FOLDER, ICON_MD_GAMEPAD, ICON_MD_INFO, ICON_MD_TOUCH_APP, ICON_MD_VIDEOGAME_ASSET, yaze::editor::RecentProject::name, open_project_callback_, and yaze::editor::RecentProject::rom_title.
Referenced by DrawRecentProjects().
|
private |
Definition at line 695 of file welcome_screen.cc.
References ICON_MD_AUTO_AWESOME, ICON_MD_AUTO_FIX_HIGH, ICON_MD_CLOSE, ICON_MD_COTTAGE, ICON_MD_LAYERS, ICON_MD_MAP, ICON_MD_MOUSE, ICON_MD_OPACITY, ICON_MD_REFRESH, ICON_MD_ROCKET_LAUNCH, ICON_MD_SPEED, ICON_MD_STAR, ICON_MD_TUNE, particle_spawn_rate_, particles_enabled_, selected_template_, show_triforce_settings_, triforce_alpha_multiplier_, triforce_mouse_repel_enabled_, triforce_size_multiplier_, and triforce_speed_multiplier_.
Referenced by Show().
|
private |
Definition at line 790 of file welcome_screen.cc.
References ICON_MD_CLOSE, ICON_MD_LIGHTBULB, and manually_closed_.
Referenced by Show().
|
private |
Definition at line 815 of file welcome_screen.cc.
References ICON_MD_CLOUD_SYNC, ICON_MD_HISTORY, ICON_MD_NEW_RELEASES, ICON_MD_OPEN_IN_NEW, ICON_MD_PALETTE, ICON_MD_PSYCHOLOGY, ICON_MD_SPEED, ICON_MD_VERIFIED, and YAZE_VERSION_STRING.
Referenced by Show().
|
private |
Definition at line 96 of file welcome_screen.h.
Referenced by DrawRecentProjects(), and RefreshRecentProjects().
|
private |
Definition at line 97 of file welcome_screen.h.
Referenced by DrawTipsSection(), MarkManuallyClosed(), and ShouldShow().
|
private |
Definition at line 98 of file welcome_screen.h.
Referenced by ResetFirstShow(), and Show().
|
private |
Definition at line 101 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetOpenRomCallback().
|
private |
Definition at line 102 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetNewProjectCallback().
|
private |
Definition at line 103 of file welcome_screen.h.
Referenced by DrawProjectCard(), and SetOpenProjectCallback().
|
private |
Definition at line 106 of file welcome_screen.h.
Referenced by DrawTemplatesSection().
|
staticconstexprprivate |
Definition at line 107 of file welcome_screen.h.
Referenced by RefreshRecentProjects().
|
private |
Definition at line 110 of file welcome_screen.h.
Referenced by Show(), and UpdateAnimations().
|
private |
Definition at line 111 of file welcome_screen.h.
Referenced by DrawProjectCard(), and UpdateAnimations().
|
private |
Definition at line 112 of file welcome_screen.h.
Referenced by DrawProjectCard(), and UpdateAnimations().
|
staticconstexprprivate |
Definition at line 115 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 116 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 117 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 118 of file welcome_screen.h.
Referenced by Show().
|
staticconstexprprivate |
Definition at line 121 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 130 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 131 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 134 of file welcome_screen.h.
Referenced by DrawTemplatesSection().
|
private |
Definition at line 135 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().
|
private |
Definition at line 136 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().
|
private |
Definition at line 137 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().
|
private |
Definition at line 138 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().
|
private |
Definition at line 139 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().
|
private |
Definition at line 140 of file welcome_screen.h.
Referenced by DrawTemplatesSection(), and Show().