Pyro higlevel API
Classes | Public Member Functions | Protected Member Functions | List of all members
os::ColorRequester Class Reference

Color Requester. More...

Inheritance diagram for os::ColorRequester:
os::Window os::Looper os::Handler

Classes

class  Private
 

Public Member Functions

 ColorRequester (os::Messenger *pcTarget=NULL)
 
 ~ColorRequester ()
 
void SetDefaultColor (os::Color32_s)
 
- Public Member Functions inherited from os::Window
 Window (const Rect &cFrame, const String &cName, const String &cTitle, uint32 nFlags=0, uint32 nDesktopMask=CURRENT_DESKTOP)
 Initialize the window. More...
 
 ~Window ()
 Destruct a window. More...
 
virtual void FrameMoved (const Point &cDelta)
 
virtual void FrameSized (const Point &cDelta)
 
virtual void ScreenModeChanged (const IPoint &cNewRes, color_space eColorSpace)
 Called whenever the screenmode changes. More...
 
virtual void DesktopActivated (int nDesktop, bool bActive)
 Called whenever the desktop displaying the window will be activated or deactivated. More...
 
virtual void DesktopsChanged (uint32 nOldDesktops, uint32 nNewDesktops)
 
virtual void WindowsChanged ()
 Called whenever the currently shown windows change. More...
 
void SetFlags (uint32 nFlags)
 
uint32 GetFlags () const
 
void SetSizeLimits (const Point &cMinSize, const Point &cMaxSize)
 Limit the minimum and maximum window size. More...
 
void SetAlignment (const IPoint &cSize=IPoint(1, 1), const IPoint &cSizeOffset=IPoint(0, 0), const IPoint &cPos=IPoint(1, 1), const IPoint &cPosOffset=IPoint(0, 0))
 
void AddChild (View *pcChild, bool bAssignTabOrder=false)
 Add a view to the window. More...
 
void RemoveChild (View *pcChild)
 Remove a view from the window. More...
 
void MakeFocus (bool bFocus=true)
 Activate/Deactivate the window. More...
 
void Close ()
 
void Show (bool bMakeVisible=true)
 Hide/Unhide the window. More...
 
void Hide ()
 
bool IsVisible () const
 
void Start ()
 Unlock the window and start the looper thread. More...
 
void SetTitle (const String &cTitle)
 Change the window title. More...
 
String GetTitle (void) const
 Obtain the current window title. More...
 
void SetIcon (Bitmap *pcIcon)
 Change the window icon. More...
 
BitmapGetIcon (void) const
 Not longer supported. More...
 
void Flush ()
 Flush the windows render queue. More...
 
void Sync ()
 Flush the render queue, and wait til the rendering is done. More...
 
ViewFindView (const String &cName) const
 
ViewFindView (const Point &cPos) const
 Find the view covering a given position on the window. More...
 
ViewGetFocusChild (void) const
 
ViewSetFocusChild (View *pcChild)
 Activate a view. More...
 
void SetDefaultButton (View *pcView)
 Assign a default button. More...
 
ViewGetDefaultButton () const
 Return the view assigned as the default button. More...
 
void SetDefaultWheelView (View *pcView)
 
ViewGetDefaultWheelView () const
 
Rect GetFrame () const
 Get the windows position and size on the current desktop. More...
 
Rect GetBounds () const
 Get the window boundary. More...
 
void SetFrame (const Rect &cRect, bool bNotifyServer=true)
 Set the window's position and size. More...
 
void MoveBy (const Point &cDelta)
 Move the window relative to it's current position. More...
 
void MoveBy (float vDeltaX, float vDeltaY)
 Move the window relative to it's current position. More...
 
void MoveTo (const Point &cPos)
 Move the window to an absolute position. More...
 
void MoveTo (float x, float y)
 Move the window to an absolute position. More...
 
void CenterInWindow (Window *pcWin)
 Move the window to the centre of another window. More...
 
void CenterInScreen ()
 Move the window to the center of the screen. More...
 
void ResizeBy (const Point &cDelta)
 Resize the window relative to it's current size. More...
 
void ResizeBy (float vDeltaW, float vDeltaH)
 Resize the window relative to it's current size. More...
 
void ResizeTo (const Point &cSize)
 Resize the window to a new absolute size. More...
 
void ResizeTo (float w, float h)
 Resize the window to a new absolute size. More...
 
void SetShapeRegion (const Region &cReg)
 
void ClearShapeRegion ()
 
bool IsActive () const
 
int ToggleDepth ()
 
void AddShortcut (const ShortcutKey &cKey, Message *pcMsg)
 Add a keyboard shortcut. More...
 
void AddShortcut (const ShortcutKey &cKey, View *pcView)
 Add a keyboard shortcut. More...
 
void RemoveShortcut (const ShortcutKey &cKey)
 Remove a keyboard shortcut. More...
 
