IDE: list compiler options sets

git-svn-id: trunk@27654 -
This commit is contained in:
mattias 2010-10-11 16:45:04 +00:00
parent a072a15271
commit e1a90e5911
3 changed files with 177 additions and 4 deletions

View File

@ -47,7 +47,102 @@ inherited BuildModesEditorFrame: TBuildModesEditorFrame
Align = alTop
BorderSpacing.Around = 6
Caption = 'BuildModesGroupBox'
ClientHeight = 137
ClientWidth = 530
TabOrder = 1
object BuildModesStringGrid: TStringGrid
AnchorSideTop.Control = BuildModeAddSpeedButton
AnchorSideTop.Side = asrBottom
Left = 0
Height = 115
Top = 22
Width = 530
Align = alBottom
Anchors = [akTop, akLeft, akRight, akBottom]
AutoFillColumns = True
ColCount = 3
Columns = <
item
ButtonStyle = cbsCheckboxColumn
MaxSize = 50
Title.Caption = 'Active'
Width = 170
end
item
ButtonStyle = cbsCheckboxColumn
MaxSize = 50
Title.Caption = 'InSession'
Width = 170
end
item
MaxSize = 500
SizePriority = 100
Title.Caption = 'Title'
Width = 170
end>
FixedCols = 0
TabOrder = 0
ColWidths = (
170
170
170
)
end
object BuildModeAddSpeedButton: TSpeedButton
AnchorSideLeft.Control = BuildModesGroupBox
AnchorSideTop.Control = BuildModesGroupBox
Left = 0
Height = 22
Top = 0
Width = 23
Color = clBtnFace
NumGlyphs = 0
OnClick = BuildModeAddSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object BuildModeDeleteSpeedButton: TSpeedButton
AnchorSideLeft.Control = BuildModeAddSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BuildModesGroupBox
Left = 23
Height = 22
Top = 0
Width = 23
Color = clBtnFace
NumGlyphs = 0
OnClick = BuildModeDeleteSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object BuildModeMoveUpSpeedButton: TSpeedButton
AnchorSideLeft.Control = BuildModeDeleteSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BuildModesGroupBox
Left = 46
Height = 22
Top = 0
Width = 23
Color = clBtnFace
NumGlyphs = 0
OnClick = BuildModeMoveUpSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
object BuildModeMoveDownSpeedButton: TSpeedButton
AnchorSideLeft.Control = BuildModeMoveUpSpeedButton
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BuildModesGroupBox
Left = 69
Height = 22
Top = 0
Width = 23
Color = clBtnFace
NumGlyphs = 0
OnClick = BuildModeMoveDownSpeedButtonClick
ShowHint = True
ParentShowHint = False
end
end
object Splitter1: TSplitter[2]
Cursor = crVSplit

View File

