JX Application Framework
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
JXApplication Class Reference

#include <JXApplication.h>

Inheritance diagram for JXApplication:
[legend]

Public Types

enum  FiberPriority {
  kEventLoopPriority ,
  kEventHandlerPriority ,
  kIdleTaskPriority ,
  kUrgentTaskPriority
}
 

Public Member Functions

 JXApplication (int *argc, char *argv[], const JUtf8Byte *appSignature, const JUtf8Byte **defaultStringData)
 
 ~JXApplication () override
 
const JStringGetSignature () const
 
void Run ()
 
void Suspend () override
 
void Resume () override
 
virtual void Quit ()
 
bool IsQuitting () const
 
void DisplayBusyCursor ()
 
void DisplayInactiveCursor ()
 
void HideAllWindows ()
 
Time GetCurrentTime () const
 
void InstallIdleTask (JXIdleTask *task)
 
void RemoveIdleTask (JXIdleTask *task)
 
void InstallUrgentTask (JXUrgentTask *task)
 
JXDisplayGetCurrentDisplay () const
 
void SetCurrentDisplay (const JIndex index)
 
void SetCurrentDisplay (JXDisplay *display)
 
JSize GetDisplayCount () const
 
JXDisplayGetDisplay (const JIndex index) const
 
bool GetDisplayIndex (JXDisplay *display, JIndex *index) const
 
const JPtrArray< JXDisplay > * GetDisplayList () const
 
bool OpenDisplay (const JString &displayName, JIndex *displayIndex)
 
bool DisplayExists (const Display *xDisplay)
 
bool FindDisplay (const Display *xDisplay, JXDisplay **display)
 
void DisplayOpened (JXDisplay *display)
 
void DisplayClosed (JXDisplay *display)
 
const JStringGetRestartCommand () const
 
- Public Member Functions inherited from JXDirector
 JXDirector (JXDirector *supervisor)
 
 ~JXDirector () override
 
bool IsClosing () const
 
virtual void Activate ()
 
virtual bool Deactivate ()
 
bool IsActive () const
 
bool IsSuspended () const
 
bool HasSubdirectors () const
 
bool GetSubdirectors (const JPtrArray< JXDirector > **list) const
 
- Public Member Functions inherited from JBroadcaster
 JBroadcaster ()
 
virtual ~JBroadcaster ()
 
JBroadcasteroperator= (const JBroadcaster &source)
 
bool HasSenders () const
 
JSize GetSenderCount () const
 
bool HasRecipients () const
 
JSize GetRecipientCount () const
 
virtual JString ToString () const
 
template<class T >
void ListenTo (const JBroadcaster *sender, const std::function< void(const T &)> &f)
 

Static Public Member Functions

static void StartFiber (const std::function< void()> &f, const FiberPriority priority=kIdleTaskPriority)
 
static bool IsWorkerFiber ()
 
static void RemoveCmdLineOption (int *argc, char *argv[], const unsigned long offset, const unsigned long removeCount)
 
static int JXIOErrorHandler (Display *xDisplay)
 
static void Abort (const JXDocumentManager::SafetySaveReason reason, const bool dumpCore)
 
static void StripBaseOptions (JPtrArray< JString > *argList)
 

Protected Member Functions

void UpdateCurrentTime ()
 
bool Close () override
 
void ReceiveWithFeedback (JBroadcaster *sender, Message *message) override
 
virtual void CleanUpBeforeSuddenDeath (const JXDocumentManager::SafetySaveReason reason)
 
- Protected Member Functions inherited from JXDirector
JXDirectorGetSupervisor () const
 
bool CloseAllSubdirectors ()
 
virtual void DirectorClosed (JXDirector *theDirector)
 
- Protected Member Functions inherited from JBroadcaster
 JBroadcaster (const JBroadcaster &source)
 
void ListenTo (const JBroadcaster *sender)
 
void StopListening (const JBroadcaster *sender)
 
void ClearWhenGoingAway (const JBroadcaster *sender, void *pointerToMember)
 
void StopListening (const JBroadcaster *sender, const std::type_info &messageType)
 
template<class T >
void Send (JBroadcaster *recipient, const T &message)
 
template<class T >
void Broadcast (const T &message)
 
virtual void Receive (JBroadcaster *sender, const Message &message)
 
void SendWithFeedback (JBroadcaster *recipient, Message *message)
 
void BroadcastWithFeedback (Message *message)
 
virtual void ReceiveGoingAway (JBroadcaster *sender)
 

Friends

class JXWindow
 

Detailed Description

Initializes global objects and manages the event loop.

Urgent tasks are performed after the current event and are then deleted.

Idle tasks are performed whenever the event loop is idle.  It is safe
to delete a JXIdleTask object because it will automatically remove itself
from the task list.

Member Enumeration Documentation

◆ FiberPriority

Enumerator
kEventLoopPriority 
kEventHandlerPriority 
kIdleTaskPriority 
kUrgentTaskPriority 

Constructor & Destructor Documentation

◆ JXApplication()

JXApplication::JXApplication ( int *  argc,
char *  argv[],
const JUtf8Byte appSignature,
const JUtf8Byte **  defaultStringData 
)