void DispatchMessage (Message *pcMessage, Handler *pcHandler)
 The loopers message handling callback. More...
 
- Public Member Functions inherited from os::Looper
 Looper (const String &cName, int nPriority=NORMAL_PRIORITY, int nPortSize=DEFAULT_PORT_SIZE)
 The looper constructor. More...
 
virtual ~Looper ()
 Looper destructor. More...
 
void SetName (const String &cName)
 Rename the looper. More...
 
String GetName () const
 Get the loopers name. More...
 
bool IsPublic () const
 See if the looper's message port is public. More...
 
void SetPublic (bool bPublic)
 Make port public/private. More...
 
port_id GetMsgPort () const
 Obtain the low-level message port used by this looper. More...
 
thread_id GetThread () const
 Obtain the thread id of the looper thread. More...
 
proc_id GetProcess () const
 Obtain the process ID of the loopers thread. More...
 
status_t Lock ()
 Lock the looper object. More...
 
status_t Lock (bigtime_t nTimeout)
 Lock the looper with a timeout. More...
 
status_t SafeLock ()
 Attempt to lock the looper. More...
 
status_t Unlock ()
 Unlock the looper. More...
 
void SetMutex (Locker *pcMutex)
 Set a custom mutex to be used by the looper. More...
 
LockerGetMutex () const
 Get a pointer to the loopers mutex. More...
 
int GetLockCount () const
 Obtain the number of locks held on the looper. More...
 
thread_id GetLockingThread () const
 Obtaing the owner of the looper lock. More...
 
bool IsLocked () const
 Check if the looper lock is owned by the calling thread. More...
 
virtual thread_id Run ()
 Start and unlock the looper. More...
 
int Wait () const
 Wait for the looper thread to die. More...
 
status_t PostMessage (uint32 nCode)
 Deliver a message to the looper. More...
 
status_t PostMessage (Message *pcMsg)
 Deliver a message to the looper. More...
 
status_t PostMessage (uint32 cCode, Handler *pcHandler, Handler *pcReplyTo=NULL)
 Deliver a message to the looper. More...
 
status_t PostMessage (Message *pcMsg, Handler *pcHandler, Handler *pcReplyTo=NULL)
 Deliver a message to the looper. More...
 
void SpoolMessages ()
 Drain the low-level message port. More...
 
MessageGetCurrentMessage () const
 Obtain the message currently being processed. More...
 
MessageDetachCurrentMessage ()
 Steal the current message. More...
 
virtual void Started ()
 Called by the looper thread before entering the message loop. More...
 
virtual bool Idle ()
 Hook called each time the message queue is drained. More...
 
MessageQueueGetMessageQueue () const
 Obtain the internal message queue used by the looper. More...
 
virtual void Quit ()
 Unconditionally terminate the looper. More...
 
void Terminate ()
 Unconditionally terminate the looper. More...
 
void AddTimer (Handler *pcTarget, int nID, bigtime_t nTimeout, bool bOneShot=true)
 Add a timer to the looper. More...
 
bool RemoveTimer (Handler *pcTarget, int nID)
 Delete a timer. More...
 
const handler_mapGetHandlerMap () const
 Get the internal handler list. More...
 
void AddHandler (Handler *pcHandler)
 Add a handler to the looper. More...
 
bool RemoveHandler (Handler *pcHandler)
 Remove a handler previously added by AddHandler() More...
 
HandlerFindHandler (const String &cName) const
 Search the looper for a named handler. More...
 
int GetHandlerCount () const
 Obtain the count of handlers added to this looper. More...
 
void SetDefaultHandler (Handler *pcHandler)
 Set the default target for incomming messages. More...
 
HandlerGetDefaultHandler () const
 Obtain the default handler for the looper. More...
 
void AddCommonFilter (MessageFilter *pcFilter)
 
void RemoveCommonFilter (MessageFilter *pcFilter)
 
const MsgFilterListGetCommonFilterList () const
 
- Public Member Functions inherited from os::Handler
 Handler (const String &cName)
 Construct a handler. More...
 
virtual ~Handler ()
 Destructor. More...
 
virtual void TimerTick (int nID)
 Timer dispatch member. More...
 
String GetName () const
 Get the handlers name. More...
 
void SetName (const String &cName)
 Rename the handler. More...
 
LooperGetLooper () const
 Get a pointer to the looper this handler belongs to. More...
 
void SetNextHandler (Handler *pcNextHandler)
 Set a handler that should handle messages this handler is not interrested in. More...
 
HandlerGetNextHandler () const
 Get the next handler in a handler chain. More...
 
void AddFilter (MessageFilter *pcFilter)
 
void RemoveFilter (MessageFilter *pcFilter)
 
const MsgFilterListGetFilterList () const
 
const uint32 GetToken ()
 Get the handlers token. More...
 

Protected Member Functions

virtual void HandleMessage (os::Message *)
 Handle a message targeted at this handler. More...
 
