mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-01 15:23:42 +02:00
63 lines
1.4 KiB
ObjectPascal
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.
|