Harlinn.Windows 0.1
Loading...
Searching...
No Matches
Harlinn::Windows::ImGui::Application Class Reference

#include <HWImGui.h>

Inheritance diagram for Harlinn::Windows::ImGui::Application:
[legend]
Collaboration diagram for Harlinn::Windows::ImGui::Application:
[legend]

Public Types

using Base = DXApplication
 
- Public Types inherited from Harlinn::Windows::DXApplication
using Base = Windows::Application
 
- Public Types inherited from Harlinn::Common::Core::Application
using Base = Concurrency::ActiveObject<std::shared_ptr<ApplicationMessage>>
 
- Public Types inherited from Harlinn::Common::Core::Concurrency::ActiveObject< std::shared_ptr< ApplicationMessage > >
using Base
 
using ESFT
 
- Public Types inherited from Harlinn::Common::Core::Concurrency::ActiveObjectBase< std::shared_ptr< ApplicationMessage >, maxQueueSize >
using MessageType
 
using ConcurrentQueue
 
using Event
 

Public Member Functions

 Application (const std::shared_ptr< Windows::ApplicationOptions > &options, std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >())
 
 Application (std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >())
 
virtual ~Application ()
 
virtual int Run (Windows::Form &mainForm, DXMessageLoop &messageLoop) override
 
virtual HW_EXPORT int Run (Form &mainForm) override
 
virtual HW_EXPORT int Run (Form &mainForm, MessageLoop &messageLoop) override
 
- Public Member Functions inherited from Harlinn::Windows::DXApplication
HW_EXPORT DXApplication (const std::shared_ptr< Windows::ApplicationOptions > &options, std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >())
 
HW_EXPORT DXApplication (std::unique_ptr< DXContext > dxContext=std::make_unique< DXContext >())
 
virtual HW_EXPORT ~DXApplication ()
 
DXContextContext () const
 
- Public Member Functions inherited from Harlinn::Common::Core::Application
HCC_EXPORT Application (const std::shared_ptr< ApplicationOptions > &options)
 
HCC_EXPORT Application ()
 
HCC_EXPORT ~Application ()
 
 Application (const Application &other)=delete
 
 Application (Application &&other)=delete
 
Applicationoperator= (const Application &other)=delete
 
Applicationoperator= (Application &&other)=delete
 
const std::shared_ptr< ApplicationOptions > & Options () const
 
bool Start (const TimeSpan &timeout) override
 Starts the message processing thread.
 
bool Stop (const TimeSpan &timeout) override
 Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit.
 
HCC_EXPORT void PostThreadAttachedMessage ()
 
HCC_EXPORT void PostThreadDetachedMessage ()
 
- Public Member Functions inherited from Harlinn::Common::Core::Concurrency::ActiveObject< std::shared_ptr< ApplicationMessage > >
 ActiveObject (const WideString &threadName)
 Constructs a new instance of an ActiveObject object.
 
virtual ~ActiveObject ()=default
 
bool Start ()
 Starts the message processing thread.
 
bool Stop ()
 Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit.
 
- Public Member Functions inherited from Harlinn::Common::Core::Concurrency::ActiveObjectBase< std::shared_ptr< ApplicationMessage >, maxQueueSize >
 ActiveObjectBase (const WideString &threadName)
 Constructs a new active object.
 
const WideStringThreadName () const noexcept
 
bool Started () const noexcept
 Determine whether the active object has started the message processing thread.
 
bool Stopped () const noexcept
 Determine whether the active object has exited the message processing thread.
 
size_t MessagesPosted () const
 Retrieves the number of messages posted to the active object.
 
size_t MessagesProcessed () const
 Retrieves the number of messages processed by the message processing loop.
 
virtual bool PostMessage (const MessageType &message)
 Posts a message to the active object.
 
virtual bool PostMessage (MessageType &&message)
 Posts a message, by moving it, to the active object.
 

Static Private Member Functions

static ImGuiIO & GetImGuiIO ()
 

Private Attributes

ImGuiIO & io_
 

Friends

class Form
 

Additional Inherited Members

- Static Public Member Functions inherited from Harlinn::Windows::DXApplication
static DXApplicationInstance ()
 
- Static Public Member Functions inherited from Harlinn::Common::Core::Application
static ApplicationInstance () noexcept
 
