99 lines
2.3 KiB
Mathematica
99 lines
2.3 KiB
Mathematica
|
/**
|
||
|
* dispatch_ifc.m
|
||
|
*
|
||
|
* defines a function interface for dispatchable messaging
|
||
|
* define DISPATCH before loading if you are a message reciever
|
||
|
*
|
||
|
* @author mpdeimos
|
||
|
* @date 2008/10/25
|
||
|
* @version 0.1
|
||
|
*/
|
||
|
|
||
|
#ifndef included
|
||
|
#error This script can only be compiled as a #include
|
||
|
#endif
|
||
|
|
||
|
Function initDispatcher(); // Call this function on startup to set the parent layout as dispatcher
|
||
|
Function setDispatcher(GuiObject dispatcher); // Call this function instead if you want to define a custom
|
||
|
|
||
|
#ifndef DISPATCH
|
||
|
// Sends a message to the parent layout
|
||
|
Function int sendMessage(int message, int i0, int i1, int i2, String s0, String s1, GuiObject obj);
|
||
|
Function int sendMessageI(int message, int i0);
|
||
|
Function int sendMessageI2(int message, int i0, int i1);
|
||
|
Function int sendMessageS(int message, String s0);
|
||
|
Function int sendMessageO(int message, GuiObject obj);
|
||
|
Function int sendMessageV(int message);
|
||
|
#endif
|
||
|
|
||
|
#ifdef DISPATCH
|
||
|
// Recieves Messages
|
||
|
Function int onMessage(int message, int i0, int i1, int i2, String s0, String s1, GuiObject obj);
|
||
|
int onMessage(int message, int i0, int i1, int i2, String s0, String s1, GuiObject obj) {} // STUB! Implement this in your code
|
||
|
#endif
|
||
|
|
||
|
|
||
|
///
|
||
|
/// IMPLEMENTATION
|
||
|
///
|
||
|
|
||
|
|
||
|
Global GuiObject dispatcher;
|
||
|
|
||
|
initDispatcher()
|
||
|
{
|
||
|
dispatcher = getScriptGroup().getParentLayout();
|
||
|
}
|
||
|
|
||
|
setDispatcher(GuiObject go)
|
||
|
{
|
||
|
dispatcher = go;
|
||
|
}
|
||
|
|
||
|
|
||
|
#ifndef DISPATCH
|
||
|
|
||
|
int sendMessage(int message, int i0, int i1, int i2, String s0, String s1, GuiObject obj)
|
||
|
{
|
||
|
return dispatcher.onAction (s0, s1, message, i0, i1, i2, obj);
|
||
|
}
|
||
|
|
||
|
int sendMessageI(int message, int i0)
|
||
|
{
|
||
|
GuiObject obj = NULL;
|
||
|
return sendMessage(message, i0, i1, 0, "", "", obj);
|
||
|
}
|
||
|
|
||
|
int sendMessageI2(int message, int i0, int i1)
|
||
|
{
|
||
|
GuiObject obj = NULL;
|
||
|
return sendMessage(message, i0, 0, 0, "", "", obj);
|
||
|
}
|
||
|
|
||
|
int sendMessageS(int message, String s0)
|
||
|
{
|
||
|
GuiObject obj = NULL;
|
||
|
return sendMessage(message, 0, 0, 0, s0, "", obj);
|
||
|
}
|
||
|
|
||
|
int sendMessageO(int message, GuiObject obj)
|
||
|
{
|
||
|
return sendMessage(message, 0, 0, 0, "", "", obj);
|
||
|
}
|
||
|
|
||
|
int sendMessageV(int messagej)
|
||
|
{
|
||
|
GuiObject obj = NULL;
|
||
|
return sendMessage(message, 0, 0, 0, "", "", obj);
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#ifdef DISPATCH
|
||
|
|
||
|
dispatcher.onAction(String action, String param, Int message, int y, int p1, int p2, GuiObject source)
|
||
|
{
|
||
|
return onMessage(message, y, p1, p2, action, param, source);
|
||
|
}
|
||
|
|
||
|
#endif
|