mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 19:19:18 +02:00
IDE: build modes: editing name and value
git-svn-id: trunk@18570 -
This commit is contained in:
parent
f59b54561e
commit
200a245fa6
@ -29,6 +29,8 @@ object CompOptBuildModesFrame: TCompOptBuildModesFrame
|
||||
PopupMenu = BuildModeTVPopupMenu
|
||||
RightClickSelect = True
|
||||
TabOrder = 0
|
||||
OnEdited = BuildModesTreeViewEdited
|
||||
OnEditing = BuildModesTreeViewEditing
|
||||
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips]
|
||||
end
|
||||
end
|
||||
|
@ -10,9 +10,10 @@ LazarusResources.Add('TCompOptBuildModesFrame','FORMDATA',[
|
||||
+'er'#2#0#0#9'TTreeView'#18'BuildModesTreeView'#4'Left'#2#0#6'Height'#3#210#0
|
||||
+#3'Top'#2#0#5'Width'#3#228#1#5'Align'#7#8'alClient'#17'DefaultItemHeight'#2
|
||||
+#19#9'PopupMenu'#7#20'BuildModeTVPopupMenu'#16'RightClickSelect'#9#8'TabOrde'
|
||||
+'r'#2#0#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepC'
|
||||
+'ollapsedNodes'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvoShowLines'
|
||||
+#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#10'TPopupMenu'#20'BuildModeTVPopupM'
|
||||
+'enu'#7'OnPopup'#7#25'BuildModeTVPopupMenuPopup'#4'left'#2'c'#3'top'#2'M'#0#0
|
||||
+#0
|
||||
+'r'#2#0#8'OnEdited'#7#24'BuildModesTreeViewEdited'#9'OnEditing'#7#25'BuildMo'
|
||||
+'desTreeViewEditing'#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'
|
||||
+#21'tvoKeepCollapsedNodes'#19'tvoRightClickSelect'#14'tvoShowButtons'#12'tvo'
|
||||
+'ShowLines'#11'tvoShowRoot'#11'tvoToolTips'#0#0#0#0#10'TPopupMenu'#20'BuildM'
|
||||
+'odeTVPopupMenu'#7'OnPopup'#7#25'BuildModeTVPopupMenuPopup'#4'left'#2'c'#3't'
|
||||
+'op'#2'M'#0#0#0
|
||||
]);
|
||||
|
@ -44,6 +44,10 @@ type
|
||||
BuildModesGroupBox: TGroupBox;
|
||||
BuildModesTreeView: TTreeView;
|
||||
BuildModeTVPopupMenu: TPopupMenu;
|
||||
procedure BuildModesTreeViewEdited(Sender: TObject; Node: TTreeNode;
|
||||
var S: string);
|
||||
procedure BuildModesTreeViewEditing(Sender: TObject; Node: TTreeNode;
|
||||
var AllowEdit: Boolean);
|
||||
procedure BuildModeTVPopupMenuPopup(Sender: TObject);
|
||||
procedure DeleteBuildModeClick(Sender: TObject);
|
||||
procedure NewBuildModeClick(Sender: TObject);
|
||||
@ -59,6 +63,7 @@ type
|
||||
procedure RebuildTreeView;
|
||||
procedure TreeViewAddBuildMode(BuildMode: TLazBuildMode);
|
||||
procedure TreeViewAddValue(ValuesTVNode: TTreeNode; aValue: string);
|
||||
function GetNodeInfo(Node: TTreeNode; out BuildMode: TLazBuildMode): TCBMNodeType;
|
||||
function GetSelectedNode(out BuildMode: TLazBuildMode;
|
||||
out NodeType: TCBMNodeType): TTreeNode;
|
||||
function GetBuildModeTVNode(BuildMode: TLazBuildMode): TTreeNode;
|
||||
@ -187,6 +192,65 @@ begin
|
||||
Add('Delete build mode ...',@DeleteBuildModeClick);
|
||||
end;
|
||||
|
||||
procedure TCompOptBuildModesFrame.BuildModesTreeViewEditing(Sender: TObject;
|
||||
Node: TTreeNode; var AllowEdit: Boolean);
|
||||
var
|
||||
BuildMode: TLazBuildMode;
|
||||
NodeType: TCBMNodeType;
|
||||
begin
|
||||
NodeType:=GetNodeInfo(Node,BuildMode);
|
||||
AllowEdit:=NodeType in [cbmntBuildMode,cbmntValue];
|
||||
end;
|
||||
|
||||
procedure TCompOptBuildModesFrame.BuildModesTreeViewEdited(Sender: TObject;
|
||||
Node: TTreeNode; var S: string);
|
||||
var
|
||||
BuildMode: TLazBuildMode;
|
||||
NodeType: TCBMNodeType;
|
||||
ConflictBuildMode: TIDEBuildMode;
|
||||
Index: LongInt;
|
||||
begin
|
||||
NodeType:=GetNodeInfo(Node,BuildMode);
|
||||
case NodeType of
|
||||
|
||||
cbmntBuildMode:
|
||||
if S<>BuildMode.Identifier then begin
|
||||
// rename build mode
|
||||
if (S='') or (not IsValidIdent(S)) then begin
|
||||
MessageDlg('Error',
|
||||
'Invalid build mode "'+S+'". The build mode must be a pascal identifier.',
|
||||
mtError,[mbCancel],0);
|
||||
S:=BuildMode.Identifier;
|
||||
exit;
|
||||
end;
|
||||
ConflictBuildMode:=BuildModes.ModeWithIdentifier(S);
|
||||
if (ConflictBuildMode<>nil) and (ConflictBuildMode<>BuildMode) then
|
||||
begin
|
||||
MessageDlg('Error',
|
||||
'There is already a build mode with the name "'+S+'".',
|
||||
mtError,[mbCancel],0);
|
||||
S:=BuildMode.Identifier;
|
||||
exit;
|
||||
end;
|
||||
BuildMode.Identifier:=S;
|
||||
end;
|
||||
|
||||
cbmntValue:
|
||||
begin
|
||||
Index:=Node.Index;
|
||||
Index:=BuildMode.Values.IndexOf(S);
|
||||
if (Index>=0) and (Index<>Node.Index) then begin
|
||||
MessageDlg('Error',
|
||||
'Duplicate found of value "'+S+'".',
|
||||
mtError,[mbCancel],0);
|
||||
S:=BuildMode.Values[Node.Index];
|
||||
exit;
|
||||
end;
|
||||
BuildMode.Values[Node.Index]:=S;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCompOptBuildModesFrame.SetBuildModes(const AValue: TIDEBuildModes);
|
||||
begin
|
||||
if FBuildModes=AValue then exit;
|
||||
@ -255,25 +319,25 @@ begin
|
||||
ValueTVNode.SelectedIndex:=ValueTVNode.ImageIndex;
|
||||
end;
|
||||
|
||||
function TCompOptBuildModesFrame.GetSelectedNode(out
|
||||
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
||||
function TCompOptBuildModesFrame.GetNodeInfo(Node: TTreeNode; out
|
||||
BuildMode: TLazBuildMode): TCBMNodeType;
|
||||
|
||||
function GetNodeType(Node: TTreeNode): TCBMNodeType;
|
||||
function GetNodeType(CurNode: TTreeNode): TCBMNodeType;
|
||||
var
|
||||
ParentType: TCBMNodeType;
|
||||
begin
|
||||
if Node=nil then
|
||||
if CurNode=nil then
|
||||
Result:=cbmntNone
|
||||
else if TObject(Node.Data) is TLazBuildMode then begin
|
||||
BuildMode:=TLazBuildMode(Node.Data);
|
||||
else if TObject(CurNode.Data) is TLazBuildMode then begin
|
||||
BuildMode:=TLazBuildMode(CurNode.Data);
|
||||
Result:=cbmntBuildMode;
|
||||
end else begin
|
||||
ParentType:=GetNodeType(Node.Parent);
|
||||
ParentType:=GetNodeType(CurNode.Parent);
|
||||
case ParentType of
|
||||
cbmntBuildMode:
|
||||
if Node.Text=lisValues then
|
||||
if CurNode.Text=lisValues then
|
||||
Result:=cbmntValues
|
||||
else if Node.Text=lisDefaultValue then
|
||||
else if CurNode.Text=lisDefaultValue then
|
||||
Result:=cbmntDefaultValue;
|
||||
cbmntValues:
|
||||
Result:=cbmntValue;
|
||||
@ -286,8 +350,14 @@ function TCompOptBuildModesFrame.GetSelectedNode(out
|
||||
|
||||
begin
|
||||
BuildMode:=nil;
|
||||
Result:=GetNodeType(Node);
|
||||
end;
|
||||
|
||||
function TCompOptBuildModesFrame.GetSelectedNode(out
|
||||
BuildMode: TLazBuildMode; out NodeType: TCBMNodeType): TTreeNode;
|
||||
begin
|
||||
Result:=BuildModesTreeView.Selected;
|
||||
NodeType:=GetNodeType(Result);
|
||||
NodeType:=GetNodeInfo(Result,BuildMode);
|
||||
end;
|
||||
|
||||
function TCompOptBuildModesFrame.GetBuildModeTVNode(BuildMode: TLazBuildMode
|
||||
|
@ -5,7 +5,6 @@ object CompOptsConditionalsFrame: TCompOptsConditionalsFrame
|
||||
Width = 385
|
||||
ClientHeight = 166
|
||||
ClientWidth = 381
|
||||
Ctl3D = False
|
||||
TabOrder = 0
|
||||
Visible = False
|
||||
DesignLeft = 439
|
||||
@ -17,12 +16,12 @@ object CompOptsConditionalsFrame: TCompOptsConditionalsFrame
|
||||
Width = 381
|
||||
Align = alClient
|
||||
AutoExpand = True
|
||||
Ctl3D = False
|
||||
DefaultItemHeight = 19
|
||||
PopupMenu = COCPopupMenu
|
||||
ReadOnly = True
|
||||
RowSelect = True
|
||||
TabOrder = 0
|
||||
OnEditing = COCTreeViewEditing
|
||||
Options = [tvoAutoExpand, tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoRowSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoShowSeparators, tvoToolTips]
|
||||
end
|
||||
object COCPopupMenu: TPopupMenu
|
||||
@ -31,56 +30,38 @@ object CompOptsConditionalsFrame: TCompOptsConditionalsFrame
|
||||
top = 48
|
||||
object InsertAboveMenuItem: TMenuItem
|
||||
Caption = 'InsertAboveMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = InsertAboveMenuItemClick
|
||||
end
|
||||
object InsertBelowMenuItem: TMenuItem
|
||||
Caption = 'InsertBelowMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = InsertBelowMenuItemClick
|
||||
end
|
||||
object InsertChildMenuItem: TMenuItem
|
||||
Caption = 'InsertChildMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = InsertChildMenuItemClick
|
||||
end
|
||||
object DeleteMenuItem: TMenuItem
|
||||
Caption = 'DeleteMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = DeleteMenuItemClick
|
||||
end
|
||||
object MoveUpMenuItem: TMenuItem
|
||||
Caption = 'MoveUpMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = MoveUpMenuItemClick
|
||||
end
|
||||
object MoveDownMenuItem: TMenuItem
|
||||
Caption = 'MoveDownMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = MoveDownMenuItemClick
|
||||
end
|
||||
object MoveLvlUpMenuItem: TMenuItem
|
||||
Caption = 'MoveLvlUpMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = MoveLvlUpMenuItemClick
|
||||
end
|
||||
object MoveLvlDownMenuItem: TMenuItem
|
||||
Caption = 'MoveLvlDownMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = MoveLvlDownMenuItemClick
|
||||
end
|
||||
object PropertiesMenuItem: TMenuItem
|
||||
Caption = 'PropertiesMenuItem'
|
||||
RightJustify = False
|
||||
ShowAlwaysCheckable = False
|
||||
OnClick = PropertiesMenuItemClick
|
||||
end
|
||||
end
|
||||
|
@ -1,32 +1,29 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TCompOptsConditionalsFrame','FORMDATA',[
|
||||
'TPF0'#26'TCompOptsConditionalsFrame'#25'CompOptsConditionalsFrame'#4'Left'#2
|
||||
+#0#6'Height'#3#170#0#3'Top'#2#0#5'Width'#3#129#1#12'ClientHeight'#3#166#0#11
|
||||
+'ClientWidth'#3'}'#1#5'Ctl3D'#8#8'TabOrder'#2#0#7'Visible'#8#10'DesignLeft'#3
|
||||
+#183#1#9'DesignTop'#3'a'#1#0#9'TTreeView'#11'COCTreeView'#4'Left'#2#0#6'Heig'
|
||||
+'ht'#3#166#0#3'Top'#2#0#5'Width'#3'}'#1#5'Align'#7#8'alClient'#10'AutoExpand'
|
||||
+#9#5'Ctl3D'#8#17'DefaultItemHeight'#2#19#9'PopupMenu'#7#12'COCPopupMenu'#8'R'
|
||||
+'eadOnly'#9#9'RowSelect'#9#8'TabOrder'#2#0#7'Options'#11#13'tvoAutoExpand'#17
|
||||
+'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepCollapsedNodes'#11'tvoRea'
|
||||
+'dOnly'#12'tvoRowSelect'#14'tvoShowButtons'#12'tvoShowLines'#11'tvoShowRoot'
|
||||
+#17'tvoShowSeparators'#11'tvoToolTips'#0#0#0#10'TPopupMenu'#12'COCPopupMenu'
|
||||
+#7'OnPopup'#7#17'COCPopupMenuPopup'#4'left'#2'0'#3'top'#2'0'#0#9'TMenuItem'
|
||||
+#19'InsertAboveMenuItem'#7'Caption'#6#19'InsertAboveMenuItem'#12'RightJustif'
|
||||
+'y'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7#24'InsertAboveMenuItemClick'#0#0
|
||||
+#9'TMenuItem'#19'InsertBelowMenuItem'#7'Caption'#6#19'InsertBelowMenuItem'#12
|
||||
+'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7#24'InsertBelowMenuIt'
|
||||
+'emClick'#0#0#9'TMenuItem'#19'InsertChildMenuItem'#7'Caption'#6#19'InsertChi'
|
||||
+'ldMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7#24'In'
|
||||
+'sertChildMenuItemClick'#0#0#9'TMenuItem'#14'DeleteMenuItem'#7'Caption'#6#14
|
||||
+'DeleteMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7#19
|
||||
+'ClientWidth'#3'}'#1#8'TabOrder'#2#0#7'Visible'#8#10'DesignLeft'#3#183#1#9'D'
|
||||
+'esignTop'#3'a'#1#0#9'TTreeView'#11'COCTreeView'#4'Left'#2#0#6'Height'#3#166
|
||||
+#0#3'Top'#2#0#5'Width'#3'}'#1#5'Align'#7#8'alClient'#10'AutoExpand'#9#17'Def'
|
||||
+'aultItemHeight'#2#19#9'PopupMenu'#7#12'COCPopupMenu'#8'ReadOnly'#9#9'RowSel'
|
||||
+'ect'#9#8'TabOrder'#2#0#9'OnEditing'#7#18'COCTreeViewEditing'#7'Options'#11
|
||||
+#13'tvoAutoExpand'#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepColl'
|
||||
+'apsedNodes'#11'tvoReadOnly'#12'tvoRowSelect'#14'tvoShowButtons'#12'tvoShowL'
|
||||
+'ines'#11'tvoShowRoot'#17'tvoShowSeparators'#11'tvoToolTips'#0#0#0#10'TPopup'
|
||||
+'Menu'#12'COCPopupMenu'#7'OnPopup'#7#17'COCPopupMenuPopup'#4'left'#2'0'#3'to'
|
||||
+'p'#2'0'#0#9'TMenuItem'#19'InsertAboveMenuItem'#7'Caption'#6#19'InsertAboveM'
|
||||
+'enuItem'#7'OnClick'#7#24'InsertAboveMenuItemClick'#0#0#9'TMenuItem'#19'Inse'
|
||||
+'rtBelowMenuItem'#7'Caption'#6#19'InsertBelowMenuItem'#7'OnClick'#7#24'Inser'
|
||||
+'tBelowMenuItemClick'#0#0#9'TMenuItem'#19'InsertChildMenuItem'#7'Caption'#6
|
||||
+#19'InsertChildMenuItem'#7'OnClick'#7#24'InsertChildMenuItemClick'#0#0#9'TMe'
|
||||
+'nuItem'#14'DeleteMenuItem'#7'Caption'#6#14'DeleteMenuItem'#7'OnClick'#7#19
|
||||
+'DeleteMenuItemClick'#0#0#9'TMenuItem'#14'MoveUpMenuItem'#7'Caption'#6#14'Mo'
|
||||
+'veUpMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7#19
|
||||
+'MoveUpMenuItemClick'#0#0#9'TMenuItem'#16'MoveDownMenuItem'#7'Caption'#6#16
|
||||
+'MoveDownMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnClick'#7
|
||||
+#21'MoveDownMenuItemClick'#0#0#9'TMenuItem'#17'MoveLvlUpMenuItem'#7'Caption'
|
||||
+#6#17'MoveLvlUpMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckable'#8#7'OnCl'
|
||||
+'ick'#7#22'MoveLvlUpMenuItemClick'#0#0#9'TMenuItem'#19'MoveLvlDownMenuItem'#7
|
||||
+'Caption'#6#19'MoveLvlDownMenuItem'#12'RightJustify'#8#19'ShowAlwaysCheckabl'
|
||||
+'e'#8#7'OnClick'#7#24'MoveLvlDownMenuItemClick'#0#0#9'TMenuItem'#18'Properti'
|
||||
+'esMenuItem'#7'Caption'#6#18'PropertiesMenuItem'#12'RightJustify'#8#19'ShowA'
|
||||
+'lwaysCheckable'#8#7'OnClick'#7#23'PropertiesMenuItemClick'#0#0#0#0
|
||||
+'veUpMenuItem'#7'OnClick'#7#19'MoveUpMenuItemClick'#0#0#9'TMenuItem'#16'Move'
|
||||
+'DownMenuItem'#7'Caption'#6#16'MoveDownMenuItem'#7'OnClick'#7#21'MoveDownMen'
|
||||
+'uItemClick'#0#0#9'TMenuItem'#17'MoveLvlUpMenuItem'#7'Caption'#6#17'MoveLvlU'
|
||||
+'pMenuItem'#7'OnClick'#7#22'MoveLvlUpMenuItemClick'#0#0#9'TMenuItem'#19'Move'
|
||||
+'LvlDownMenuItem'#7'Caption'#6#19'MoveLvlDownMenuItem'#7'OnClick'#7#24'MoveL'
|
||||
+'vlDownMenuItemClick'#0#0#9'TMenuItem'#18'PropertiesMenuItem'#7'Caption'#6#18
|
||||
+'PropertiesMenuItem'#7'OnClick'#7#23'PropertiesMenuItemClick'#0#0#0#0
|
||||
]);
|
||||
|
@ -46,6 +46,8 @@ type
|
||||
MoveDownMenuItem: TMenuItem;
|
||||
MoveUpMenuItem: TMenuItem;
|
||||
procedure COCPopupMenuPopup(Sender: TObject);
|
||||
procedure COCTreeViewEditing(Sender: TObject; Node: TTreeNode;
|
||||
var AllowEdit: Boolean);
|
||||
procedure DeleteMenuItemClick(Sender: TObject);
|
||||
procedure InsertAboveMenuItemClick(Sender: TObject);
|
||||
procedure InsertBelowMenuItemClick(Sender: TObject);
|
||||
@ -98,6 +100,12 @@ begin
|
||||
MoveUpMenuItem.Enabled:=NormalNodeIsSelectd and (TVNode.GetPrevSibling<>nil);
|
||||
end;
|
||||
|
||||
procedure TCompOptsConditionalsFrame.COCTreeViewEditing(Sender: TObject;
|
||||
Node: TTreeNode; var AllowEdit: Boolean);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TCompOptsConditionalsFrame.DeleteMenuItemClick(Sender: TObject);
|
||||
var
|
||||
COCNode: TCompOptCondNode;
|
||||
|
Loading…
Reference in New Issue
Block a user