LayoutTool
Availability Future
Component Layout
Header lwlaytool.h
Layout tool plug-ins are just custom Layout tools. To the user, they behave like
Layout's built-in tools (the tools activated by the Move, Rotate and Scale buttons, for
example).
Support for this class hasn't been implemented yet.
Activation Function
XCALL_( int ) MyLayoutTool( long version, GlobalFunc *global,
LWLayoutTool *local, void *serverData );
The local argument to a Layout tool's activation function is an LWLayoutTool.
typedef struct st_LWLayoutTool {
LWInstance instance;
LWLayoutToolFuncs *tool;
} LWLayoutTool;
The activation function fills in the instance field and the callbacks of the tool
field and returns. As with handlers, the remaining
interaction between Layout and the plug-in takes place through the callbacks.
- instance
- A pointer to your user data. This will be passed to each of the tool callbacks.
tool
- Points to a structure containing function pointers for your callbacks, described below.
Tool Functions
The tool field of the LWLayoutTool is a pointer to an LWLayoutToolFuncs.
typedef struct st_LWLayoutToolFuncs {
void (*done) (LWInstance);
void (*draw) (LWInstance, LWCustomObjAccess *);
const char * (*help) (LWInstance, LWToolEvent *);
int (*dirty) (LWInstance);
int (*count) (LWInstance, LWToolEvent *);
int (*handle) (LWInstance, LWToolEvent *, int i,
LWDVector pos);
int (*start) (LWInstance, LWToolEvent *);
int (*adjust) (LWInstance, LWToolEvent *, int i);
int (*down) (LWInstance, LWToolEvent *);
void (*move) (LWInstance, LWToolEvent *);
void (*up) (LWInstance, LWToolEvent *);
void (*event) (LWInstance, int code);
LWXPanelID (*panel) (LWInstance);
} LWLayoutToolFuncs;
- done( inst )
- Destroy the instance. Called when the user discards the tool.
draw( inst, custobj_access )
- Display a wireframe representation of the tool in a 3D viewport. Typically this draws
the handles.
helptext = help( inst, event )
- Returns a text string to be displayed as a help tip for this tool.
dirty = dirty( inst )
- Returns flag bit if either the wireframe or help string need to be refreshed.
nhandles = count( inst, event )
- Returns the number of handles. If zero, then start is used to set the initial
handle point.
priority = handle( inst, event, handle, pos )
- Returns the 3D location and priority of the handle, or zero if the handle is currently
invalid.
handle = start( inst, event )
- Take an initial mouse-down position and return the index of the handle that should be
dragged.
handle = adjust( inst, event, handle )
- Drag the given handle to a new location and return the index of the handle that should
continue being dragged (often the same as the input).
rawmouse = down( inst, event )
- Process a mouse-down event. If this function returns false, handle processing will be
done instead of raw mouse event processing.
move( inst, event )
- Process a mouse-move event. This is only called if the down function returned
true.
up( inst, event )
- Process a mouse-up event. This is only called if the down function returned
true.
event( inst, code )
- Process a general event: DROP, RESET or ACTIVATE
panel = panel( inst )
- Create and return a view-type xPanel for the tool instance.
Example
. |