mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-23 08:02:03 +02:00
IDE: started build modes grid
git-svn-id: trunk@21576 -
This commit is contained in:
parent
b83e38fcc4
commit
04b03bbb5d
@ -46,7 +46,7 @@ uses
|
||||
MacroIntf, ProjectIntf, IDEWindowIntf, IDEContextHelpEdit,
|
||||
TransferMacros, PathEditorDlg, LazarusIDEStrConsts, IDEOptionDefs, LazConf,
|
||||
IDEProcs, IDEImagesIntf, ShowCompilerOpts, Project, PackageDefs,
|
||||
CompilerOptions, CheckCompilerOpts, CompOptsModes,
|
||||
CompilerOptions, CheckCompilerOpts, CompOptsModes, BuildModesEditor,
|
||||
Compiler_Conditionals_Options, Compiler_BuildVar_Options, CheckLst;
|
||||
|
||||
type
|
||||
@ -263,6 +263,7 @@ type
|
||||
private
|
||||
fPathsTVNode: TTreeNode;
|
||||
FBuildModesTVNode: TTreeNode;
|
||||
fBuildModeGrid: TBuildModesGrid;
|
||||
procedure SetupSearchPathsTab(Page: integer);
|
||||
procedure SetupBuildModesTab(Page: integer);
|
||||
procedure SetupParsingTab(Page: integer);
|
||||
@ -670,6 +671,8 @@ begin
|
||||
FBuildModesTVNode:=CategoryTreeView.Items.AddObject(fPathsTVNode,
|
||||
BuildModesPage.Caption,BuildModesPage);
|
||||
end;
|
||||
fBuildModeGrid.Graph.Assign(TProjectCompilerOptions(Options).BuildModes);
|
||||
fBuildModeGrid.RebuildGrid;
|
||||
end else begin
|
||||
// hide build modes
|
||||
if FBuildModesTVNode<>nil then begin
|
||||
@ -1749,6 +1752,13 @@ begin
|
||||
// Setup the Build Modes Tab
|
||||
MainNoteBook.Page[Page].Caption:='Build modes';
|
||||
fBuildModesTVNode:=CategoryTreeView.Items.AddObject(nil,MainNoteBook.Page[Page].Caption,MainNoteBook.Page[Page]);
|
||||
|
||||
fBuildModeGrid:=TBuildModesGrid.Create(Self);
|
||||
with fBuildModeGrid do begin
|
||||
Name:='fBuildModeGrid';
|
||||
Align:=alClient;
|
||||
Parent:=BuildModesPage;
|
||||
end;
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
@ -25,10 +25,36 @@ unit BuildModesEditor;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, LResources, Forms;
|
||||
Classes, SysUtils, FileUtil, LResources, Forms, Grids,
|
||||
CompilerOptions;
|
||||
|
||||
type
|
||||
|
||||
{ TBuildModeGridRow }
|
||||
|
||||
TBuildModeGridRow = class
|
||||
private
|
||||
FFlag: TBuildModeFlag;
|
||||
FMode: TBuildMode;
|
||||
public
|
||||
constructor Create(aMode: TBuildMode; aFlag: TBuildModeFlag);
|
||||
destructor Destroy; override;
|
||||
property Mode: TBuildMode read FMode;
|
||||
property Flag: TBuildModeFlag read FFlag;
|
||||
end;
|
||||
|
||||
{ TBuildModesGrid }
|
||||
|
||||
TBuildModesGrid = class(TStringGrid)
|
||||
private
|
||||
FGraph: TBuildModeGraph;
|
||||
FModeRows: array of TBuildModeGridRow;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
property Graph: TBuildModeGraph read FGraph;
|
||||
procedure RebuildGrid; // call this after Graph changed
|
||||
end;
|
||||
|
||||
TBuildModesEditorFrame = class(TFrame)
|
||||
private
|
||||
@ -37,6 +63,45 @@ type
|
||||
|
||||
implementation
|
||||
|
||||
{ TBuildModesGrid }
|
||||
|
||||
constructor TBuildModesGrid.Create(TheOwner: TComponent);
|
||||
begin
|
||||
fGraph:=TBuildModeGraph.Create;
|
||||
inherited Create(TheOwner);
|
||||
end;
|
||||
|
||||
destructor TBuildModesGrid.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
FreeAndNil(FGraph);
|
||||
end;
|
||||
|
||||
procedure TBuildModesGrid.RebuildGrid;
|
||||
var
|
||||
i: Integer;
|
||||
Cnt: Integer;
|
||||
begin
|
||||
for i:=0 to Length(FModeRows)-1 do FModeRows[i].Free;
|
||||
Cnt:=0;
|
||||
for i:=0 to FGraph.ModeCount-1 do
|
||||
;
|
||||
SetLength(FModeRows,Cnt);
|
||||
end;
|
||||
|
||||
{ TBuildModeGridRow }
|
||||
|
||||
constructor TBuildModeGridRow.Create(aMode: TBuildMode; aFlag: TBuildModeFlag);
|
||||
begin
|
||||
FMode:=aMode;
|
||||
FFlag:=aFlag;
|
||||
end;
|
||||
|
||||
destructor TBuildModeGridRow.Destroy;
|
||||
begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I buildmodeseditor.lrs}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user