lazarus/components/ideintf/macrodefintf.pas

63 lines
1.4 KiB
ObjectPascal

{ Copyright (C) 2012
*****************************************************************************
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
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.