libultraship
Reimplementations of libultra (N64 SDK) functions for modern hardware
Loading...
Searching...
No Matches
Ship::FileDrop Class Reference

Handles drag-and-drop file events for the application window. More...

#include <FileDrop.h>

Inheritance diagram for Ship::FileDrop:
[legend]
Collaboration diagram for Ship::FileDrop:
[legend]

Public Member Functions

 FileDrop (std::shared_ptr< Window > window=nullptr)
 Constructs the FileDrop component.
 
 ~FileDrop ()
 
void SetDroppedFile (char *path)
 Records a file path as having been dropped onto the window.
 
void ClearDroppedFile ()
 Clears the current dropped-file state.
 
bool FileDropped () const
 Returns true if a file has been dropped and not yet cleared.
 
char * GetDroppedFile () const
 Returns the path of the most recently dropped file.
 
bool RegisterDropHandler (FileDroppedFunc func)
 Registers a callback to be invoked when a file is dropped.
 
bool UnregisterDropHandler (FileDroppedFunc func)
 Removes a previously registered drop handler.
 
void CallHandlers ()
 Invokes all registered drop handlers with the current dropped file.
 
- 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().
 
ParentComponentListGetParents ()
 Returns a mutable reference to the parent list.
 
const ParentComponentListGetParents () const
 Returns a const reference to the parent list.
 
ComponentListGetChildren ()
 Returns a mutable reference to the child list.
 
const ComponentListGetChildren () const
 Returns a const reference to the child list.
 
virtual std::shared_ptr< ComponentTryGetSharedComponent () noexcept
 Returns a shared_ptr to this Component when available, otherwise nullptr.
 
virtual std::shared_ptr< ComponentGetSharedComponent ()
 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< ContextGetContext () 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.
 

Additional Inherited Members

- Protected Member Functions inherited from Ship::Component
virtual void OnInit (const nlohmann::json &initArgs=nlohmann::json::object())
 Override this to implement component-specific initialization logic.
 
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.
 

Detailed Description

Handles drag-and-drop file events for the application window.

FileDrop stores the path of the most recently dropped file and dispatches the event to a chain of registered handler callbacks.

Required dependencies:

  • Window — passed in the constructor and used by the drop-event dispatcher to obtain the GUI layer when forwarding drop events.

Obtain the instance from Context::GetChildren().GetFirst<FileDrop>().

Constructor & Destructor Documentation

◆ FileDrop()

Ship::FileDrop::FileDrop ( std::shared_ptr< Window window = nullptr)
explicit

Constructs the FileDrop component.

◆ ~FileDrop()

Ship::FileDrop::~FileDrop ( )

Member Function Documentation

◆ CallHandlers()

void Ship::FileDrop::CallHandlers ( )

Invokes all registered drop handlers with the current dropped file.

◆ ClearDroppedFile()

void Ship::FileDrop::ClearDroppedFile ( )

Clears the current dropped-file state.

◆ FileDropped()

bool Ship::FileDrop::FileDropped ( ) const

Returns true if a file has been dropped and not yet cleared.

◆ GetDroppedFile()

char * Ship::FileDrop::GetDroppedFile ( ) const

Returns the path of the most recently dropped file.

Returns
File path, or nullptr if no file has been dropped.

◆ RegisterDropHandler()

bool Ship::FileDrop::RegisterDropHandler ( FileDroppedFunc  func)

Registers a callback to be invoked when a file is dropped.

Parameters
funcHandler function to register.
Returns
true if the handler was successfully added.

◆ SetDroppedFile()

void Ship::FileDrop::SetDroppedFile ( char *  path)

Records a file path as having been dropped onto the window.

Parameters
pathPath of the dropped file (ownership is not taken).

◆ UnregisterDropHandler()

bool Ship::FileDrop::UnregisterDropHandler ( FileDroppedFunc  func)

Removes a previously registered drop handler.

Parameters
funcHandler function to unregister.
Returns
true if the handler was found and removed.

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