◆ ~JXApplication()

JXApplication::~JXApplication ( )
override

Member Function Documentation

◆ Abort()

void JXApplication::Abort ( const JXDocumentManager::SafetySaveReason  reason,
const bool  dumpCore 
)
static

◆ CleanUpBeforeSuddenDeath()

void JXApplication::CleanUpBeforeSuddenDeath ( const JXDocumentManager::SafetySaveReason  reason)
protectedvirtual

If the server is dead, you cannot call any code that contacts it.

◆ Close()

bool JXApplication::Close ( )
overrideprotectedvirtual

This will fail unless Quit() has been called.

Reimplemented from JXDirector.

◆ DisplayBusyCursor()

void JXApplication::DisplayBusyCursor ( )

Displays the watch cursor in all windows on all displays.

◆ DisplayClosed()

void JXApplication::DisplayClosed ( JXDisplay display)

◆ DisplayExists()

bool JXApplication::DisplayExists ( const Display *  xDisplay)
inline

Returns true if the given display hasn't been deleted.

◆ DisplayInactiveCursor()

void JXApplication::DisplayInactiveCursor ( )

Displays the X cursor in all windows on all displays.

◆ DisplayOpened()

void JXApplication::DisplayOpened ( JXDisplay display)

OpenDisplay() assumes that Append() is called.

◆ FindDisplay()

bool JXApplication::FindDisplay ( const Display *  xDisplay,
JXDisplay **  display 
)

Returns true if the given display exists.

◆ GetCurrentDisplay()

JXDisplay * JXApplication::GetCurrentDisplay ( ) const
inline

◆ GetCurrentTime()

Time JXApplication::GetCurrentTime ( ) const
inline

◆ GetDisplay()

JXDisplay * JXApplication::GetDisplay ( const JIndex  index) const
inline

◆ GetDisplayCount()

JSize JXApplication::GetDisplayCount ( ) const
inline

◆ GetDisplayIndex()

bool JXApplication::GetDisplayIndex ( JXDisplay display,
JIndex index 
) const
inline

◆ GetDisplayList()

const JPtrArray< JXDisplay > * JXApplication::GetDisplayList ( ) const
inline

◆ GetRestartCommand()

const JString & JXApplication::GetRestartCommand ( ) const
inline

Required for X session managers. It is assumed that programs restore their state when run with no arguments.

◆ GetSignature()

const JString & JXApplication::GetSignature ( ) const
inline

◆ HideAllWindows()

void JXApplication::HideAllWindows ( )

◆ InstallIdleTask()

void JXApplication::InstallIdleTask ( JXIdleTask task)

We prepend the task so it will be performed next time if PerformIdleTasks() is executing. This ensures that we will eventually reach the end of the task list.

◆ InstallUrgentTask()

void JXApplication::InstallUrgentTask ( JXUrgentTask task)

We immediately create a fiber, so it will run as soon as possible.

◆ IsQuitting()

bool JXApplication::IsQuitting ( ) const
inline

◆ IsWorkerFiber()

bool JXApplication::IsWorkerFiber ( )
static

◆ JXIOErrorHandler()

int JXApplication::JXIOErrorHandler ( Display *  xDisplay)
static

◆ OpenDisplay()

bool JXApplication::OpenDisplay ( const JString displayName,
JIndex displayIndex 
)

◆ Quit()

void JXApplication::Quit ( )
virtual

Derived classes can override this to perform additional operations or to give the user a warning. They must call the inherited version in order for it to take effect.

◆ ReceiveWithFeedback()

void JXApplication::ReceiveWithFeedback ( JBroadcaster sender,
Message message 
)
overrideprotectedvirtual

SIGTERM can mean that the system is shutting down.

Reimplemented from JBroadcaster.

◆ RemoveCmdLineOption()

void JXApplication::RemoveCmdLineOption ( int *  argc,
char *  argv[],
const unsigned long  offset,
const unsigned long  removeCount 
)
static

◆ RemoveIdleTask()

void JXApplication::RemoveIdleTask ( JXIdleTask task)

◆ Resume()

void JXApplication::Resume ( )
overridevirtual

Reimplemented from JXDirector.

◆ Run()

void JXApplication::Run ( )

When this function returns, JX and JCore have been shut down and the application object has been deleted.

◆ SetCurrentDisplay() [1/2]

void JXApplication::SetCurrentDisplay ( const JIndex  index)

◆ SetCurrentDisplay() [2/2]

void JXApplication::SetCurrentDisplay ( JXDisplay display)

◆ StartFiber()

void JXApplication::StartFiber ( const std::function< void()> &  f,
const FiberPriority  priority = kIdleTaskPriority 
)
static

◆ StripBaseOptions()

void JXApplication::StripBaseOptions ( JPtrArray< JString > *  argList)
static

◆ Suspend()

void JXApplication::Suspend ( )
overridevirtual

Reimplemented from JXDirector.

◆ UpdateCurrentTime()

void JXApplication::UpdateCurrentTime ( )
protected

Calculate our current time from the current timer value.

Friends And Related Symbol Documentation

◆ JXWindow

friend class JXWindow
friend

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