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 | SetOpenPrototypeResearchCallback (std::function< void()> callback) |
| Open the graphics editor focused on prototype research (no ROM). | |
| void | SetOpenAssemblyEditorNoRomCallback (std::function< void()> callback) |
| Open the assembly editor for file/folder work (no ROM required). | |
| void | SetOpenProjectManagementCallback (std::function< void()> callback) |
| Set callback for showing project management. | |
| void | RefreshRecentProjects (bool force=false) |
| 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 | SetLayoutOffsets (float left, float right) |
| Set layout offsets for sidebar awareness. | |
| void | SetContextState (bool has_rom) |
| Set whether a ROM is currently loaded for first-run guidance. | |
| void | SetUserSettings (UserSettings *settings) |
| Load persisted Welcome-screen animation preferences. | |
| RecentProjectsModel & | recent_projects () |
| Accessor used by command-palette wiring so the same recent list drives both the visual cards and the palette's per-entry actions. | |
| const RecentProjectsModel & | recent_projects () const |
Private Types | |
| enum class | RecentAnnotationKind { None , Rename , EditNotes } |
Private Member Functions | |
| void | DrawHeader () |
| void | DrawQuickActions () |
| void | DrawRecentProjects () |
| void | DrawProjectPanel (const RecentProject &project, int index, const ImVec2 &card_size) |
| void | DrawFooterBar () |
| void | DrawFirstRunGuide () |
| void | DrawRecentAnnotationPopup () |
| void | DrawUndoRemovalBanner () |
Static Private Member Functions | |
| static bool | ShouldUseStackedLayout (float content_width, float content_height, float layout_scale) |
| static int | CalculateVisibleRecentCount (int entry_count, float available_height, float row_height, float row_gap, float more_line_height) |
| static const RecentProject * | FindResumeProject (const std::vector< RecentProject > &entries) |
Static Private Attributes | |
| static constexpr float | kEntryAnimDuration = 0.4f |
| static constexpr float | kEntryStaggerDelay = 0.08f |
| static constexpr int | kNumTriforces = 6 |
| static constexpr int | kMaxParticles = 50 |
Friends | |
| class | WelcomeScreenTestPeer |
Modern welcome screen with project grid and quick actions.
Definition at line 21 of file welcome_screen.h.
|
strongprivate |
| Enumerator | |
|---|---|
| None | |
| Rename | |
| EditNotes | |
Definition at line 209 of file welcome_screen.h.
| yaze::editor::WelcomeScreen::WelcomeScreen | ( | ) |
Definition at line 212 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 256 of file welcome_screen.cc.
References active_particle_count_, yaze::editor::WelcomeScreen::Particle::alpha, animation_time_, DrawFirstRunGuide(), DrawFooterBar(), DrawHeader(), DrawQuickActions(), DrawRecentProjects(), entry_animations_started_, entry_time_, yaze::TimingManager::Get(), yaze::TimingManager::GetDeltaTime(), kMaxParticles, kNumTriforces, left_offset_, yaze::editor::WelcomeScreen::Particle::lifetime, M_PI, yaze::editor::WelcomeScreen::Particle::max_lifetime, particle_spawn_accumulator_, particle_spawn_rate_, particles_, particles_enabled_, yaze::editor::WelcomeScreen::Particle::position, right_offset_, ShouldUseStackedLayout(), 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 35 of file welcome_screen.h.
References open_rom_callback_.
|
inline |
Set callback for creating new project.
Definition at line 42 of file welcome_screen.h.
References new_project_callback_.
|
inline |
Set callback for opening project.
Definition at line 49 of file welcome_screen.h.
References open_project_callback_.
|
inline |
Open the graphics editor focused on prototype research (no ROM).
Definition at line 57 of file welcome_screen.h.
References open_prototype_research_callback_.
|
inline |
Open the assembly editor for file/folder work (no ROM required).
Definition at line 64 of file welcome_screen.h.
References open_assembly_editor_no_rom_callback_.
|
inline |
Set callback for showing project management.
Definition at line 71 of file welcome_screen.h.
References open_project_management_callback_.
| void yaze::editor::WelcomeScreen::RefreshRecentProjects | ( | bool | force = false | ) |
Refresh recent projects list from the project manager.
Cheap on the no-op path: compares the RecentFilesManager generation counter against a cached value and short-circuits when unchanged. Pass force=true to bypass the cache (e.g. on manual "Refresh").
Definition at line 584 of file welcome_screen.cc.
References recent_projects_model_, and yaze::editor::RecentProjectsModel::Refresh().
Referenced by DrawRecentProjects(), DrawUndoRemovalBanner(), and WelcomeScreen().

