Added the plugins directory to CVS and updated the files
This commit is contained in:
38
editor/studio/plugins/Hello_World Delphi/HelloWorld.cfg
Normal file
38
editor/studio/plugins/Hello_World Delphi/HelloWorld.cfg
Normal file
@ -0,0 +1,38 @@
|
||||
-$A8
|
||||
-$B-
|
||||
-$C+
|
||||
-$D+
|
||||
-$E-
|
||||
-$F-
|
||||
-$G+
|
||||
-$H+
|
||||
-$I+
|
||||
-$J-
|
||||
-$K-
|
||||
-$L+
|
||||
-$M-
|
||||
-$N+
|
||||
-$O+
|
||||
-$P+
|
||||
-$Q-
|
||||
-$R-
|
||||
-$S-
|
||||
-$T-
|
||||
-$U-
|
||||
-$V+
|
||||
-$W-
|
||||
-$X+
|
||||
-$YD
|
||||
-$Z1
|
||||
-cg
|
||||
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
|
||||
-H+
|
||||
-W+
|
||||
-M
|
||||
-$M16384,1048576
|
||||
-K$00400000
|
||||
-LE"c:\programme\borland\delphi7\Projects\Bpl"
|
||||
-LN"c:\programme\borland\delphi7\Projects\Bpl"
|
||||
-w-UNSAFE_TYPE
|
||||
-w-UNSAFE_CODE
|
||||
-w-UNSAFE_CAST
|
49
editor/studio/plugins/Hello_World Delphi/HelloWorld.dpr
Normal file
49
editor/studio/plugins/Hello_World Delphi/HelloWorld.dpr
Normal file
@ -0,0 +1,49 @@
|
||||
library HelloWorld;
|
||||
|
||||
|
||||
uses
|
||||
SysUtils,
|
||||
Classes,
|
||||
Windows,
|
||||
Messages,
|
||||
studioapi;
|
||||
|
||||
{$R *.res}
|
||||
|
||||
{ Commands here }
|
||||
|
||||
procedure PluginLoad(LoadInfo: PLoadInfo); cdecl;
|
||||
begin
|
||||
// Set Plugin infos after load
|
||||
LoadInfo.sPluginName := 'Hello World';
|
||||
LoadInfo.sPluginDescription := 'Simple Hello World example (Delphi).';
|
||||
// Create menu item in Tools with the caption "Hello World! [Delphi]" and with ImageIndex -1 (no image)
|
||||
SendStudioMsg(SCM_MENU_ADDITEM, 'Tools->Hello World! [Delphi]', -1);
|
||||
end;
|
||||
|
||||
procedure PluginUnload; cdecl;
|
||||
begin
|
||||
// Remove menu stuff etc.
|
||||
SendStudioMsg(SCM_REMOVE_MENUITEM, 'Hello World! [Delphi]', -1);
|
||||
end;
|
||||
|
||||
function CustomItemClick(pCaption: PChar): Integer; cdecl;
|
||||
begin
|
||||
// Handle custom click
|
||||
if pCaption = 'Hello World! [Delphi]' then begin
|
||||
SendStudioMsg(SCM_EDITOR_SETTEXT, 'Hello World!' + #13 + #13 + 'This is a simple example for creating plugins for AMXX-Studio in Delphi.', 0);
|
||||
Result := PLUGIN_HANDLED;
|
||||
end
|
||||
else
|
||||
Result := PLUGIN_CONTINUE;
|
||||
end;
|
||||
|
||||
exports // Export all DLL functions
|
||||
PluginLoad,
|
||||
PluginUnload,
|
||||
CustomItemClick;
|
||||
|
||||
begin
|
||||
|
||||
end.
|
||||
|
BIN
editor/studio/plugins/Hello_World Delphi/HelloWorld.res
Normal file
BIN
editor/studio/plugins/Hello_World Delphi/HelloWorld.res
Normal file
Binary file not shown.
194
editor/studio/plugins/Hello_World Delphi/studioapi.pas
Normal file
194
editor/studio/plugins/Hello_World Delphi/studioapi.pas
Normal file
@ -0,0 +1,194 @@
|
||||
unit studioapi;
|
||||
|
||||
interface
|
||||
|
||||
uses SysUtils, Windows, Messages;
|
||||
|
||||
type TLoadInfo = record
|
||||
{ Plugin values }
|
||||
sPluginName: PChar;
|
||||
sPluginDescription: PChar;
|
||||
{ Form Handles }
|
||||
hAllFilesForm: PHandle;
|
||||
hAutoIndent: PHandle;
|
||||
hClose: PHandle;
|
||||
hConnGen: PHandle;
|
||||
hGoToLine: PHandle;
|
||||
hHTMLPreview: PHandle;
|
||||
hHudMsgGenerator: PHandle;
|
||||
hInfo: PHandle;
|
||||
hIRCPaster: PHandle;
|
||||
hMainForm: PHandle;
|
||||
hMenuGenerator: PHandle;
|
||||
hMOTDGen: PHandle;
|
||||
hPluginsIniEditor: PHandle;
|
||||
hReplace: PHandle;
|
||||
hSearch: PHandle;
|
||||
hSelectColor: PHandle;
|
||||
hSettings: PHandle;
|
||||
hSocketsTerminal: PHandle;
|
||||
{ Important Control Handles }
|
||||
hOutput: PHandle;
|
||||
hCodeExplorer: PHandle;
|
||||
hCodeInspector: PHandle; // even if it won't be useful
|
||||
hNotes: PHandle;
|
||||
{ Other }
|
||||
pApplication: Pointer; // this is only useful for Delphi developers
|
||||
end;
|
||||
|
||||
type PLoadInfo = ^TLoadInfo;
|
||||
TLoadPlugin = procedure (LoadInfo: PLoadInfo); cdecl;
|
||||
TUnloadPlugin = procedure; cdecl;
|
||||
|
||||
const { Return values for dlls }
|
||||
PLUGIN_CONTINUE = 0; // continue...
|
||||
PLUGIN_STOP = 1; // stop calling funcs and don't handle the command
|
||||
PLUGIN_HANDLED = 2; // don't handle the command
|
||||
{ Compile values }
|
||||
COMP_DEFAULT = 0;
|
||||
COMP_STARTHL = 1;
|
||||
COMP_UPLOAD = 2;
|
||||
{ Help values }
|
||||
HELP_DEFAULT = 0;
|
||||
HELP_SEARCH = 1;
|
||||
HELP_FORUMS = 2;
|
||||
HELP_ABOUT = 3;
|
||||
{ Controls for visible state }
|
||||
CTRL_OUTPUT = 0; // Output list
|
||||
CTRL_CODETOOLS_MAIN = 1; // Code-Tools window
|
||||
CTRL_CODETOOLS_ITEM = 2; // Code-Tools tab
|
||||
CTRL_NOTES = 3; // Notes tab
|
||||
{ Languages }
|
||||
NEW_PAWN_PLUGIN = 0;
|
||||
NEW_PAWN_EMPTYPLUGIN = 1;
|
||||
NEW_PAWN_HEADER = 2;
|
||||
NEW_CPP_MODULE = 3;
|
||||
NEW_CPP_UNIT = 4;
|
||||
NEW_CPP_HEADER = 5;
|
||||
NEW_OTHER_TEXTFILE = 6;
|
||||
NEW_OTHER_HTML = 7;
|
||||
NEW_OTHER_SQL = 8;
|
||||
NEW_OTHER_XML = 9;
|
||||
|
||||
const SCM_SHOWPROGRESS = WM_USER + $100;
|
||||
SCM_HIDEPROGRESS = WM_USER + $101;
|
||||
SCM_UPDATEPROGRESS = WM_USER + $102;
|
||||
SCM_LOADCODESNIPPETS = WM_USER + $103;
|
||||
SCM_CODESNIPPETCLICK = WM_USER + $104;
|
||||
SCM_MIRC_CMD = WM_USER + $105;
|
||||
SCM_RELOADINI = WM_USER + $106;
|
||||
SCM_SELECTLANGUAGE = WM_USER + $107;
|
||||
SCM_LOADFILE = WM_USER + $108;
|
||||
SCM_CURRPROJECTS = WM_USER + $109;
|
||||
SCM_COMPILE = WM_USER + $110;
|
||||
SCM_COMPILE_UPLOAD = WM_USER + $111;
|
||||
SCM_COMPILE_STARTHL = WM_USER + $112;
|
||||
SCM_MENU_LOADIMAGE = WM_USER + $113;
|
||||
SCM_MENU_ADDITEM = WM_USER + $114;
|
||||
SCM_MENU_ADDSUBITEM = WM_USER + $115;
|
||||
SCM_MENU_FAKECLICK = WM_USER + $116;
|
||||
SCM_MENU_SHOWITEM = WM_USER + $117;
|
||||
SCM_MENU_HIDEITEM = WM_USER + $118;
|
||||
SCM_PLUGIN_LOAD = WM_USER + $119;
|
||||
SCM_PLUGIN_UNLOAD = WM_USER + $120;
|
||||
SCM_SETTINGS_CREATEPAGE = WM_USER + $121;
|
||||
SCM_CODEINSPECTOR_CLEAR = WM_USER + $122;
|
||||
SCM_CODEINSPECTOR_ADD = WM_USER + $123;
|
||||
SCM_CODEINSPECTOR_ADDCOMBO = WM_USER + $124;
|
||||
SCM_CODEINSPECTOR_SETVALUE = WM_USER + $125;
|
||||
SCM_CODEINSPECTOR_SETNAME = WM_USER + $126;
|
||||
SCM_CODEINSPECTOR_GETVALUE = WM_USER + $127;
|
||||
SCM_CODEINSPECTOR_GETNAME = WM_USER + $128;
|
||||
SCM_CODEINSPECTOR_COUNT = WM_USER + $129;
|
||||
SCM_CODEINSPECTOR_BEGINUPDATE = WM_USER + $130;
|
||||
SCM_CODEINSPECTOR_ENDUPDATE = WM_USER + $131;
|
||||
SCM_CODEINSPECTOR_DELETE = WM_USER + $132;
|
||||
|
||||
SCM_PAWN_NEWFILE = WM_USER + $133;
|
||||
SCM_PAWN_SAVEFILE = WM_USER + $134;
|
||||
SCM_PAWN_CLOSEFILE = WM_USER + $135;
|
||||
SCM_PAWN_ISUNTITLED = WM_USER + $136;
|
||||
SCM_PAWN_ACTIVATE = WM_USER + $137;
|
||||
SCM_PAWN_ACTIVATEDOC = WM_USER + $138;
|
||||
SCM_PAWN_GETNOTES = WM_USER + $139;
|
||||
SCM_PAWN_SETNOTES = WM_USER + $140;
|
||||
SCM_PAWN_GETFILENAME = WM_USER + $141;
|
||||
SCM_PAWN_SETFILENAME = WM_USER + $142;
|
||||
SCM_PAWN_GETTEXT = WM_USER + $143;
|
||||
SCM_PAWN_SETTEXT = WM_USER + $144;
|
||||
|
||||
SCM_CPP_NEWFILE = WM_USER + $145;
|
||||
SCM_CPP_SAVEFILE = WM_USER + $146;
|
||||
SCM_CPP_CLOSEFILE = WM_USER + $147;
|
||||
SCM_CPP_ISUNTITLED = WM_USER + $148;
|
||||
SCM_CPP_ACTIVATE = WM_USER + $149;
|
||||
SCM_CPP_ACTIVATEDOC = WM_USER + $150;
|
||||
SCM_CPP_ACTIVATEIDE = WM_USER + $151;
|
||||
SCM_CPP_GETNOTES = WM_USER + $152;
|
||||
SCM_CPP_SETNOTES = WM_USER + $153;
|
||||
SCM_CPP_GETFILENAME = WM_USER + $154;
|
||||
SCM_CPP_SETFILENAME = WM_USER + $155;
|
||||
SCM_CPP_GETTEXT = WM_USER + $156;
|
||||
SCM_CPP_SETTEXT = WM_USER + $157;
|
||||
|
||||
SCM_OTHER_NEWFILE = WM_USER + $158;
|
||||
SCM_OTHER_SAVEFILE = WM_USER + $159;
|
||||
SCM_OTHER_CLOSEFILE = WM_USER + $160;
|
||||
SCM_OTHER_ISUNTITLED = WM_USER + $161;
|
||||
SCM_OTHER_ACTIVATE = WM_USER + $162;
|
||||
SCM_OTHER_ACTIVATEDOC = WM_USER + $163;
|
||||
SCM_OTHER_GETNOTES = WM_USER + $164;
|
||||
SCM_OTHER_SETNOTES = WM_USER + $165;
|
||||
SCM_OTHER_GETFILENAME = WM_USER + $166;
|
||||
SCM_OTHER_SETFILENAME = WM_USER + $167;
|
||||
SCM_OTHER_GETTEXT = WM_USER + $168;
|
||||
SCM_OTHER_SETTEXT = WM_USER + $169;
|
||||
|
||||
SCM_OUTPUT_SHOW = WM_USER + $170;
|
||||
SCM_OUTPUT_HIDE = WM_USER + $171;
|
||||
SCM_OUTPUT_ADD = WM_USER + $172;
|
||||
SCM_OUTPUT_CLEAR = WM_USER + $173;
|
||||
SCM_OUTPUT_DELETE = WM_USER + $174;
|
||||
SCM_OUTPUT_GETTEXT = WM_USER + $175;
|
||||
SCM_OUTPUT_GETITEM = WM_USER + $176;
|
||||
SCM_OUTPUT_INDEXOF = WM_USER + $177;
|
||||
SCM_ACTIVE_DOCUMENT = WM_USER + $178;
|
||||
SCM_ACTIVE_PROJECTS = WM_USER + $179;
|
||||
SCM_EDITOR_SETTEXT = WM_USER + $180;
|
||||
SCM_EDITOR_GETTEXT = WM_USER + $181;
|
||||
SCM_EDTIOR_SETCALLTIPS = WM_USER + $182;
|
||||
SCM_EDITOR_SHOWCALLTIP = WM_USER + $183;
|
||||
SCM_EDITOR_SETAUTOCOMPLETE = WM_USER + $184;
|
||||
SCM_EDITOR_SHOWAUTOCOMPLETE = WM_USER + $185;
|
||||
SCM_EDITOR_GETSELSTART = WM_USER + $186;
|
||||
SCM_EDITOR_GETSELLENGTH = WM_USER + $187;
|
||||
SCM_EDITOR_SETSELSTART = WM_USER + $188;
|
||||
SCM_EDITOR_SETSELLENGH = WM_USER + $189;
|
||||
|
||||
SCM_REMOVE_MENUITEM = WM_USER + $190;
|
||||
SCM_REMOVE_IMAGE = WM_USER + $191;
|
||||
SCM_SETTHEME = WM_USER + $192;
|
||||
SCM_GETTHEME = WM_USER + $193;
|
||||
|
||||
function SendStudioMsg(eMessage: Integer; eData: String; eIntData: Integer): Integer;
|
||||
|
||||
implementation
|
||||
|
||||
function SendStudioMsg(eMessage: Integer; eData: String; eIntData: Integer): Integer;
|
||||
var eStudioHandle: HWND;
|
||||
eCopyDataStruct: TCopyDataStruct;
|
||||
begin
|
||||
with eCopyDataStruct do begin
|
||||
dwData := eIntData;
|
||||
cbData := Length(eData) + 1;
|
||||
lpData := PChar(eData);
|
||||
end;
|
||||
|
||||
eStudioHandle := FindWindow('TfrmMain', 'AMXX-Studio');
|
||||
if eStudioHandle <> 0 then
|
||||
Result := SendMessage(eStudioHandle, WM_COPYDATA, eMessage, LongInt(@eCopyDataStruct))
|
||||
else
|
||||
Result := 0;
|
||||
end;
|
||||
|
||||
end.
|
Reference in New Issue
Block a user