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; }