mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 16:37:54 +02:00
77 lines
1.8 KiB
ObjectPascal
77 lines
1.8 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;
|
|
|
|
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,
|
|
tmfLazbuild // store value for lazbuild
|
|
);
|
|
TTransferMacroFlags = set of TTransferMacroFlag;
|
|
|
|
{ TTransferMacro }
|
|
|
|
TTransferMacro = class
|
|
private
|
|
FLazbuildValue: string;
|
|
protected
|
|
procedure SetLazbuildValue(const AValue: string); virtual;
|
|
public
|
|
Name: string;
|
|
Value: string;
|
|
Description: string;
|
|
MacroFunction: TMacroFunction;
|
|
Flags: TTransferMacroFlags;
|
|
property LazbuildValue: string read FLazbuildValue write SetLazbuildValue;
|
|
constructor Create(const AName, AValue, ADescription:string;
|
|
AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags);
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
{ TTransferMacro }
|
|
|
|
procedure TTransferMacro.SetLazbuildValue(const AValue: string);
|
|
begin
|
|
if FLazbuildValue=AValue then Exit;
|
|
FLazbuildValue:=AValue;
|
|
end;
|
|
|
|
constructor TTransferMacro.Create(const AName, AValue, ADescription: string;
|
|
AMacroFunction: TMacroFunction; TheFlags: TTransferMacroFlags);
|
|
begin
|
|
Name:=AName;
|
|
Value:=AValue;
|
|
Description:=ADescription;
|
|
MacroFunction:=AMacroFunction;
|
|
Flags:=TheFlags;
|
|
end;
|
|
|
|
end.
|