| void yaze::editor::WelcomeScreen::UpdateAnimations | ( | ) |
Update animation time for dynamic effects.
Definition at line 577 of file welcome_screen.cc.
References animation_time_.
Referenced by Show().
|
inline |
Check if screen should be shown.
Definition at line 92 of file welcome_screen.h.
References manually_closed_.
|
inline |
Mark as manually closed (don't show again this session)
Definition at line 97 of file welcome_screen.h.
References manually_closed_.
|
inline |
Set layout offsets for sidebar awareness.
| left | Left sidebar width (0 if hidden) |
| right | Right panel width (0 if hidden) |
Definition at line 104 of file welcome_screen.h.
References left_offset_, and right_offset_.
|
inline |
Set whether a ROM is currently loaded for first-run guidance.
Definition at line 112 of file welcome_screen.h.
References has_rom_.
| void yaze::editor::WelcomeScreen::SetUserSettings | ( | UserSettings * | settings | ) |
Load persisted Welcome-screen animation preferences.
Definition at line 216 of file welcome_screen.cc.
References particles_enabled_, yaze::editor::UserSettings::prefs(), triforce_alpha_multiplier_, triforce_mouse_repel_enabled_, triforce_size_multiplier_, triforce_speed_multiplier_, and yaze::editor::UserSettings::Preferences::welcome_triforce_alpha.

|
inline |
Accessor used by command-palette wiring so the same recent list drives both the visual cards and the palette's per-entry actions.
Definition at line 123 of file welcome_screen.h.
References recent_projects_model_.
|
inline |
Definition at line 124 of file welcome_screen.h.
References recent_projects_model_.
|
private |
Definition at line 588 of file welcome_screen.cc.
References entry_time_, yaze::editor::GetStaggeredEntryProgress(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_CASTLE, kEntryAnimDuration, and kEntryStaggerDelay.
Referenced by Show().

|
private |
Definition at line 711 of file welcome_screen.cc.
References yaze::editor::RecentProjectsModel::entries(), entry_time_, yaze::editor::RecentProject::filepath, FindResumeProject(), yaze::gui::ThemeManager::Get(), yaze::editor::GetStaggeredEntryProgress(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_ADD_CIRCLE, ICON_MD_BOLT, ICON_MD_CODE, ICON_MD_CONSTRUCTION, ICON_MD_FOLDER_OPEN, ICON_MD_INFO, ICON_MD_PLAY_ARROW, kEntryAnimDuration, kEntryStaggerDelay, yaze::editor::RecentProject::name, new_project_callback_, open_assembly_editor_no_rom_callback_, open_project_callback_, open_prototype_research_callback_, open_rom_callback_, yaze::gui::PrimaryButton(), recent_projects_model_, and yaze::gui::ThemedButton().
Referenced by Show().
|
private |
Definition at line 896 of file welcome_screen.cc.
References CalculateVisibleRecentCount(), yaze::editor::RecentProjectsModel::ClearAll(), DrawProjectPanel(), DrawRecentAnnotationPopup(), DrawUndoRemovalBanner(), yaze::editor::RecentProjectsModel::entries(), entry_time_, yaze::editor::GetStaggeredEntryProgress(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_DELETE_SWEEP, ICON_MD_FOLDER_SPECIAL, ICON_MD_HISTORY, kEntryAnimDuration, kEntryStaggerDelay, open_project_management_callback_, recent_projects_model_, and RefreshRecentProjects().
Referenced by Show().
|
private |
Definition at line 1143 of file welcome_screen.cc.
References yaze::editor::RecentProject::display_name_override, EditNotes, yaze::editor::RecentProject::filepath, yaze::gui::GetOnSurfaceVec4(), yaze::gui::GetSurfaceVariantVec4(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_CONTENT_COPY, ICON_MD_DELETE_SWEEP, ICON_MD_EDIT, ICON_MD_INSERT_DRIVE_FILE, ICON_MD_NOTE, ICON_MD_OPEN_IN_NEW, ICON_MD_PUSH_PIN, ICON_MD_SEARCH, ICON_MD_WARNING, yaze::editor::RecentProject::is_missing, yaze::editor::RecentProject::item_icon, yaze::editor::RecentProject::item_type, yaze::editor::RecentProject::last_modified, yaze::editor::RecentProject::name, yaze::editor::RecentProject::notes, notes_buffer_, open_project_callback_, pending_annotation_kind_, pending_annotation_path_, yaze::editor::RecentProject::pinned, recent_projects_model_, yaze::editor::RecentProjectsModel::RelinkRecent(), yaze::editor::RecentProjectsModel::RemoveRecent(), Rename, rename_buffer_, yaze::editor::RecentProject::rom_title, yaze::editor::RecentProjectsModel::SetPinned(), yaze::util::FileDialogWrapper::ShowOpenFileDialog(), and yaze::editor::RecentProject::unavailable.
Referenced by DrawRecentProjects().
|
private |
Definition at line 1366 of file welcome_screen.cc.
References yaze::gui::ConvertColorToImVec4(), entry_time_, yaze::gui::ThemeManager::Get(), yaze::editor::GetStaggeredEntryProgress(), yaze::gui::GetTextSecondaryVec4(), ICON_MD_CLOSE, ICON_MD_INFO, ICON_MD_OPEN_IN_NEW, kEntryAnimDuration, kEntryStaggerDelay, manually_closed_, yaze::gui::OpenUrl(), release_notes_open_failed_, and YAZE_VERSION_STRING.
Referenced by Show().
|
private |
Definition at line 683 of file welcome_screen.cc.
References yaze::editor::RecentProjectsModel::entries(), entry_time_, yaze::editor::GetStaggeredEntryProgress(), yaze::gui::GetTextSecondaryVec4(), has_rom_, ICON_MD_AUTO_AWESOME, kEntryAnimDuration, kEntryStaggerDelay, and recent_projects_model_.
Referenced by Show().

|
private |
Definition at line 1007 of file welcome_screen.cc.
References yaze::gui::GetTextSecondaryVec4(), ICON_MD_CHECK, ICON_MD_CLOSE, ICON_MD_EDIT, ICON_MD_NOTE, None, notes_buffer_, pending_annotation_kind_, pending_annotation_path_, recent_projects_model_, Rename, rename_buffer_, yaze::editor::RecentProjectsModel::SetDisplayName(), and yaze::editor::RecentProjectsModel::SetNotes().
Referenced by DrawRecentProjects().

|
private |
Definition at line 1084 of file welcome_screen.cc.
References yaze::gui::ConvertColorToImVec4(), yaze::editor::RecentProjectsModel::DismissLastRemoval(), yaze::gui::ThemeManager::Get(), yaze::editor::RecentProjectsModel::HasUndoableRemoval(), ICON_MD_CLOSE, ICON_MD_INFO, ICON_MD_UNDO, yaze::editor::RecentProjectsModel::PeekLastRemoval(), recent_projects_model_, RefreshRecentProjects(), and yaze::editor::RecentProjectsModel::UndoLastRemoval().
Referenced by DrawRecentProjects().
|
staticprivate |
Definition at line 227 of file welcome_screen.cc.
Referenced by Show().
|
staticprivate |
Definition at line 979 of file welcome_screen.cc.
Referenced by DrawRecentProjects().
|
staticprivate |
Definition at line 881 of file welcome_screen.cc.
References yaze::editor::RecentProject::recent_index.
Referenced by DrawQuickActions().
|
friend |
Definition at line 129 of file welcome_screen.h.
|
private |
Definition at line 149 of file welcome_screen.h.
Referenced by DrawFirstRunGuide(), DrawProjectPanel(), DrawQuickActions(), DrawRecentAnnotationPopup(), DrawRecentProjects(), DrawUndoRemovalBanner(), recent_projects(), recent_projects(), and RefreshRecentProjects().
|
private |
Definition at line 150 of file welcome_screen.h.
Referenced by DrawFooterBar(), MarkManuallyClosed(), and ShouldShow().
|
private |
Definition at line 153 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetOpenRomCallback().
|
private |
Definition at line 154 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetNewProjectCallback().
|
private |
Definition at line 155 of file welcome_screen.h.
Referenced by DrawProjectPanel(), DrawQuickActions(), and SetOpenProjectCallback().
|
private |
Definition at line 156 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetOpenPrototypeResearchCallback().
|
private |
Definition at line 157 of file welcome_screen.h.
Referenced by DrawQuickActions(), and SetOpenAssemblyEditorNoRomCallback().
|
private |
Definition at line 158 of file welcome_screen.h.
Referenced by DrawRecentProjects(), and SetOpenProjectManagementCallback().
|
private |
Definition at line 161 of file welcome_screen.h.
Referenced by Show(), and UpdateAnimations().
|
private |
Definition at line 163 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 164 of file welcome_screen.h.
Referenced by DrawFirstRunGuide(), DrawFooterBar(), DrawHeader(), DrawQuickActions(), DrawRecentProjects(), and Show().
|
staticconstexprprivate |
Definition at line 165 of file welcome_screen.h.
Referenced by DrawFirstRunGuide(), DrawFooterBar(), DrawHeader(), DrawQuickActions(), and DrawRecentProjects().
|
staticconstexprprivate |
Definition at line 166 of file welcome_screen.h.
Referenced by DrawFirstRunGuide(), DrawFooterBar(), DrawHeader(), DrawQuickActions(), and DrawRecentProjects().
|
staticconstexprprivate |
Definition at line 169 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 170 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 171 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 172 of file welcome_screen.h.
Referenced by Show().
|
staticconstexprprivate |
Definition at line 175 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 184 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 185 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 189 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 192 of file welcome_screen.h.
Referenced by SetUserSettings(), and Show().
|
private |
Definition at line 193 of file welcome_screen.h.
Referenced by SetUserSettings(), and Show().
|
private |
Definition at line 194 of file welcome_screen.h.
Referenced by SetUserSettings(), and Show().
|
private |
Definition at line 195 of file welcome_screen.h.
Referenced by SetUserSettings(), and Show().
|
private |
Definition at line 196 of file welcome_screen.h.
Referenced by SetUserSettings(), and Show().
|
private |
Definition at line 197 of file welcome_screen.h.
Referenced by Show().
|
private |
Definition at line 200 of file welcome_screen.h.
Referenced by SetLayoutOffsets(), and Show().
|
private |
Definition at line 201 of file welcome_screen.h.
Referenced by SetLayoutOffsets(), and Show().
|
private |
Definition at line 204 of file welcome_screen.h.
Referenced by DrawFirstRunGuide(), and SetContextState().
|
private |
Definition at line 205 of file welcome_screen.h.
Referenced by DrawFooterBar().
|
private |
Definition at line 210 of file welcome_screen.h.
Referenced by DrawProjectPanel(), and DrawRecentAnnotationPopup().
|
private |
Definition at line 211 of file welcome_screen.h.
Referenced by DrawProjectPanel(), and DrawRecentAnnotationPopup().
|
private |
Definition at line 212 of file welcome_screen.h.
Referenced by DrawProjectPanel(), and DrawRecentAnnotationPopup().
|
private |
Definition at line 213 of file welcome_screen.h.
Referenced by DrawProjectPanel(), and DrawRecentAnnotationPopup().