mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 07:29:21 +02:00
IDE: build modes: add mode value
git-svn-id: trunk@18565 -
This commit is contained in:
parent
e1a8cc2434
commit
a7dd474dc4
@ -47,6 +47,7 @@ type
|
|||||||
procedure BuildModeTVPopupMenuPopup(Sender: TObject);
|
procedure BuildModeTVPopupMenuPopup(Sender: TObject);
|
||||||
procedure DeleteBuildModeClick(Sender: TObject);
|
procedure DeleteBuildModeClick(Sender: TObject);
|
||||||
procedure NewBuildModeClick(Sender: TObject);
|
procedure NewBuildModeClick(Sender: TObject);
|
||||||
|
procedure NewValueClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
FBuildModes: TIDEBuildModes;
|
FBuildModes: TIDEBuildModes;
|
||||||
fModeImgID: LongInt;
|
fModeImgID: LongInt;
|
||||||
@ -56,8 +57,11 @@ type
|
|||||||
procedure SetBuildModes(const AValue: TIDEBuildModes);
|
procedure SetBuildModes(const AValue: TIDEBuildModes);
|
||||||
procedure RebuildTreeView;
|
procedure RebuildTreeView;
|
||||||
procedure TreeViewAddBuildMode(BuildMode: TLazBuildMode);
|
procedure TreeViewAddBuildMode(BuildMode: TLazBuildMode);
|
||||||
|
procedure TreeViewAddValue(ValuesTVNode: TTreeNode; aValue: string);
|
||||||
function GetSelectedNode(out BuildMode: TLazBuildMode;
|
function GetSelectedNode(out BuildMode: TLazBuildMode;
|
||||||
out NodeType: TCBMNodeType): TTreeNode;
|
out NodeType: TCBMNodeType): TTreeNode;
|
||||||
|
function GetBuildModeTVNode(BuildMode: TLazBuildMode): TTreeNode;
|
||||||
|
function GetValuesTVNode(BuildMode: TLazBuildMode): TTreeNode;
|
||||||
public
|
public
|
||||||
constructor Create(TheOwner: TComponent); override;
|
constructor Create(TheOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -80,12 +84,36 @@ begin
|
|||||||
BuildModesTreeView.EndUpdate;
|
BuildModesTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompOptBuildModesFrame.NewValueClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
BuildMode: TLazBuildMode;
|
||||||
|
NodeType: TCBMNodeType;
|
||||||
|
i: Integer;
|
||||||
|
NewValueStr: String;
|
||||||
|
ValuesTVNode: TTreeNode;
|
||||||
|
begin
|
||||||
|
GetSelectedNode(BuildMode,NodeType);
|
||||||
|
if BuildMode=nil then exit;
|
||||||
|
i:=1;
|
||||||
|
repeat
|
||||||
|
NewValueStr:='Value'+IntToStr(i);
|
||||||
|
if BuildMode.Values.IndexOf(NewValueStr)<0 then break;
|
||||||
|
inc(i);
|
||||||
|
until false;
|
||||||
|
BuildMode.Values.Add(NewValueStr);
|
||||||
|
BuildModesTreeView.BeginUpdate;
|
||||||
|
ValuesTVNode:=GetValuesTVNode(BuildMode);
|
||||||
|
TreeViewAddValue(ValuesTVNode,NewValueStr);
|
||||||
|
ValuesTVNode.Expand(true);
|
||||||
|
BuildModesTreeView.EndUpdate;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCompOptBuildModesFrame.DeleteBuildModeClick(Sender: TObject);
|
procedure TCompOptBuildModesFrame.DeleteBuildModeClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
BuildMode: TIDEBuildMode;
|
BuildMode: TIDEBuildMode;
|
||||||
SelTVNode: TTreeNode;
|
SelTVNode: TTreeNode;
|
||||||
NodeType: TCBMNodeType;
|
NodeType: TCBMNodeType;
|
||||||
i: LongInt;
|
i: LongInt;
|
||||||
begin
|
begin
|
||||||
SelTVNode:=GetSelectedNode(BuildMode,NodeType);
|
SelTVNode:=GetSelectedNode(BuildMode,NodeType);
|
||||||
if BuildMode=nil then exit;
|
if BuildMode=nil then exit;
|
||||||
@ -127,7 +155,7 @@ begin
|
|||||||
GetSelectedNode(BuildMode,NodeType);
|
GetSelectedNode(BuildMode,NodeType);
|
||||||
|
|
||||||
if NodeType in [cbmntBuildMode,cbmntValues,cbmntValue] then
|
if NodeType in [cbmntBuildMode,cbmntValues,cbmntValue] then
|
||||||
Add('New value',nil);
|
Add('New value',@NewValueClick);
|
||||||
if NodeType in [cbmntValue] then
|
if NodeType in [cbmntValue] then
|
||||||
Add('Delete value ...',nil);
|
Add('Delete value ...',nil);
|
||||||
AddSeparator;
|
AddSeparator;
|
||||||
@ -165,7 +193,6 @@ var
|
|||||||
Values: TStrings;
|
Values: TStrings;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
DefValueTVNode: TTreeNode;
|
DefValueTVNode: TTreeNode;
|
||||||
ValueTVNode: TTreeNode;
|
|
||||||
begin
|
begin
|
||||||
// create node for the build mode
|
// create node for the build mode
|
||||||
TVNode:=BuildModesTreeView.Items.AddObject(nil,BuildMode.Identifier,BuildMode);
|
TVNode:=BuildModesTreeView.Items.AddObject(nil,BuildMode.Identifier,BuildMode);
|
||||||
@ -181,12 +208,8 @@ begin
|
|||||||
ValuesTVNode.SelectedIndex:=ValuesTVNode.ImageIndex;
|
ValuesTVNode.SelectedIndex:=ValuesTVNode.ImageIndex;
|
||||||
// a node for each value
|
// a node for each value
|
||||||
Values:=BuildMode.Values;
|
Values:=BuildMode.Values;
|
||||||
for i:=0 to Values.Count-1 do begin
|
for i:=0 to Values.Count-1 do
|
||||||
ValueTVNode:=BuildModesTreeView.Items.AddChild(ValuesTVNode,Values[i]);
|
TreeViewAddValue(ValuesTVNode,Values[i]);
|
||||||
ValueTVNode.ImageIndex:=fValueImgID;
|
|
||||||
ValueTVNode.StateIndex:=ValueTVNode.ImageIndex;
|
|
||||||
ValueTVNode.SelectedIndex:=ValueTVNode.ImageIndex;
|
|
||||||
end;
|
|
||||||
// a node for the default value
|
// a node for the default value
|
||||||
DefValueTVNode:=BuildModesTreeView.Items.AddChild(TVNode,
|
DefValueTVNode:=BuildModesTreeView.Items.AddChild(TVNode,
|
||||||
lisDefaultValue);
|
lisDefaultValue);
|
||||||
@ -198,6 +221,17 @@ begin
|
|||||||
TVNode.Expand(true);
|
TVNode.Expand(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompOptBuildModesFrame.TreeViewAddValue(ValuesTVNode: TTreeNode;
|
||||||
|
aValue: string);
|
||||||
|
var
|
||||||
|
ValueTVNode: TTreeNode;
|
||||||
|
begin
|
||||||
|
ValueTVNode:=BuildModesTreeView.Items.AddChild(ValuesTVNode,aValue);
|
||||||
|
ValueTVNode.ImageIndex:=fValueImgID;
|
||||||
|
ValueTVNode.StateIndex:=ValueTVNode.ImageIndex;
|
||||||
|
ValueTVNode.SelectedIndex:=ValueTVNode.ImageIndex;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCompOptBuildModesFrame.GetSelectedNode(out
|
function TCompOptBuildModesFrame.GetSelectedNode(out
|
||||||
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
||||||
|
|
||||||
@ -233,6 +267,26 @@ begin
|
|||||||
NodeType:=GetNodeType(Result);
|
NodeType:=GetNodeType(Result);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCompOptBuildModesFrame.GetBuildModeTVNode(BuildMode: TLazBuildMode
|
||||||
|
): TTreeNode;
|
||||||
|
begin
|
||||||
|
Result:=BuildModesTreeView.Items.GetFirstNode;
|
||||||
|
while (Result<>nil) and (TObject(Result.Data)<>BuildMode) do
|
||||||
|
Result:=Result.GetNextSibling;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCompOptBuildModesFrame.GetValuesTVNode(BuildMode: TLazBuildMode
|
||||||
|
): TTreeNode;
|
||||||
|
var
|
||||||
|
BuildModeTVNode: TTreeNode;
|
||||||
|
begin
|
||||||
|
BuildModeTVNode:=GetBuildModeTVNode(BuildMode);
|
||||||
|
if (BuildModeTVNode<>nil) then
|
||||||
|
Result:=BuildModeTVNode.GetFirstChild
|
||||||
|
else
|
||||||
|
Result:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TCompOptBuildModesFrame.Create(TheOwner: TComponent);
|
constructor TCompOptBuildModesFrame.Create(TheOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(TheOwner);
|
inherited Create(TheOwner);
|
||||||
|
Loading…
Reference in New Issue
Block a user