ResKnife/Carbon/Classes/PlugWindow.cpp

92 lines
2.0 KiB
C++

#include "PlugWindow.h"
#include "Utility.h"
#include "string.h"
extern globals g;
/*********************/
/* PLUG WINDOW CLASS */
/*********************/
/*** CREATOR ***/
PlugWindow::PlugWindow( FileWindowPtr ownerFile )
{
memset( this, 0, sizeof(PlugWindow) );
file = ownerFile;
}
/*** GET FILE WINDOW ***/
FileWindowPtr PlugWindow::File( void )
{
return file;
}
#if !TARGET_API_MAC_CARBON
/*** INSTALL CLASSIC EVENT HANDLER ***/
void PlugWindow::InstallClassicEventHandler( ClassicEventHandlerProcPtr newHandler )
{
handler = newHandler;
}
/*** UPDATE WINDOW ***/
OSStatus PlugWindow::Update( RgnHandle region )
{
EventRecord event;
event.what = updateEvt;
event.message = (UInt32) window;
event.when = (UInt32) region; // note overload here
event.where = NewPoint();
event.modifiers = null;
OSStatus error = (* handler)( &event, kEventWindowUpdate, null );
return error;
}
/*** ACTIVATE WINDOW ***/
OSStatus PlugWindow::Activate( Boolean active )
{
EventRecord event;
event.what = activateEvt;
event.message = (UInt32) window;
event.when = TickCount();
event.where = NewPoint();
event.modifiers = null;
OSStatus error = (* handler)( &event, active? kEventWindowActivated:kEventWindowDeactivated, null );
return error;
}
/*** CLOSE WINDOW ***/
OSStatus PlugWindow::Close( void )
{
EventRecord event;
event.what = mouseUp;
event.message = (UInt32) window;
event.when = TickCount();
event.where = NewPoint();
event.modifiers = null;
OSStatus error = (* handler)( &event, kEventWindowClose, null );
return error;
}
/*** HANDLE CLICK IN WINDOW ***/
OSStatus PlugWindow::Click( Point mouse, EventModifiers modifiers )
{
EventRecord event;
event.what = mouseDown;
event.message = (UInt32) window;
event.when = TickCount();
event.where = mouse;
event.modifiers = modifiers;
OSStatus error = (* handler)( &event, kEventWindowClickContentRgn, null );
return error;
}
#endif
/*** ACCESSORS ***/
void PlugWindow::SetRefCon( UInt32 value ) { refcon = value; }
UInt32 PlugWindow::GetRefCon( void ) { return refcon; }