4D Plugin API


version 2003


Different selectors that can be sent to plug-in for different event

Usually received in PluginMain (see PluginSample.c for an example of use)

#define kServerDeinitPlugin -220
#define kServerCleanUp -207
#define kWriteOnServer -206
#define kReadOnServer -205
#define kClientDisconnect -202
#define kClientConnect -201
#define kServerInitPlugin -200
#define kPackageGiveMemory -10
#define kCreateProcess -3
#define kCloseProcess -4
#define kClientDeinitPlugin -2
#define kDeinitPlugin kClientDeinitPlugin
#define kClientInitPlugin -1
#define kInitPlugin kClientInitPlugin

An area can receive those events. To retrieve an event, use PA_GetAreaEvent , which returns a value of type PA_AreaEvent .

typedef enum { eAE_Idle = 0, eAE_MouseDown = 1, eAE_MouseUp = 2, eAE_KeyDown = 3, eAE_KeyUp = 4, eAE_AutoKey = 5, eAE_Update = 6, eAE_InitArea = 16, // first call to area, time to call PA_SetAreaReference eAE_Deinit = 17, eAE_Cursor = 18, // mouse has moved (even if your area is not selected) eAE_IsFocusable = 20, eAE_Select = 21, eAE_Deselect = 22, eAE_Scroll = 25, // area rect has changed, call PA_GetAreaRect eAE_DesignUpdate = 26, eAE_TestPrintSize = 27, eAE_GetPrintSize = 28, eAE_PrintBand = 29, eAE_UndoCommand = 30, eAE_CutCommand = 31, eAE_CopyCommand = 32, eAE_PasteCommand = 33, eAE_ClearCommand = 34, eAE_SelectAllCommand = 35, eAE_RedoCommand = 36, // added in 4D 2004.4 eAE_MouseWheel = 39, eAE_UpdateEditCommands = 43, // you need to call PA_UpdateEditMenu eAE_LoadRecord = 69, eAE_SaveRecord = 70, eAE_PageChange = 71, eAE_EndExecutionCycle = 72, eAE_AllowDrop = 80, eAE_Drag = 81, eAE_Drop = 82, eAE_BeginDrag = 85, // added in v11 eAE_WebPublish = 128, eAE_WebPublishPicture = 129, eAE_WebDisposeData = 130, eAE_WebClick = 131, eAE_EditAdvancedProperties = 600, // user clicks on "Advanced Properties" button eAE_DisposeAdvancedProperties = 601, // 4D has stored the advanced plugin properties, you can now dispose your data eAE_InitAdvancedProperties = 602, // it's time to read the advanced properties eAE_AreAdvancedPropertiesEditable = 603, // 4D wants to know if you want to use "Advanced Properties" button eAE_GetMenuIcon = 604, // 4D requests the id of the 'cicn' resources used in plugin menu eAE_DesignInit = 605 // called when layout is opened in design mode } PA_AreaEvent;