@ -45,14 +45,23 @@ type
TBuildModesEditorFrame = class(TAbstractIDEOptionsEditor)
BuildMacroValuesGroupBox: TGroupBox;
BuildMacroValuesStringGrid: TStringGrid;
BuildModeAddSpeedButton: TSpeedButton;
BuildModeDeleteSpeedButton: TSpeedButton;
BuildModeMoveDownSpeedButton: TSpeedButton;
BuildModeMoveUpSpeedButton: TSpeedButton;
BuildModesGroupBox: TGroupBox;
BuildModesPopupMenu: TPopupMenu;
BuildModesStringGrid: TStringGrid;
Splitter1: TSplitter;
procedure BuildMacroValuesStringGridEditingDone(Sender: TObject);
procedure BuildMacroValuesStringGridSelectEditor(Sender: TObject; aCol,
aRow: Integer; var Editor: TWinControl);
procedure BuildMacroValuesStringGridSelection(Sender: TObject; aCol,
aRow: Integer);
procedure BuildModeAddSpeedButtonClick(Sender: TObject);
procedure BuildModeDeleteSpeedButtonClick(Sender: TObject);
procedure BuildModeMoveDownSpeedButtonClick(Sender: TObject);
procedure BuildModeMoveUpSpeedButtonClick(Sender: TObject);
private
FMacroValues: TProjectBuildMacros;
FProject: TProject;
@ -62,6 +71,8 @@ type
procedure Save(UpdateControls: boolean);
procedure UpdateInheritedOptions;
function FindOptionFrame(AClass: TComponentClass): TComponent;
procedure FillBuildModesGrid;
procedure UpdateBuildModeButtons;
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;
@ -153,6 +164,29 @@ begin
CleanMacrosGrid;
end;
procedure TBuildModesEditorFrame.BuildModeAddSpeedButtonClick(Sender: TObject);
begin
ShowMessage('ToDo: TBuildModesEditorFrame.BuildModeAddSpeedButtonClick');
end;
procedure TBuildModesEditorFrame.BuildModeDeleteSpeedButtonClick(Sender: TObject
);
begin
ShowMessage('ToDo: TBuildModesEditorFrame.BuildModeDeleteSpeedButtonClick');
end;
procedure TBuildModesEditorFrame.BuildModeMoveDownSpeedButtonClick(
Sender: TObject);
begin
ShowMessage('ToDo: TBuildModesEditorFrame.BuildModeMoveDownSpeedButtonClick');
end;
procedure TBuildModesEditorFrame.BuildModeMoveUpSpeedButtonClick(Sender: TObject
);
begin
ShowMessage('ToDo: TBuildModesEditorFrame.BuildModeMoveUpSpeedButtonClick');
end;
procedure TBuildModesEditorFrame.UpdateMacrosControls;
var
Grid: TStringGrid;
@ -306,6 +340,39 @@ begin
Result:=Search(GetParentForm(Self));
end;
procedure TBuildModesEditorFrame.FillBuildModesGrid;
var
i: Integer;
CurMode: TProjectBuildMode;
begin
if AProject=nil then exit;
BuildModesStringGrid.RowCount:=AProject.BuildModes.Count+1;
for i:=0 to AProject.BuildModes.Count-1 do begin
CurMode:=AProject.BuildModes[i];
// active
if CurMode=AProject.ActiveBuildMode then
BuildModesStringGrid.Cells[0,i+1]:=BuildModesStringGrid.Columns[0].ValueChecked
else
BuildModesStringGrid.Cells[0,i+1]:=BuildModesStringGrid.Columns[0].ValueUnchecked;
// in session
if CurMode.InSession then
BuildModesStringGrid.Cells[1,i+1]:=BuildModesStringGrid.Columns[0].ValueChecked
else
BuildModesStringGrid.Cells[1,i+1]:=BuildModesStringGrid.Columns[0].ValueUnchecked;
// identifier
BuildModesStringGrid.Cells[2,i+1]:=CurMode.Identifier;
end;
end;
procedure TBuildModesEditorFrame.UpdateBuildModeButtons;
begin
BuildModeDeleteSpeedButton.Enabled:=BuildModesStringGrid.Row>1;
BuildModeMoveUpSpeedButton.Enabled:=BuildModesStringGrid.Row>1;
BuildModeMoveDownSpeedButton.Enabled:=
BuildModesStringGrid.Row<BuildModesStringGrid.RowCount-1;
end;
constructor TBuildModesEditorFrame.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
@ -327,15 +394,18 @@ procedure TBuildModesEditorFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
var
Grid: TStringGrid;
begin
BuildModesGroupBox.Caption:='Build modes';
BuildModesGroupBox.Caption:=lisBuildModes;
BuildModesStringGrid.Cells[0, 0]:=lisActive;
BuildModesStringGrid.Cells[1, 0]:=lisInSession;
BuildModesStringGrid.Cells[2, 0]:=lisDebugOptionsFrmName;
BuildMacroValuesGroupBox.Caption:='Set macro values';
BuildMacroValuesGroupBox.Caption:=lisSetMacroValues;
Grid:=BuildMacroValuesStringGrid;
Grid.Columns.Add;
Grid.Columns[0].Title.Caption:='Macro name';
Grid.Columns[0].Title.Caption:=lisMacroName;
Grid.Columns[0].ButtonStyle:=cbsPickList;
Grid.Columns.Add;
Grid.Columns[1].Title.Caption:='Macro value';
Grid.Columns[1].Title.Caption:=lisMacroValue;
Grid.Columns[1].ButtonStyle:=cbsPickList;
end;
@ -349,6 +419,8 @@ begin
FProject:=PCOptions.LazProject;
MacroValues.Assign(FProject.MacroValues);
UpdateMacrosControls;
FillBuildModesGrid;
UpdateBuildModeButtons;
end;
end;

View File

@ -4333,6 +4333,9 @@ resourcestring
lisDebugOptionsFrmOSExceptions = 'OS Exceptions';
lisDebugOptionsFrmSignals = 'Signals';
lisDebugOptionsFrmName = 'Name';
lisSetMacroValues = 'Set macro values';
lisMacroName = 'Macro name';
lisMacroValue = 'Macro value';
lisDebugOptionsFrmID = 'ID';
lisDebugOptionsFrmHandledBy = 'Handled by';
lisDebugOptionsFrmResume = 'Resume';
@ -4897,6 +4900,9 @@ resourcestring
+'needed for functions like find declaration. While scanning you can edit '
+'sources and compile, but functions like find declaration will show unit-'
+'not-found errors. This can take a minute.';
lisActive = 'Active';
lisBuildModes = 'Build modes';
lisInSession = 'In session';
implementation