mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-23 10:50:26 +01:00
84 lines
3.0 KiB
C
84 lines
3.0 KiB
C
/*
|
|
* LWSDK Header File
|
|
* Copyright 2001, NewTek, Inc.
|
|
*
|
|
* LWLAYTOOL.H -- Layout Interactive Tools
|
|
*/
|
|
#ifndef LWSDK_LAYTOOL_H
|
|
#define LWSDK_LAYTOOL_H
|
|
|
|
#include <lwtool.h>
|
|
#include <lwcustobj.h>
|
|
|
|
|
|
#define LWLAYOUTTOOL_CLASS "LayoutTool"
|
|
#define LWLAYOUTTOOL_VERSION 1
|
|
|
|
/*
|
|
* A Layout tool is a LightWave viewport tool whose draw() function
|
|
* takes a LWCustomObjAccess instead of a LWWireDrawAccess structure.
|
|
* It has the following handler functions.
|
|
*
|
|
* done destroy the instance when the user discards the tool.
|
|
*
|
|
* draw display a wireframe representation of the tool in a 3D
|
|
* viewport. Typically this draws the handles.
|
|
*
|
|
* help return a text string to be displayed as a help tip for
|
|
* this tool.
|
|
*
|
|
* dirty return flag bit if either the wireframe or help string
|
|
* need to be refreshed.
|
|
*
|
|
* count return the number of handles. If zero, then 'start' is
|
|
* used to set the initial handle point.
|
|
*
|
|
* handle return the 3D location and priority of handle 'i', or zero
|
|
* if the handle is currently invalid.
|
|
*
|
|
* start take an initial mouse-down position and return the index
|
|
* of the handle that should be dragged.
|
|
*
|
|
* adjust 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).
|
|
*
|
|
* down process a mouse-down event. If this function returns
|
|
* false, handle processing will be done instead of raw
|
|
* mouse event processing.
|
|
*
|
|
* move process a mouse-move event. This is only called if the
|
|
* down function returned true.
|
|
*
|
|
* up process a mouse-up event. This is only called if the down
|
|
* function returned true.
|
|
*
|
|
* event process a general event: DROP, RESET or ACTIVATE
|
|
*
|
|
* panel create and return a view-type xPanel for the tool instance.
|
|
*/
|
|
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;
|
|
|
|
typedef struct st_LWLayoutTool {
|
|
LWInstance instance;
|
|
LWLayoutToolFuncs *tool;
|
|
} LWLayoutTool;
|
|
|
|
|
|
#endif
|
|
|