Implement welcome screen and enhance session management in EditorManager

- Added a welcome screen that can be accessed from the View menu, improving user experience for new users.
- Enhanced session management by allowing the reuse of empty sessions when loading ROMs, reducing unnecessary session creation.
- Improved the session table layout for better readability and added a custom overworld feature flag for each session.
- Updated the DrawWelcomeScreen method for better visual integration and added a glow effect to the decorative line.
This commit is contained in:
scawful
2025-09-26 20:42:48 -04:00
parent d49d87852d
commit 1057a3f037
8 changed files with 384 additions and 120 deletions

View File

@@ -149,6 +149,7 @@ public:
std::vector<std::string> GetAvailableThemes() const;
const EnhancedTheme* GetTheme(const std::string& name) const;
const EnhancedTheme& GetCurrentTheme() const { return current_theme_; }
const std::string& GetCurrentThemeName() const { return current_theme_name_; }
// Theme application
void ApplyTheme(const std::string& theme_name);
@@ -171,7 +172,7 @@ private:
std::map<std::string, EnhancedTheme> themes_;
EnhancedTheme current_theme_;
std::string current_theme_name_ = "YAZE Classic";
std::string current_theme_name_ = "Classic YAZE";
void CreateFallbackYazeClassic();
absl::Status ParseThemeFile(const std::string& content, EnhancedTheme& theme);
@@ -181,6 +182,7 @@ private:
// Helper methods for path resolution
std::vector<std::string> GetThemeSearchPaths() const;
std::string GetThemesDirectory() const;
std::string GetCurrentThemeFilePath() const;
};
} // namespace gui