bool OkToQuit ()
 Check if it is ok to break the loop. More...
 

Additional Inherited Members

- Public Types inherited from os::Looper
typedef std::map< int, Handler * > handler_map
 
- Static Public Member Functions inherited from os::Looper
static LooperGetLooperForThread (thread_id hThread)
 

Detailed Description

Description:
The Color Requester is the default way to pick colors in Syllable. The Color Requester is very easy to use. The following messages are sent to the given message target: M_COLOR_REQUESTER_CANCELED - If the ColorRequester is closed without any action. M_COLOR_REQUESTED - If a Color has been selected to be loaded. M_COLOR_REQUESTER_CHANGED - The use of this message will allow you to determine when the user has changed the color. This can be used to show the color to the user without having them commit to any changes/
Warning:
As with all libSyllable objects, don't use the ColorRequester without an application object.
Note:
The ColorRequester is sent an os::Messenger telling it where to send its messages to. If you send NULL to or use the default parameters, the ColorRequester will send all messages to the instance of the application calling it.
Note:
The ColorRequester is centered in the middle of the screen by default, you can override this at anytime after calling an instance of the dialog.
Example:
ColorRequester* pcColorRequester = new ColorRequester(NULL);
pcColorRequester->Show();
...
MyApplication::HandleMessage(Message* pcMessage)
{
switch (pcMessage->GetCode())
{
{
pcMessage->FindColor("color",&sColor); //get the color from the requester and then do anything you want with it
pcMyView->SetBgColor(sColor);
break;
}
//this message is useful if you want to update a gui without hitting the okay button
{
pcMessage->FindColor("color",&sColor); //get the color from the requester and then do anything you want with it
pcMyView->SetBgColor(sColor);
break;
}
{
break; //do whatever you need to do when cancelled is called.
}
}
}
See Also
os::Color32_s, os::Message, os::Application, os::Window, os::FileRequester, os::FontRequester, os::Messenger
Author
Rick Caudill rick@.nosp@m.syll.nosp@m.able..nosp@m.org

Constructor & Destructor Documentation

ColorRequester::ColorRequester ( os::Messenger pcTarget = NULL)
ColorRequester::~ColorRequester ( )

Member Function Documentation

void ColorRequester::HandleMessage ( os::Message pcMessage)
protectedvirtual
Description:
Overload this member to dispatch messages sendt to this handler. When a looper receives a message for one of it's handlers it will call the taget handlers HandleMessage() to allow the handler to dispatch the message.
The message passed in pcMessage is also available through os::Looper::GetCurrentMessage() and os::Looper::DetachCurrentMessage() until this member returns. This is normally not very usefull for HandleMessage() itself but it can be convinient for other members called from HandleMessage() in case they need data from the message that was not passed on from HandleMessage().
The looper will be locked when this member is called. The default implementation of this member will pass the message on to the next handler if one was set with SetNextHandler().
Note
Never do any lenthy operations in any hook members that are called from the looper thread if the looper is involved with the GUI (for example if the looper is a os::Window). The looper will not be able to dispatch messages until the hook returns so spending a long time in this members will make the GUI feel unresponsive.
Parameters
pcMessageThe message that should be handled. This message will be deleted by the looper when HandleMessage() returns unless you detach it with os::Looper::DetachCurrentMessage(),
See Also
os::Looper::DispatchMessage(), os::Looper::DetachCurrentMessage()
Author
Kurt Skauen (kurt@.nosp@m.athe.nosp@m.os.cx)

Reimplemented from os::Handler.

References os::Message::AddColor32(), os::Message::AddPointer(), os::Variant::AsColor32(), os::Message::GetCode(), os::Control::GetValue(), os::Handler::HandleMessage(), os::M_COLOR_REQUESTED, os::M_COLOR_REQUESTER_CANCELED, os::M_COLOR_REQUESTER_CHANGED, os::ColorRequester::Private::m_pcSelector, os::ColorRequester::Private::m_pcTarget, os::Handler::Message, os::Messenger::SendMessage(), and os::Window::Show().

bool ColorRequester::OkToQuit ( void  )
protectedvirtual
Description:
You can overload this function to affect how the looper will react to M_QUIT messages. When an M_QUIT message arrive the looper will call this function to figure out what to do. If it returns false the message is ignored. If it returns true the loop is terminated, the looper object deleted and the looper thread will exit.
Returns
true if it is ok to terminate the looper, false otherwise.
See Also
Quit(), PostMessage()
Author
Kurt Skauen (kurt@.nosp@m.athe.nosp@m.os.cx)

Reimplemented from os::Looper.

References os::Message::AddPointer(), os::M_COLOR_REQUESTER_CANCELED, os::ColorRequester::Private::m_pcTarget, os::Handler::Message, os::Messenger::SendMessage(), and os::Window::Show().

void os::ColorRequester::SetDefaultColor ( os::Color32_s  )