mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 17:41:31 +02:00
IDE: build modes: add new build modes
git-svn-id: trunk@18563 -
This commit is contained in:
parent
2ae6c31c9d
commit
9adb2fad96
@ -46,7 +46,7 @@ type
|
|||||||
BuildModeTVPopupMenu: TPopupMenu;
|
BuildModeTVPopupMenu: TPopupMenu;
|
||||||
procedure BuildModeTVPopupMenuPopup(Sender: TObject);
|
procedure BuildModeTVPopupMenuPopup(Sender: TObject);
|
||||||
procedure DeleteSpeedButtonClick(Sender: TObject);
|
procedure DeleteSpeedButtonClick(Sender: TObject);
|
||||||
procedure NewSpeedButtonClick(Sender: TObject);
|
procedure NewBuildModeClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
FBuildModes: TIDEBuildModes;
|
FBuildModes: TIDEBuildModes;
|
||||||
fModeImgID: LongInt;
|
fModeImgID: LongInt;
|
||||||
@ -55,6 +55,7 @@ type
|
|||||||
fDefValueImgID: LongInt;
|
fDefValueImgID: LongInt;
|
||||||
procedure SetBuildModes(const AValue: TIDEBuildModes);
|
procedure SetBuildModes(const AValue: TIDEBuildModes);
|
||||||
procedure RebuildTreeView;
|
procedure RebuildTreeView;
|
||||||
|
procedure TreeViewAddBuildMode(BuildMode: TLazBuildMode);
|
||||||
function GetSelectedNode(out BuildMode: TLazBuildMode;
|
function GetSelectedNode(out BuildMode: TLazBuildMode;
|
||||||
out NodeType: TCBMNodeType): TTreeNode;
|
out NodeType: TCBMNodeType): TTreeNode;
|
||||||
public
|
public
|
||||||
@ -67,15 +68,16 @@ implementation
|
|||||||
|
|
||||||
{ TCompOptBuildModesFrame }
|
{ TCompOptBuildModesFrame }
|
||||||
|
|
||||||
procedure TCompOptBuildModesFrame.NewSpeedButtonClick(Sender: TObject);
|
procedure TCompOptBuildModesFrame.NewBuildModeClick(Sender: TObject);
|
||||||
{var
|
var
|
||||||
NewIdentifier: String;}
|
NewIdentifier: String;
|
||||||
|
NewBuildMode: TLazBuildMode;
|
||||||
begin
|
begin
|
||||||
{ NewIdentifier:=GlobalBuildModeSet.GetUniqueModeName(BuildModes);
|
NewIdentifier:=GlobalBuildModeSet.GetUniqueModeName(BuildModes);
|
||||||
BuildModes.Add(NewIdentifier);
|
NewBuildMode:=BuildModes.Add(NewIdentifier);
|
||||||
ModesGrid.RowCount:=BuildModes.Count;
|
BuildModesTreeView.BeginUpdate;
|
||||||
ModesGrid.Cells[0,BuildModes.Count-1]:=NewIdentifier;
|
TreeViewAddBuildMode(NewBuildMode);
|
||||||
ModesGrid.Row:=BuildModes.Count-1;}
|
BuildModesTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCompOptBuildModesFrame.DeleteSpeedButtonClick(Sender: TObject);
|
procedure TCompOptBuildModesFrame.DeleteSpeedButtonClick(Sender: TObject);
|
||||||
@ -111,6 +113,8 @@ var
|
|||||||
|
|
||||||
function AddSeparator: TMenuItem;
|
function AddSeparator: TMenuItem;
|
||||||
begin
|
begin
|
||||||
|
Result:=nil;
|
||||||
|
if BuildModeTVPopupMenu.Items.Count=0 then exit;
|
||||||
Result:=TMenuItem.Create(Self);
|
Result:=TMenuItem.Create(Self);
|
||||||
Result.Caption:='-';
|
Result.Caption:='-';
|
||||||
BuildModeTVPopupMenu.Items.Add(Result);
|
BuildModeTVPopupMenu.Items.Add(Result);
|
||||||
@ -125,7 +129,7 @@ begin
|
|||||||
if NodeType in [cbmntValue] then
|
if NodeType in [cbmntValue] then
|
||||||
Add('Delete value ...',nil);
|
Add('Delete value ...',nil);
|
||||||
AddSeparator;
|
AddSeparator;
|
||||||
Add('New build mode',nil);
|
Add('New build mode',@NewBuildModeClick);
|
||||||
if NodeType in [cbmntBuildMode] then
|
if NodeType in [cbmntBuildMode] then
|
||||||
Add('Delete build mode ...',nil);
|
Add('Delete build mode ...',nil);
|
||||||
end;
|
end;
|
||||||
@ -140,54 +144,58 @@ end;
|
|||||||
procedure TCompOptBuildModesFrame.RebuildTreeView;
|
procedure TCompOptBuildModesFrame.RebuildTreeView;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
TVNode: TTreeNode;
|
|
||||||
BuildMode: TLazBuildMode;
|
|
||||||
j: Integer;
|
|
||||||
Values: TStrings;
|
|
||||||
ValueTVNode: TTreeNode;
|
|
||||||
ValuesTVNode: TTreeNode;
|
|
||||||
DefValueTVNode: TTreeNode;
|
|
||||||
begin
|
begin
|
||||||
BuildModesTreeView.BeginUpdate;
|
BuildModesTreeView.BeginUpdate;
|
||||||
BuildModesTreeView.Items.Clear;
|
BuildModesTreeView.Items.Clear;
|
||||||
if BuildModes<>nil then begin
|
if BuildModes<>nil then begin
|
||||||
// first level: build modes
|
// first level: build modes
|
||||||
for i:=0 to BuildModes.Count-1 do begin
|
for i:=0 to BuildModes.Count-1 do
|
||||||
BuildMode:=BuildModes.Items[i];
|
TreeViewAddBuildMode(BuildModes.Items[i]);
|
||||||
// create node for the build mode
|
|
||||||
TVNode:=BuildModesTreeView.Items.AddObject(nil,BuildMode.Identifier,BuildMode);
|
|
||||||
TVNode.ImageIndex:=fModeImgID;
|
|
||||||
TVNode.StateIndex:=TVNode.ImageIndex;
|
|
||||||
TVNode.SelectedIndex:=TVNode.ImageIndex;
|
|
||||||
// second level
|
|
||||||
begin
|
|
||||||
// parent node for values
|
|
||||||
ValuesTVNode:=BuildModesTreeView.Items.AddChild(TVNode, lisValues);
|
|
||||||
ValuesTVNode.ImageIndex:=fValuesImgID;
|
|
||||||
ValuesTVNode.StateIndex:=ValuesTVNode.ImageIndex;
|
|
||||||
ValuesTVNode.SelectedIndex:=ValuesTVNode.ImageIndex;
|
|
||||||
// a node for each value
|
|
||||||
Values:=BuildMode.Values;
|
|
||||||
for j:=0 to Values.Count-1 do begin
|
|
||||||
ValueTVNode:=BuildModesTreeView.Items.AddChild(ValuesTVNode,Values[j]);
|
|
||||||
ValueTVNode.ImageIndex:=fValueImgID;
|
|
||||||
ValueTVNode.StateIndex:=ValueTVNode.ImageIndex;
|
|
||||||
ValueTVNode.SelectedIndex:=ValueTVNode.ImageIndex;
|
|
||||||
end;
|
|
||||||
// a node for the default value
|
|
||||||
DefValueTVNode:=BuildModesTreeView.Items.AddChild(TVNode,
|
|
||||||
lisDefaultValue);
|
|
||||||
DefValueTVNode.ImageIndex:=fDefValueImgID;
|
|
||||||
DefValueTVNode.StateIndex:=DefValueTVNode.ImageIndex;
|
|
||||||
DefValueTVNode.SelectedIndex:=DefValueTVNode.ImageIndex;
|
|
||||||
// ToDo: add default value nodes
|
|
||||||
end;
|
|
||||||
TVNode.Expand(true);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
BuildModesTreeView.EndUpdate;
|
BuildModesTreeView.EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompOptBuildModesFrame.TreeViewAddBuildMode(BuildMode: TLazBuildMode
|
||||||
|
);
|
||||||
|
var
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
ValuesTVNode: TTreeNode;
|
||||||
|
Values: TStrings;
|
||||||
|
i: Integer;
|
||||||
|
DefValueTVNode: TTreeNode;
|
||||||
|
ValueTVNode: TTreeNode;
|
||||||
|
begin
|
||||||
|
// create node for the build mode
|
||||||
|
TVNode:=BuildModesTreeView.Items.AddObject(nil,BuildMode.Identifier,BuildMode);
|
||||||
|
TVNode.ImageIndex:=fModeImgID;
|
||||||
|
TVNode.StateIndex:=TVNode.ImageIndex;
|
||||||
|
TVNode.SelectedIndex:=TVNode.ImageIndex;
|
||||||
|
// second level
|
||||||
|
begin
|
||||||
|
// parent node for values
|
||||||
|
ValuesTVNode:=BuildModesTreeView.Items.AddChild(TVNode, lisValues);
|
||||||
|
ValuesTVNode.ImageIndex:=fValuesImgID;
|
||||||
|
ValuesTVNode.StateIndex:=ValuesTVNode.ImageIndex;
|
||||||
|
ValuesTVNode.SelectedIndex:=ValuesTVNode.ImageIndex;
|
||||||
|
// a node for each value
|
||||||
|
Values:=BuildMode.Values;
|
||||||
|
for i:=0 to Values.Count-1 do begin
|
||||||
|
ValueTVNode:=BuildModesTreeView.Items.AddChild(ValuesTVNode,Values[i]);
|
||||||
|
ValueTVNode.ImageIndex:=fValueImgID;
|
||||||
|
ValueTVNode.StateIndex:=ValueTVNode.ImageIndex;
|
||||||
|
ValueTVNode.SelectedIndex:=ValueTVNode.ImageIndex;
|
||||||
|
end;
|
||||||
|
// a node for the default value
|
||||||
|
DefValueTVNode:=BuildModesTreeView.Items.AddChild(TVNode,
|
||||||
|
lisDefaultValue);
|
||||||
|
DefValueTVNode.ImageIndex:=fDefValueImgID;
|
||||||
|
DefValueTVNode.StateIndex:=DefValueTVNode.ImageIndex;
|
||||||
|
DefValueTVNode.SelectedIndex:=DefValueTVNode.ImageIndex;
|
||||||
|
// ToDo: add default value nodes
|
||||||
|
end;
|
||||||
|
TVNode.Expand(true);
|
||||||
|
end;
|
||||||
|
|
||||||
function TCompOptBuildModesFrame.GetSelectedNode(out
|
function TCompOptBuildModesFrame.GetSelectedNode(out
|
||||||
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user