diff --git a/.gitattributes b/.gitattributes index 4a25165af8..865ee8e5f8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5123,6 +5123,7 @@ ideintf/lazstringgridedit.lfm svneol=native#text/plain ideintf/lazstringgridedit.pas svneol=native#text/plain ideintf/listviewpropedit.lfm svneol=native#text/plain ideintf/listviewpropedit.pp svneol=native#text/pascal +ideintf/macrodefintf.pas svneol=native#text/plain ideintf/macrointf.pas svneol=native#text/pascal ideintf/maskpropedit.lfm svneol=native#text/plain ideintf/maskpropedit.pas svneol=native#text/plain diff --git a/ideintf/macrodefintf.pas b/ideintf/macrodefintf.pas new file mode 100644 index 0000000000..9d0968f2ed --- /dev/null +++ b/ideintf/macrodefintf.pas @@ -0,0 +1,140 @@ +{ Copyright (C) 2012 + + ***************************************************************************** + * * + * See the file COPYING.modifiedLGPL.txt, included in this distribution, * + * for details about the copyright. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * * + ***************************************************************************** + + Abstract: + Interface to the IDE macros. +} + +unit MacroDefIntf; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils; + +Type + TTransferMacro = class; + + TOnSubstitution = procedure(TheMacro: TTransferMacro; const MacroName: string; + var s:string; const Data: PtrInt; var Handled, Abort: boolean; + Depth: integer) of object; + + TMacroFunction = function(const s: string; const Data: PtrInt; + var Abort: boolean): string of object; + + TTransferMacroFlag = ( + tmfInteractive + ); + TTransferMacroFlags = set of TTransferMacroFlag; + + TTransferMacro = class + public + Name: string; + Value: string; + Description: string; + MacroFunction: TMacroFunction; + Flags: TTransferMacroFlags; + constructor Create(AName, AValue, ADescription:string; + AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags); + end; + + +implementation + +{ TTransferMacro } + +constructor TTransferMacro.Create(AName, AValue, ADescription:string; + AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags); +begin + Name:=AName; + Value:=AValue; + Description:=ADescription; + MacroFunction:=AMacroFunction; + Flags:=TheFlags; +end; + + +end. + +{ Copyright (C) 2012 + + ***************************************************************************** + * * + * See the file COPYING.modifiedLGPL.txt, included in this distribution, * + * for details about the copyright. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * * + ***************************************************************************** + + Abstract: + Interface to the IDE macros. +} + +unit MacroDefIntf; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils; + +Type + TTransferMacro = class; + + TOnSubstitution = procedure(TheMacro: TTransferMacro; const MacroName: string; + var s:string; const Data: PtrInt; var Handled, Abort: boolean; + Depth: integer) of object; + + TMacroFunction = function(const s: string; const Data: PtrInt; + var Abort: boolean): string of object; + + TTransferMacroFlag = ( + tmfInteractive + ); + TTransferMacroFlags = set of TTransferMacroFlag; + + TTransferMacro = class + public + Name: string; + Value: string; + Description: string; + MacroFunction: TMacroFunction; + Flags: TTransferMacroFlags; + constructor Create(AName, AValue, ADescription:string; + AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags); + end; + + +implementation + +{ TTransferMacro } + +constructor TTransferMacro.Create(AName, AValue, ADescription:string; + AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags); +begin + Name:=AName; + Value:=AValue; + Description:=ADescription; + MacroFunction:=AMacroFunction; + Flags:=TheFlags; +end; + + +end. +