static HCC_EXPORT UInt64 MainThreadId () noexcept
 
static HCC_EXPORT void HandleDllMainEvent (HMODULE moduleHandle, DWORD reason, LPVOID freeLibrary) noexcept
 
- Public Attributes inherited from Harlinn::Common::Core::Application
boost::signals2::signal< void(UInt32 attachedThreadId)> OnThreadAttached
 
boost::signals2::signal< void(UInt32 detachedThreadId)> OnThreadDetached
 
- Public Attributes inherited from Harlinn::Common::Core::Concurrency::ActiveObjectBase< std::shared_ptr< ApplicationMessage >, maxQueueSize >
Event< void(ActiveObjectBase *, const ActiveObjectMessageEventArgs< MessageType > &)> OnProcessMessage
 Register callbacks with this signal to process messages passed to the active object.
 
Event< void(ActiveObjectBase *, const ActiveObjectExceptionEventArgs &)> OnException
 Register callbacks with this signal to process exceptions caught in the message event loop of the active object.
 
- Static Public Attributes inherited from Harlinn::Common::Core::Concurrency::ActiveObject< std::shared_ptr< ApplicationMessage > >
static constexpr Int64 DefaultStartStopTimeoutInTicks
 
- Protected Member Functions inherited from Harlinn::Common::Core::Application
virtual HCC_EXPORT void ProcessMessage (const MessageType &message) override
 
virtual bool IsStopMessage (const MessageType &message) const noexcept override
 IsStopMessage must be implemented by derived classes to determine if a message is a stop message causing the event loop to be terminated.
 
virtual void PostStopMessage () override
 PostStopMessage must be implemented by derived classes. The implementation must post a message the will cause IsStopMessage to return true.
 
virtual HCC_EXPORT void BeforeProcessMessages () override
 
virtual HCC_EXPORT void ProcessThreadAttachedMessage (const std::shared_ptr< ApplicationThreadAttachedMessage > &message)
 
virtual HCC_EXPORT void ProcessThreadDetachedMessage (const std::shared_ptr< ApplicationThreadDetachedMessage > &message)
 
- Protected Member Functions inherited from Harlinn::Common::Core::Concurrency::ActiveObjectBase< std::shared_ptr< ApplicationMessage >, maxQueueSize >
void ProcessMessages ()
 This function implements the message processing loop.
 
virtual void AfterProcessMessages ()
 Provides an opportunity to implement any cleanup that needs to be performed in the context of the worker thread of the active object after the message loop exits.
 
virtual void Run (EventWaitHandle &manualEventWaitHandle)
 Run must be called by the thread that will be used to process messages for the active object.
 
virtual void HandleException (const std::exception &error, const WideString &message)
 Called when exceptions are caught in the message processing loop.
 

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ Application() [1/2]

Harlinn::Windows::ImGui::Application::Application ( const std::shared_ptr< Windows::ApplicationOptions > & options,
std::unique_ptr< DXContext > dxContext = std::make_unique<DXContext>( ) )
inline

◆ Application() [2/2]

Harlinn::Windows::ImGui::Application::Application ( std::unique_ptr< DXContext > dxContext = std::make_unique<DXContext>( ))
inline

◆ ~Application()

virtual Harlinn::Windows::ImGui::Application::~Application ( )
inlinevirtual

Member Function Documentation

◆ GetImGuiIO()

static ImGuiIO & Harlinn::Windows::ImGui::Application::GetImGuiIO ( )
inlinestaticprivate

◆ Run() [1/3]

int Harlinn::Windows::DXApplication::Run ( Form & mainForm)
overridevirtual

Reimplemented from Harlinn::Windows::DXApplication.

◆ Run() [2/3]

int Harlinn::Windows::DXApplication::Run ( Form & mainForm,
MessageLoop & messageLoop )
overridevirtual

Reimplemented from Harlinn::Windows::DXApplication.

◆ Run() [3/3]

virtual int Harlinn::Windows::ImGui::Application::Run ( Windows::Form & mainForm,
DXMessageLoop & messageLoop )
inlineoverridevirtual

Reimplemented from Harlinn::Windows::DXApplication.

Friends And Related Symbol Documentation

◆ Form

friend class Form
friend

Member Data Documentation

◆ io_

ImGuiIO& Harlinn::Windows::ImGui::Application::io_
private

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