An OpenAlias class that allows a plug-in to detect selected Alias events.
Synopsis
#include <AlObserver.h>
class AlObserver
enum ObserverMessage
{
kMaximizeWindow,
kMinimizeWindow,
kLowerWindow,
kRaiseWindow,
};
static statusCode create();
static statusCode deleteObject();
static statusCode installHandler( ObserverMessage, void (*)(void) );
static statusCode removeHandler( ObserverMessage, void (*)(void) );
Description
AlObserver is a static OpenAlias class. Currently, it allows a user to detect when the Alias window is minimized, maximized, lowered or raised. This class cannot trap events that are handled by the Window Manager.
An example of an event that cannot be trapped is the raising of a window by clicking on its window bar. However, this situation
can be detected by an X-event handler installed by the AlXevents class, so to test if a window is below the Alias window on ConfigureNotify events use the method AlXevents::belowAliasWindow().
statusCode AlObserver::create()
Description
Initializes the API observer class. Note that this method should always be called by a plug-in that wants to observe events.
If the observer class is already initialized, this routine will return successfully.
Return Codes
sSuccess - the method succeeded
sFailure - the method failed
statusCode AlObserver::deleteObject()
Description
Terminates the observation of events if there are no handlers installed. This allows several plug-ins loaded into Alias to call deleteObject(). The observer is not removed until the last plug-in has removed its handlers and called this routine.
Return Codes
sSuccess - the method succeeded
sFailure - the method failed. There may be handlers still installed.
sInvalidObject - the observer has not been initialized; call AlObserver::create()
statusCode AlObserver::installHandler( ObserverMessage observerType, void (*function)(void) )
Description
Installs a callback handler for a specific observerType.
Arguments
< observerType - one of kMaximizeWindow, kMinimizeWindow, kLowerWindow, kRaiseWindow
< function - pointer to a void function
Return Codes
sSuccess - the method succeeded
sFailure - the method failed or the observer type was invalid
sInvalidObject - the observer has not been initialized; call AlObserver::create()
sInvalidArgument - function parameter was NULL
statusCode AlObserver::removeHandler( ObserverMessage observerType, void (*function)(void) )
Description
Removes a callback handler for a specific observer type. Plug-ins must properly remove observer handlers to avoid Alias calling a routine that no longer exists in memory.
Arguments
< observerType - one of kMaximizeWindow, kMinimizeWindow, kLowerWindow, kRaiseWindow
< function - pointer to a void function
Return Codes
sSuccess - the method succeeded
sFailure - the method failed or the observer type was invalid
sInvalidObject - the observer has not been initialized; call AlObserver::create()