custom tools, add btn to set prop editor visibility + persist setting

This commit is contained in:
Basile Burg 2017-03-12 14:00:15 +01:00
parent e50a89f671
commit 7aee6a38f6
No known key found for this signature in database
GPG Key ID: 1868039F415CB8CF
4 changed files with 46 additions and 7 deletions

View File

@ -22,6 +22,7 @@ A few examples:
Toolbar: Toolbar:
- <img src="{%include icurl%}window/application_edit.png" class="tlbric"/>: Enables or disables edition.
- <img src="{%include icurl%}window/application_add.png" class="tlbric"/>: Adds a new tool. - <img src="{%include icurl%}window/application_add.png" class="tlbric"/>: Adds a new tool.
- <img src="{%include icurl%}window/application_delete.png" class="tlbric"/>: Removes selected tool. - <img src="{%include icurl%}window/application_delete.png" class="tlbric"/>: Removes selected tool.
- <img src="{%include icurl%}arrow/arrow_up.png" class="tlbric"/> **/** <img src="{%include icurl%}arrow/arrow_down.png" class="tlbric"/>: Changes the position of the selected tool. - <img src="{%include icurl%}arrow/arrow_up.png" class="tlbric"/> **/** <img src="{%include icurl%}arrow/arrow_down.png" class="tlbric"/>: Changes the position of the selected tool.

View File

@ -69,6 +69,7 @@ type
fShctCount: Integer; fShctCount: Integer;
fDoc: TCESynMemo; fDoc: TCESynMemo;
fMenu: TMenuItem; fMenu: TMenuItem;
fReadOnly: boolean;
function getTool(index: Integer): TCEToolItem; function getTool(index: Integer): TCEToolItem;
procedure setTools(value: TCEToolItems); procedure setTools(value: TCEToolItems);
// //
@ -85,6 +86,7 @@ type
procedure scedSendDone; procedure scedSendDone;
published published
property tools: TCEToolItems read fTools write setTools; property tools: TCEToolItems read fTools write setTools;
property readOnly: boolean read fReadOnly write fReadOnly;
public public
constructor create(aOwner: TComponent); override; constructor create(aOwner: TComponent); override;
destructor destroy; override; destructor destroy; override;

View File

@ -68,7 +68,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
inherited toolbar: TCEToolBar inherited toolbar: TCEToolBar
Width = 433 Width = 433
object btnRun: TCEToolButton[0] object btnRun: TCEToolButton[0]
Left = 157 Left = 185
Hint = 'execute selected tool' Hint = 'execute selected tool'
Top = 0 Top = 0
Caption = 'btnRun' Caption = 'btnRun'
@ -77,7 +77,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object button1: TCEToolButton[1] object button1: TCEToolButton[1]
Left = 141 Left = 169
Height = 28 Height = 28
Top = 0 Top = 0
Width = 16 Width = 16
@ -86,7 +86,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object btnClone: TCEToolButton[2] object btnClone: TCEToolButton[2]
Left = 113 Left = 141
Hint = 'clone selected tool' Hint = 'clone selected tool'
Top = 0 Top = 0
Caption = 'btnClone' Caption = 'btnClone'
@ -95,7 +95,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object btnMoveUp: TCEToolButton[3] object btnMoveUp: TCEToolButton[3]
Left = 85 Left = 113
Hint = 'move selected tool up' Hint = 'move selected tool up'
Top = 0 Top = 0
Caption = 'btnMoveUp' Caption = 'btnMoveUp'
@ -104,7 +104,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object btnMoveDown: TCEToolButton[4] object btnMoveDown: TCEToolButton[4]
Left = 57 Left = 85
Hint = 'move selected tool down' Hint = 'move selected tool down'
Top = 0 Top = 0
Caption = 'btnMoveDown' Caption = 'btnMoveDown'
@ -113,7 +113,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object btnRemTool: TCEToolButton[5] object btnRemTool: TCEToolButton[5]
Left = 29 Left = 57
Hint = 'remove selected tool' Hint = 'remove selected tool'
Top = 0 Top = 0
Caption = 'btnRemTool' Caption = 'btnRemTool'
@ -122,7 +122,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
scaledSeparator = False scaledSeparator = False
end end
object btnAddTool: TCEToolButton[6] object btnAddTool: TCEToolButton[6]
Left = 1 Left = 29
Hint = 'add a new empty tool' Hint = 'add a new empty tool'
Top = 0 Top = 0
Caption = 'btnAddTool' Caption = 'btnAddTool'
@ -130,6 +130,15 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
resourceName = 'APPLICATION_ADD' resourceName = 'APPLICATION_ADD'
scaledSeparator = False scaledSeparator = False
end end
object btnEdit: TCEToolButton[7]
Left = 1
Hint = 'enable or disable edition'
Top = 0
Caption = 'btnEdit'
OnClick = btnEditClick
resourceName = 'APPLICATION_EDIT'
scaledSeparator = False
end
end end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu

