|
libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
|
The application's main ImGui menu bar rendered at the top of the screen. More...
#include <GuiMenuBar.h>
Public Member Functions | |
| GuiMenuBar (std::shared_ptr< ConsoleVariable > consoleVariable, std::shared_ptr< Window > window, const std::string &visibilityConsoleVariable, bool isVisible) | |
| Constructs a GuiMenuBar with constructor-injected dependencies and explicit initial visibility. | |
| GuiMenuBar (const std::string &visibilityConsoleVariable, bool isVisible) | |
| Constructs a GuiMenuBar with an explicit initial visibility. | |
| GuiMenuBar (const std::string &visibilityConsoleVariable) | |
| Constructs a GuiMenuBar whose initial visibility is read from the CVar. | |
| void | Draw () override |
| Calls ImGui::BeginMainMenuBar(), invokes DrawElement(), and ends the bar. | |
Public Member Functions inherited from Ship::GuiElement | |
| GuiElement (const std::string &name, bool isVisible) | |
| Constructs a GuiElement with an explicit initial visibility. | |
| GuiElement (const std::string &name) | |
| Constructs a GuiElement that starts hidden. | |
| virtual | ~GuiElement () |
| void | Update () |
| Updates element state for the current frame (called before Draw). | |
| void | Show () |
| Makes the element visible (equivalent to SetVisibility(true)). | |
| void | Hide () |
| Hides the element (equivalent to SetVisibility(false)). | |
| void | ToggleVisibility () |
| Flips the visibility state between shown and hidden. | |
| bool | IsVisible () |
| Returns true if the element is currently visible. | |
| virtual void | DrawElement ()=0 |
| Renders the element's content (pure ImGui draw calls). | |
Public Member Functions inherited from Ship::Component | |
| Component (const std::string &name, std::shared_ptr< Context > context=nullptr) | |
| Constructs a Component with the given name. | |
| virtual | ~Component () |
| void | Init (const nlohmann::json &initArgs=nlohmann::json::object()) |
| Performs one-time initialization of this component. | |
| bool | IsInitialized () const |
| Returns true once Init() (or MarkInitialized()) has completed successfully. | |
| const std::string & | GetName () const |
| Returns the name of this Component. | |
| std::string | ToString () const |
| Returns a human-readable string representation (e.g. "Name (id)"). | |
| std::string | ToTreeString (int depth=0) const |
| Returns a human-readable tree representation of this component and its children. | |
| operator std::string () const | |
| Conversion operator to std::string; equivalent to ToString(). | |
| ParentComponentList & | GetParents () |
| Returns a mutable reference to the parent list. | |
| const ParentComponentList & | GetParents () const |
| Returns a const reference to the parent list. | |
| ComponentList & | GetChildren () |
| Returns a mutable reference to the child list. | |
| const ComponentList & | GetChildren () const |
| Returns a const reference to the child list. | |
| virtual std::shared_ptr< Component > | TryGetSharedComponent () noexcept |
| Returns a shared_ptr to this Component when available, otherwise nullptr. | |
| virtual std::shared_ptr< Component > | GetSharedComponent () |
| Returns a shared_ptr to this Component via the correct enable_shared_from_this base. | |
| template<typename T > | |
| bool | HasInChildren () const |
| Checks whether any descendant Component matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< T > | GetFirstInChildren () const |
| Returns the first descendant that matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< std::vector< std::shared_ptr< T > > > | GetInChildren () const |
| Returns all descendants that match type T via BFS. | |
| template<typename T > | |
| bool | HasInParents () const |
| Checks whether any ancestor Component matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< T > | GetFirstInParents () const |
| Returns the first ancestor that matches type T via BFS. | |
| template<typename T > | |
| std::shared_ptr< std::vector< std::shared_ptr< T > > > | GetInParents () const |
| Returns all ancestors that match type T via BFS. | |
Public Member Functions inherited from Ship::Part | |
| Part () | |
| Constructs a Part and assigns it a unique ID. | |
| Part (std::shared_ptr< Context > context) | |
| Constructs a Part with an explicit Context reference and unique ID. | |
| virtual | ~Part ()=default |
| uint64_t | GetId () const |
| Returns the unique identifier for this Part. | |
| bool | operator== (const Part &other) const |
| Compares two Parts for equality by their unique IDs. | |
| std::shared_ptr< Context > | GetContext () const |
| Returns the Context this Part belongs to, or nullptr if unset. | |
| void | SetContext (std::shared_ptr< Context > ctx) |
| Sets the Context this Part belongs to. | |
Protected Member Functions | |
| void | SetVisibility (bool visible) override |
| Overrides SetVisibility to also write the new state to the backing CVar. | |
| void | OnInit (const nlohmann::json &initArgs={}) override |
| Component initialization hook. | |
Protected Member Functions inherited from Ship::GuiElement | |
| virtual void | UpdateElement ()=0 |
| Per-frame logic update called by Update(). Subclasses perform state updates here. | |
Protected Member Functions inherited from Ship::Component | |
| void | MarkInitialized () |
| Marks this component as initialized without going through Init(). | |
| template<typename T > | |
| std::shared_ptr< T > | RequireDependency (const std::shared_ptr< T > &dependency, const std::string &dependencyName) const |
| Returns a cached dependency after validating it exists and is initialized. | |
Protected Member Functions inherited from Ship::Part | |
| virtual void | OnAdded (bool forced) |
| Called after this Part has been added to a PartList. | |
| virtual void | OnRemoved (bool forced) |
| Called after this Part has been removed from a PartList. | |
Additional Inherited Members | |
Protected Attributes inherited from Ship::GuiElement | |
| bool | mIsVisible |
| Current visibility state. Subclasses may read this directly. | |
The application's main ImGui menu bar rendered at the top of the screen.
GuiMenuBar wraps ImGui::BeginMainMenuBar() / ImGui::EndMainMenuBar() and integrates with the CVar system so that its visibility can be toggled from the developer console and persists across sessions.
Subclass GuiMenuBar and implement DrawElement() to populate the menu bar with ImGui::BeginMenu() / ImGui::MenuItem() calls. Register the instance with Gui::SetMenuBar().
| Ship::GuiMenuBar::GuiMenuBar | ( | std::shared_ptr< ConsoleVariable > | consoleVariable, |
| std::shared_ptr< Window > | window, | ||
| const std::string & | visibilityConsoleVariable, | ||
| bool | isVisible | ||
| ) |
Constructs a GuiMenuBar with constructor-injected dependencies and explicit initial visibility.
| consoleVariable | ConsoleVariable dependency for CVar read/write. |
| window | Window dependency for GUI save scheduling. |
| visibilityConsoleVariable | CVar name used to persist/read visibility. |
| isVisible | Initial visibility state. |
| Ship::GuiMenuBar::GuiMenuBar | ( | const std::string & | visibilityConsoleVariable, |
| bool | isVisible | ||
| ) |
Constructs a GuiMenuBar with an explicit initial visibility.
| visibilityConsoleVariable | CVar name used to persist/read visibility. |
| isVisible | Initial visibility state. |
| Ship::GuiMenuBar::GuiMenuBar | ( | const std::string & | visibilityConsoleVariable | ) |
Constructs a GuiMenuBar whose initial visibility is read from the CVar.
| visibilityConsoleVariable | CVar name used to persist/read visibility. |
|
overridevirtual |
Calls ImGui::BeginMainMenuBar(), invokes DrawElement(), and ends the bar.
Also syncs the visibility state back to the CVar if it changed.
Implements Ship::GuiElement.
|
overrideprotectedvirtual |
Component initialization hook.
Called by Component::Init() exactly once. Subclasses override OnInit() for their specific setup and must call GuiElement::OnInit(initArgs) (or Component::OnInit(initArgs)) to preserve the initialization contract.
Reimplemented from Ship::GuiElement.
|
overrideprotectedvirtual |
Overrides SetVisibility to also write the new state to the backing CVar.
| visible | New visibility state. |
Reimplemented from Ship::GuiElement.