View File

@ -15,6 +15,7 @@ type
TCEToolsEditorWidget = class(TCEWidget) TCEToolsEditorWidget = class(TCEWidget)
btnAddTool: TCEToolButton; btnAddTool: TCEToolButton;
btnClone: TCEToolButton; btnClone: TCEToolButton;
btnEdit: TCEToolButton;
btnMoveDown: TCEToolButton; btnMoveDown: TCEToolButton;
btnMoveUp: TCEToolButton; btnMoveUp: TCEToolButton;
btnRemTool: TCEToolButton; btnRemTool: TCEToolButton;
@ -25,6 +26,7 @@ type
propsEd: TTIPropertyGrid; propsEd: TTIPropertyGrid;
procedure BtnAddToolClick(Sender: TObject); procedure BtnAddToolClick(Sender: TObject);
procedure btnCloneClick(Sender: TObject); procedure btnCloneClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure btnRemToolClick(Sender: TObject); procedure btnRemToolClick(Sender: TObject);
procedure btnMoveUpClick(Sender: TObject); procedure btnMoveUpClick(Sender: TObject);
procedure btnMoveDownClick(Sender: TObject); procedure btnMoveDownClick(Sender: TObject);
@ -33,6 +35,7 @@ type
procedure lstToolsSelectionChange(Sender: TObject; User: boolean); procedure lstToolsSelectionChange(Sender: TObject; User: boolean);
procedure propsEdModified(Sender: TObject); procedure propsEdModified(Sender: TObject);
private private
procedure setReadOnly(value: boolean);
procedure executeSelectedTool; procedure executeSelectedTool;
procedure clearInspector; procedure clearInspector;
procedure rebuildToolList; procedure rebuildToolList;
@ -50,6 +53,7 @@ begin
propsEd.CheckboxForBoolean := true; propsEd.CheckboxForBoolean := true;
propsEd.PropertyEditorHook.AddHandlerModified(@propsEdModified); propsEd.PropertyEditorHook.AddHandlerModified(@propsEdModified);
rebuildToolList; rebuildToolList;
setReadOnly(CustomTools.readOnly);
end; end;
procedure TCEToolsEditorWidget.clearInspector; procedure TCEToolsEditorWidget.clearInspector;
@ -118,6 +122,29 @@ begin
rebuildToolList; rebuildToolList;
end; end;
procedure TCEToolsEditorWidget.setReadOnly(value: boolean);
begin
if value then
begin
CustomTools.readOnly:= true;
lstTools.Align:= alClient;
PropsEd.Visible := false;
Splitter1.Visible := false;
end
else
begin
CustomTools.readOnly:= false;
lstTools.Align:= alLeft;
PropsEd.Visible := true;
Splitter1.Visible := true;
end;
end;
procedure TCEToolsEditorWidget.btnEditClick(Sender: TObject);
begin
setReadOnly(not CustomTools.readOnly);
end;
procedure TCEToolsEditorWidget.btnRemToolClick(Sender: TObject); procedure TCEToolsEditorWidget.btnRemToolClick(Sender: TObject);
begin begin
if lstTools.ItemIndex = -1 then if lstTools.ItemIndex = -1 then