add the flat design, as an option, step 2 of #51

This commit is contained in:
Basile Burg 2016-06-25 15:51:38 +02:00
parent 490cc8bbce
commit 30297c5dca
34 changed files with 915 additions and 989 deletions

View File

@ -1,21 +0,0 @@
{ This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install the package.
}
unit cecontrols;
interface
uses
ce_dsgncontrols, LazarusPackageIntf;
implementation
procedure Register;
begin
RegisterUnit('ce_dsgncontrols', @ce_dsgncontrols.Register);
end;
initialization
RegisterPackage('cecontrols', @Register);
end.

View File

@ -26,7 +26,7 @@ type
property index: integer read getIndex; property index: integer read getIndex;
end; end;
TCEPageControlOption = (poPageHistory, poBottomHeader); TCEPageControlOption = (poPageHistory, poBottomHeader, poFlatButtons);
TCEPageControlOptions = set of TCEPageControlOption; TCEPageControlOptions = set of TCEPageControlOption;
const const
@ -264,12 +264,20 @@ begin
end; end;
procedure TCEPageControl.setPagesOptions(value: TCEPageControlOptions); procedure TCEPageControl.setPagesOptions(value: TCEPageControlOptions);
var
flat: boolean;
begin begin
if fOptions = value then if fOptions = value then
exit; exit;
fOptions := value; fOptions := value;
fPagesHistory.Clear; fPagesHistory.Clear;
setHeaderPosition(poBottomHeader in fOptions); setHeaderPosition(poBottomHeader in fOptions);
flat := poFlatButtons in fOptions;
fAddBtn.Flat:= flat;
fCloseBtn.Flat:= flat;
fMoveLeftBtn.Flat:=flat;
fMoveRightBtn.Flat:=flat;
fSplitBtn.Flat:=flat;
end; end;
procedure TCEPageControl.setHeaderPosition(bottom: boolean); procedure TCEPageControl.setHeaderPosition(bottom: boolean);

View File

@ -15,13 +15,13 @@ inherited CEDfmtWidget: TCEDfmtWidget
ClientHeight = 357 ClientHeight = 357
ClientWidth = 450 ClientWidth = 450
inherited Content: TPanel inherited Content: TPanel
Height = 357 Height = 323
Width = 450 Width = 450
ClientHeight = 357 ClientHeight = 323
ClientWidth = 450 ClientWidth = 450
object dfmtOptionEditor: TTIPropertyGrid[0] object dfmtOptionEditor: TTIPropertyGrid[0]
Left = 4 Left = 4
Height = 313 Height = 279
Top = 4 Top = 4
Width = 442 Width = 442
Align = alClient Align = alClient
@ -39,7 +39,7 @@ inherited CEDfmtWidget: TCEDfmtWidget
object pnlFooter: TPanel[1] object pnlFooter: TPanel[1]
Left = 4 Left = 4
Height = 32 Height = 32
Top = 321 Top = 287
Width = 442 Width = 442
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
@ -69,5 +69,8 @@ inherited CEDfmtWidget: TCEDfmtWidget
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 446
end
end end
end end

View File

@ -98,6 +98,7 @@ var
fname: string; fname: string;
begin begin
inherited; inherited;
toolbarVisible:=false;
fDmtWrapper := TCEDmtWrapper.Create(self); fDmtWrapper := TCEDmtWrapper.Create(self);
fBackup := TStringList.Create; fBackup := TStringList.Create;
// //

View File

@ -5,7 +5,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, ComCtrls, ExtCtrls, buttons, graphics, Classes, SysUtils, Forms, Controls, ComCtrls, ExtCtrls, buttons, graphics,
Menus, LMessages, LCLType; Menus, LMessages, LCLType, Toolwin;
type type
@ -87,6 +87,7 @@ begin
fPng.FreeImage; fPng.FreeImage;
fPng.LoadFromResourceName(HINSTANCE, fResourceName); fPng.LoadFromResourceName(HINSTANCE, fResourceName);
end; end;
FToolBar.Repaint;
end; end;
procedure TCEToolButton.setScaledSeparator(value: boolean); procedure TCEToolButton.setScaledSeparator(value: boolean);
@ -100,13 +101,16 @@ end;
procedure TCEToolButton.Paint; procedure TCEToolButton.Paint;
var var
rc: TRect; rc: TRect;
x, y: integer;
begin begin
inherited;
if (fResourceName <> '') and (style = tbsButton) then if (fResourceName <> '') and (style = tbsButton) then
begin begin
rc := ClientRect; rc := ClientRect;
Canvas.Draw(rc.Left, rc.Top, fPng); x := ((rc.Right - rc.Left) - fPng.width) div 2;
end y := ((rc.Bottom - rc.Top) - fPng.Height) div 2;
else inherited; Canvas.Draw(x, y, fPng);
end;
end; end;
constructor TCEToolBar.Create(TheOwner: TComponent); constructor TCEToolBar.Create(TheOwner: TComponent);
@ -139,6 +143,16 @@ begin
item.OnClick:= @dsgnAddDropdown; item.OnClick:= @dsgnAddDropdown;
fDesignMenu.Items.Add(item); fDesignMenu.Items.Add(item);
end; end;
borderSpacing.Left := 2;
borderSpacing.Top := 2;
borderSpacing.Right := 2;
borderSpacing.Bottom := 0;
height := 30;
ButtonHeight := 28;
ButtonWidth := 28;
EdgeInner:= esNone;
EdgeOuter:= esNone;
Flat := false;
end; end;
destructor TCEToolBar.Destroy; destructor TCEToolBar.Destroy;
@ -162,13 +176,24 @@ end;
procedure TCEToolBar.dsgnAdd(style: TToolButtonStyle); procedure TCEToolBar.dsgnAdd(style: TToolButtonStyle);
var var
button: TCEToolButton; button: TCEToolButton;
str: string = '';
i: integer = 0;
begin begin
button := TCEToolButton.Create(owner); button := TCEToolButton.Create(owner);
button.Name:= format('button%d',[ButtonList.Count]); while true do
begin
str := format('button%d',[i]);
if owner.FindComponent(str) = nil then
break;
i += 1;
end;
button.Name:= str;
button.Style := style; button.Style := style;
InsertControl(button); InsertControl(button);
ButtonList.add(button); ButtonList.add(button);
button.setToolBar(self); button.setToolBar(self);
if style = tbsDivider then
width := 16;
end; end;
procedure TCEToolBar.dsgnAddButton(sender: TObject); procedure TCEToolBar.dsgnAddButton(sender: TObject);

View File

@ -12,23 +12,23 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
ClientHeight = 424 ClientHeight = 424
ClientWidth = 411 ClientWidth = 411
inherited Content: TPanel inherited Content: TPanel
Height = 424 Height = 390
Width = 411 Width = 411
ClientHeight = 424 ClientHeight = 390
ClientWidth = 411 ClientWidth = 411
object PageControl1: TPageControl[0] object PageControl1: TPageControl[0]
Left = 4 Left = 4
Height = 416 Height = 382
Top = 4 Top = 4
Width = 403 Width = 403
ActivePage = TabSheet1 ActivePage = TabSheet2
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
TabIndex = 0 TabIndex = 1
TabOrder = 0 TabOrder = 0
object TabSheet1: TTabSheet object TabSheet1: TTabSheet
Caption = 'Inspector' Caption = 'Inspector'
ClientHeight = 380 ClientHeight = 346
ClientWidth = 395 ClientWidth = 395
object pnlToolBar1: TPanel object pnlToolBar1: TPanel
Left = 4 Left = 4
@ -71,7 +71,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
end end
object treeInspect: TTreeView object treeInspect: TTreeView
Left = 4 Left = 4
Height = 344 Height = 310
Top = 32 Top = 32
Width = 387 Width = 387
Align = alClient Align = alClient
@ -95,16 +95,16 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
end end
object TabSheet2: TTabSheet object TabSheet2: TTabSheet
Caption = 'Editor' Caption = 'Editor'
ClientHeight = 380 ClientHeight = 346
ClientWidth = 395 ClientWidth = 395
object propTree: TTreeView object propTree: TTreeView
Left = 4 Left = 4
Height = 316 Height = 282
Top = 32 Top = 32
Width = 387 Width = 387
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
DefaultItemHeight = 18 DefaultItemHeight = 16
HideSelection = False HideSelection = False
Images = imgList Images = imgList
ReadOnly = True ReadOnly = True
@ -166,7 +166,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
object Panel1: TPanel object Panel1: TPanel
Left = 2 Left = 2
Height = 26 Height = 26
Top = 352 Top = 318
Width = 391 Width = 391
Align = alBottom Align = alBottom
BorderSpacing.Around = 2 BorderSpacing.Around = 2
@ -198,6 +198,9 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 407
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 248 left = 248

View File

@ -143,6 +143,7 @@ end;
constructor TCEDubProjectEditorWidget.create(aOwner: TComponent); constructor TCEDubProjectEditorWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
toolbarVisible:=false;
fNodeSources := treeInspect.Items[0]; fNodeSources := treeInspect.Items[0];
fNodeConfig := treeInspect.Items[1]; fNodeConfig := treeInspect.Items[1];
// //

View File

@ -96,6 +96,7 @@ type
protected protected
procedure updateDelayed; override; procedure updateDelayed; override;
procedure updateImperative; override; procedure updateImperative; override;
procedure setToolBarFlat(value: boolean); override;
private private
fOptions: TCEPagesOptions; fOptions: TCEPagesOptions;
pageControl: TCEPageControl; pageControl: TCEPageControl;
@ -269,6 +270,7 @@ end;
constructor TCEEditorWidget.create(aOwner: TComponent); constructor TCEEditorWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
toolbarVisible:=false;
// //
pageControl := TCEPageControl.Create(self); pageControl := TCEPageControl.Create(self);
pageControl.Parent := Content; pageControl.Parent := Content;
@ -323,6 +325,14 @@ begin
result := inherited and Parent.isNil; result := inherited and Parent.isNil;
end; end;
procedure TCEEditorWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
if value then
pageControl.options := pageControl.options + [poFlatButtons]
else
pageControl.options := pageControl.options - [poFlatButtons];
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEMultiDocObserver ---------------------------------------------------} {$REGION ICEMultiDocObserver ---------------------------------------------------}

View File

@ -13,9 +13,9 @@ inherited CEInfoWidget: TCEInfoWidget
ClientHeight = 502 ClientHeight = 502
ClientWidth = 411 ClientWidth = 411
inherited Content: TPanel inherited Content: TPanel
Height = 502 Height = 468
Width = 411 Width = 411
ClientHeight = 502 ClientHeight = 468
ClientWidth = 411 ClientWidth = 411
object GroupBox1: TGroupBox[0] object GroupBox1: TGroupBox[0]
Left = 4 Left = 4
@ -46,18 +46,18 @@ inherited CEInfoWidget: TCEInfoWidget
end end
object GroupBox2: TGroupBox[1] object GroupBox2: TGroupBox[1]
Left = 4 Left = 4
Height = 385 Height = 351
Top = 113 Top = 113
Width = 403 Width = 403
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
Caption = 'tools status' Caption = 'tools status'
ClientHeight = 355 ClientHeight = 321
ClientWidth = 399 ClientWidth = 399
TabOrder = 1 TabOrder = 1
object boxTools: TScrollBox object boxTools: TScrollBox
Left = 4 Left = 4
Height = 347 Height = 313
Top = 4 Top = 4
Width = 391 Width = 391
HorzScrollBar.Page = 1 HorzScrollBar.Page = 1
@ -69,5 +69,8 @@ inherited CEInfoWidget: TCEInfoWidget
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 407
end
end end
end end

View File

@ -173,6 +173,7 @@ var
toolItem: TToolInfo; toolItem: TToolInfo;
begin begin
inherited; inherited;
toolbarVisible:=false;
fIsModal := true; fIsModal := true;
fIsDockable := false; fIsDockable := false;
// //

View File

@ -1,7 +1,7 @@
inherited CELibManEditorWidget: TCELibManEditorWidget inherited CELibManEditorWidget: TCELibManEditorWidget
Left = 772 Left = 1275
Height = 297 Height = 297
Top = 307 Top = 725
Width = 641 Width = 641
Caption = 'Library manager' Caption = 'Library manager'
ClientHeight = 297 ClientHeight = 297
@ -12,166 +12,15 @@ inherited CELibManEditorWidget: TCELibManEditorWidget
ClientHeight = 297 ClientHeight = 297
ClientWidth = 641 ClientWidth = 641
inherited Content: TPanel inherited Content: TPanel
Height = 297 Height = 263
Width = 641 Width = 641
ClientHeight = 297 ClientHeight = 263
ClientWidth = 641 ClientWidth = 641
object Panel1: TPanel[0] object List: TListView[0]
Left = 4 Left = 4
Height = 26 Height = 255
Top = 4 Top = 4
Width = 633 Width = 633
Align = alTop
BorderSpacing.Around = 4
BevelOuter = bvNone
ClientHeight = 26
ClientWidth = 633
TabOrder = 0
object btnAddLib: TBitBtn
Left = 0
Height = 26
Hint = 'add library alias'
Top = 0
Width = 28
Align = alLeft
OnClick = btnAddLibClick
Spacing = 0
TabOrder = 0
end
object btnRemLib: TBitBtn
Left = 28
Height = 26
Hint = 'remove library alias'
Top = 0
Width = 28
Align = alLeft
OnClick = btnRemLibClick
Spacing = 0
TabOrder = 1
end
object btnSelFile: TBitBtn
Left = 521
Height = 26
Hint = 'select the library file'
Top = 0
Width = 28
Align = alRight
OnClick = btnSelFileClick
Spacing = 0
TabOrder = 2
end
object btnSelRoot: TBitBtn
Left = 577
Height = 26
Hint = 'select the sources root'
Top = 0
Width = 28
Align = alRight
OnClick = btnSelRootClick
Spacing = 0
TabOrder = 3
end
object btnEditAlias: TBitBtn
Left = 493
Height = 26
Hint = 'edit the library alias'
Top = 0
Width = 28
Align = alRight
OnClick = btnEditAliasClick
Spacing = 0
TabOrder = 4
end
object btnMoveDown: TBitBtn
Left = 56
Height = 26
Top = 0
Width = 28
Align = alLeft
OnClick = btnMoveDownClick
Spacing = 0
TabOrder = 5
end
object btnMoveUp: TBitBtn
Left = 84
Height = 26
Top = 0
Width = 28
Align = alLeft
OnClick = btnMoveUpClick
Spacing = 0
TabOrder = 6
end
object btnSelfoldOfFiles: TBitBtn
Left = 549
Height = 26
Hint = 'select a folder of library files'
Top = 0
Width = 28
Align = alRight
OnClick = btnSelfoldOfFilesClick
Spacing = 0
TabOrder = 7
end
object btnReg: TBitBtn
Left = 112
Height = 26
Hint = 'register from the current project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnRegClick
Spacing = 0
TabOrder = 8
end
object btnDubFetch: TBitBtn
Left = 168
Height = 26
Hint = 'register an online dub package'
Top = 0
Width = 28
Align = alLeft
OnClick = btnDubFetchClick
Spacing = 0
TabOrder = 9
end
object btnSelProj: TBitBtn
Left = 605
Height = 26
Hint = 'select the project file'
Top = 0
Width = 28
Align = alRight
OnClick = btnSelProjClick
Spacing = 0
TabOrder = 10
end
object btnOpenProj: TBitBtn
Left = 140
Height = 26
Hint = 'open the matching project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnOpenProjClick
Spacing = 0
TabOrder = 11
end
object btnEnabled: TSpeedButton
Left = 196
Height = 26
Hint = 'disable or enable this library, without removing it from the collection'
Top = 0
Width = 28
Align = alLeft
OnClick = btnEnabledClick
end
end
object List: TListView[1]
Left = 4
Height = 259
Top = 34
Width = 633
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
Columns = < Columns = <
@ -205,12 +54,128 @@ inherited CELibManEditorWidget: TCELibManEditorWidget
ReadOnly = True ReadOnly = True
RowSelect = True RowSelect = True
SortType = stText SortType = stText
TabOrder = 1 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
OnEdited = ListEdited OnEdited = ListEdited
OnSelectItem = ListSelectItem OnSelectItem = ListSelectItem
end end
end end
inherited toolbar: TCEToolBar
Width = 637
object btnSelProj: TCEToolButton[0]
Left = 356
Top = 0
Caption = 'button3'
OnClick = btnSelProjClick
resourceName = 'SCRIPT_BRICKS'
scaledSeparator = False
end
object btnSelRoot: TCEToolButton[1]
Left = 328
Top = 0
Caption = 'button4'
OnClick = btnSelRootClick
resourceName = 'FOLDER_ADD'
scaledSeparator = False
end
object btnSelfoldOfFiles: TCEToolButton[2]
Left = 300
Top = 0
Caption = 'button5'
OnClick = btnSelfoldOfFilesClick
resourceName = 'BRICKS'
scaledSeparator = False
end
object btnSelFile: TCEToolButton[3]
Left = 272
Top = 0
Caption = 'button6'
OnClick = btnSelFileClick
resourceName = 'FOLDER_BRICK'
scaledSeparator = False
end
object btnEditAlias: TCEToolButton[4]
Left = 244
Top = 0
Caption = 'button7'
OnClick = btnEditAliasClick
resourceName = 'BOOK_EDIT'
scaledSeparator = False
end
object button5: TCEToolButton[5]
Left = 225
Height = 28
Top = 0
Width = 19
Caption = 'button8'
Style = tbsDivider
scaledSeparator = False
end
object btnEnabled: TCEToolButton[6]
Left = 197
Top = 0
Caption = 'btnEnabled'
OnClick = btnEnabledClick
resourceName = 'BOOK'
scaledSeparator = False
end
object btnDubFetch: TCEToolButton[7]
Left = 169
Top = 0
Caption = 'btnDubFetch'
OnClick = btnDubFetchClick
resourceName = 'DUB'
scaledSeparator = False
end
object btnOpenProj: TCEToolButton[8]
Left = 141
Top = 0
Caption = 'btnOpenProj'
OnClick = btnOpenProjClick
resourceName = 'BOOK_OPEN'
scaledSeparator = False
end
object btnReg: TCEToolButton[9]
Left = 113
Top = 0
Caption = 'btnReg'
OnClick = btnRegClick
resourceName = 'BOOK_LINK'
scaledSeparator = False
end
object btnMoveUp: TCEToolButton[10]
Left = 85
Top = 0
Caption = 'btnMoveUp'
OnClick = btnMoveUpClick
resourceName = 'ARROW_UP'
scaledSeparator = False
end
object btnMoveDown: TCEToolButton[11]
Left = 57
Top = 0
Caption = 'btnMoveDown'
OnClick = btnMoveDownClick
resourceName = 'ARROW_DOWN'
scaledSeparator = False
end
object btnRemLib: TCEToolButton[12]
Left = 29
Top = 0
Caption = 'btnRemLib'
OnClick = btnRemLibClick
resourceName = 'BOOK_DELETE'
scaledSeparator = False
end
object btnAddLib: TCEToolButton[13]
Left = 1
Top = 0
Caption = 'btnAddLib'
OnClick = btnAddLibClick
resourceName = 'BOOK_ADD'
scaledSeparator = False
end
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 304 left = 304

View File

@ -9,7 +9,7 @@ uses
Menus, ComCtrls, Buttons, LazFileUtils, strutils, fphttpclient, StdCtrls, xfpjson, Menus, ComCtrls, Buttons, LazFileUtils, strutils, fphttpclient, StdCtrls, xfpjson,
ce_widget, ce_interfaces, ce_nativeproject, ce_dmdwrap, ce_common, ce_dialogs, ce_widget, ce_interfaces, ce_nativeproject, ce_dmdwrap, ce_common, ce_dialogs,
ce_sharedres, process, ce_dubproject, ce_observer, ce_dlang, ce_stringrange, ce_sharedres, process, ce_dubproject, ce_observer, ce_dlang, ce_stringrange,
ce_libman, ce_projutils; ce_libman, ce_projutils, ce_dsgncontrols;
type type
@ -26,21 +26,20 @@ type
{ TCELibManEditorWidget } { TCELibManEditorWidget }
TCELibManEditorWidget = class(TCEWidget, ICEProjectObserver) TCELibManEditorWidget = class(TCEWidget, ICEProjectObserver)
btnOpenProj: TBitBtn; btnAddLib: TCEToolButton;
btnMoveDown: TBitBtn; btnDubFetch: TCEToolButton;
btnMoveUp: TBitBtn; btnEditAlias: TCEToolButton;
btnReg: TBitBtn; btnEnabled: TCEToolButton;
btnDubFetch: TBitBtn; btnMoveDown: TCEToolButton;
btnSelFile: TBitBtn; btnMoveUp: TCEToolButton;
btnAddLib: TBitBtn; btnOpenProj: TCEToolButton;
btnRemLib: TBitBtn; btnReg: TCEToolButton;
btnEditAlias: TBitBtn; btnRemLib: TCEToolButton;
btnSelfoldOfFiles: TBitBtn; btnSelFile: TCEToolButton;
btnSelRoot: TBitBtn; btnSelfoldOfFiles: TCEToolButton;
btnSelProj: TBitBtn; btnSelProj: TCEToolButton;
btnSelRoot: TCEToolButton;
List: TListView; List: TListView;
Panel1: TPanel;
btnEnabled: TSpeedButton;
procedure btnAddLibClick(Sender: TObject); procedure btnAddLibClick(Sender: TObject);
procedure btnEnabledClick(Sender: TObject); procedure btnEnabledClick(Sender: TObject);
procedure btnDubFetchClick(Sender: TObject); procedure btnDubFetchClick(Sender: TObject);
@ -91,19 +90,6 @@ const
constructor TCELibManEditorWidget.Create(aOwner: TComponent); constructor TCELibManEditorWidget.Create(aOwner: TComponent);
begin begin
inherited; inherited;
AssignPng(btnMoveDown, 'ARROW_DOWN');
AssignPng(btnMoveUp, 'ARROW_UP');
AssignPng(btnAddLib, 'BOOK_ADD');
AssignPng(btnRemLib, 'BOOK_DELETE');
AssignPng(btnEditAlias, 'BOOK_EDIT');
AssignPng(btnSelFile, 'FOLDER_BRICK');
AssignPng(btnSelfoldOfFiles, 'BRICKS');
AssignPng(btnSelRoot, 'FOLDER_ADD');
AssignPng(btnReg, 'BOOK_LINK');
AssignPng(btnDubFetch, 'DUB');
AssignPng(btnSelProj, 'SCRIPT_BRICKS');
AssignPng(btnOpenProj, 'BOOK_OPEN');
AssignPng(btnEnabled, 'BOOK');
end; end;
procedure TCELibManEditorWidget.updateButtonsState; procedure TCELibManEditorWidget.updateButtonsState;
@ -114,9 +100,9 @@ begin
List.Selected.SubItems[2].fileExists; List.Selected.SubItems[2].fileExists;
if List.Selected.isNotNil and itemForRow(List.Selected).isNotNil and if List.Selected.isNotNil and itemForRow(List.Selected).isNotNil and
itemForRow(List.Selected).enabled then itemForRow(List.Selected).enabled then
AssignPng(btnEnabled, 'BOOK') btnEnabled.resourceName := 'BOOK'
else else
AssignPng(btnEnabled, 'BOOK_GREY'); btnEnabled.resourceName := 'BOOK_GREY';
end; end;
procedure TCELibManEditorWidget.projNew(aProject: ICECommonProject); procedure TCELibManEditorWidget.projNew(aProject: ICECommonProject);

View File

@ -464,6 +464,7 @@ type
fAlwaysUseDest: boolean; fAlwaysUseDest: boolean;
fDscanUnittests: boolean; fDscanUnittests: boolean;
fAutoSaveProjectFiles: boolean; fAutoSaveProjectFiles: boolean;
fFlatLook: boolean;
function getAdditionalPATH: string; function getAdditionalPATH: string;
procedure setAdditionalPATH(const value: string); procedure setAdditionalPATH(const value: string);
function getDubCompiler: TCECompiler; function getDubCompiler: TCECompiler;
@ -473,6 +474,7 @@ type
function getNativeProjecCompiler: TCECompiler; function getNativeProjecCompiler: TCECompiler;
procedure setNativeProjecCompiler(value: TCECompiler); procedure setNativeProjecCompiler(value: TCECompiler);
procedure setRunnableDestination(const value: TCEPathname); procedure setRunnableDestination(const value: TCEPathname);
procedure setFlatLook(value: boolean);
published published
property additionalPATH: string read getAdditionalPATH write setAdditionalPath; property additionalPATH: string read getAdditionalPATH write setAdditionalPath;
property coverModuleTests: boolean read fCovModUt write fCovModUt; property coverModuleTests: boolean read fCovModUt write fCovModUt;
@ -487,6 +489,8 @@ type
property runnableDestinationAlways: boolean read fAlwaysUseDest write fAlwaysUseDest; property runnableDestinationAlways: boolean read fAlwaysUseDest write fAlwaysUseDest;
property dscanUnittests: boolean read fDscanUnittests write fDscanUnittests default true; property dscanUnittests: boolean read fDscanUnittests write fDscanUnittests default true;
property autoSaveProjectFiles: boolean read fAutoSaveProjectFiles write fAutoSaveProjectFiles default false; property autoSaveProjectFiles: boolean read fAutoSaveProjectFiles write fAutoSaveProjectFiles default false;
property flatLook: boolean read fFlatLook write setFlatLook;
// published for ICEEditableOptions but stored by DCD wrapper since it reloads before CEMainForm // published for ICEEditableOptions but stored by DCD wrapper since it reloads before CEMainForm
property dcdPort: word read fDcdPort write fDcdPort stored false; property dcdPort: word read fDcdPort write fDcdPort stored false;
@ -570,6 +574,11 @@ begin
fRunnableDest += DirectorySeparator; fRunnableDest += DirectorySeparator;
end; end;
procedure TCEApplicationOptionsBase.setFlatLook(value: boolean);
begin
fFlatLook := value;
end;
function TCEApplicationOptionsBase.getAdditionalPATH: string; function TCEApplicationOptionsBase.getAdditionalPATH: string;
begin begin
exit(ce_common.additionalPath); exit(ce_common.additionalPath);
@ -620,6 +629,7 @@ begin
fMaxRecentProjs:= fBackup.fMaxRecentProjs; fMaxRecentProjs:= fBackup.fMaxRecentProjs;
fReloadLastDocuments:=fBackup.fReloadLastDocuments; fReloadLastDocuments:=fBackup.fReloadLastDocuments;
fFloatingWidgetOnTop := fBackup.fFloatingWidgetOnTop; fFloatingWidgetOnTop := fBackup.fFloatingWidgetOnTop;
fFlatLook:=fBackup.fFlatLook;
CEMainForm.fRunnableDestination := fBackup.fRunnableDest; CEMainForm.fRunnableDestination := fBackup.fRunnableDest;
CEmainForm.fAlwaysUseDest := fBackup.fAlwaysUseDest; CEmainForm.fAlwaysUseDest := fBackup.fAlwaysUseDest;
CEMainForm.fDscanUnittests := fDscanUnittests; CEMainForm.fDscanUnittests := fDscanUnittests;
@ -628,6 +638,8 @@ begin
end; end;
procedure TCEApplicationOptions.assignTo(dst: TPersistent); procedure TCEApplicationOptions.assignTo(dst: TPersistent);
var
i: integer;
begin begin
if dst = CEMainForm then if dst = CEMainForm then
begin begin
@ -639,6 +651,8 @@ begin
CEMainForm.fAlwaysUseDest := fAlwaysUseDest; CEMainForm.fAlwaysUseDest := fAlwaysUseDest;
CEMainForm.fDscanUnittests := fDscanUnittests; CEMainForm.fDscanUnittests := fDscanUnittests;
DcdWrapper.port:=fDcdPort; DcdWrapper.port:=fDcdPort;
for i := 0 to CEMainForm.fWidgList.Count-1 do
CEMainForm.fWidgList.widget[i].toolbarFlat:=fFlatLook;
end else if dst = fBackup then end else if dst = fBackup then
begin begin
fBackup.fMaxRecentDocs:= fMaxRecentDocs; fBackup.fMaxRecentDocs:= fMaxRecentDocs;
@ -650,6 +664,7 @@ begin
fBackup.fRunnableDest:= fRunnableDest; fBackup.fRunnableDest:= fRunnableDest;
fBackup.fAlwaysUseDest := fAlwaysUseDest; fBackup.fAlwaysUseDest := fAlwaysUseDest;
fBackup.fDscanUnittests:= fDscanUnittests; fBackup.fDscanUnittests:= fDscanUnittests;
fBackup.fFlatLook:= fFlatLook;
end end
else inherited; else inherited;
end; end;

View File

@ -1,27 +1,28 @@
inherited CEMessagesWidget: TCEMessagesWidget inherited CEMessagesWidget: TCEMessagesWidget
Left = 708 Left = 900
Height = 172 Height = 159
Top = 198 Top = 226
Width = 763 Width = 844
Caption = 'Messages' Caption = 'Messages'
ClientHeight = 172 ClientHeight = 159
ClientWidth = 763 ClientWidth = 844
inherited Back: TPanel inherited Back: TPanel
Height = 172 Height = 159
Width = 763 Width = 844
ClientHeight = 172 ClientHeight = 159
ClientWidth = 763 ClientWidth = 844
inherited Content: TPanel inherited Content: TPanel
Height = 172 Height = 125
Width = 763 Top = 34
ClientHeight = 172 Width = 844
ClientWidth = 763 ClientHeight = 125
ClientWidth = 844
PopupMenu = nil PopupMenu = nil
object List: TTreeView[0] object List: TTreeView[0]
Left = 2 Left = 2
Height = 140 Height = 121
Top = 30 Top = 2
Width = 759 Width = 840
Align = alClient Align = alClient
BorderSpacing.Around = 2 BorderSpacing.Around = 2
DefaultItemHeight = 16 DefaultItemHeight = 16
@ -44,120 +45,120 @@ inherited CEMessagesWidget: TCEMessagesWidget
OnKeyDown = ListKeyDown OnKeyDown = ListKeyDown
Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoThemedDraw] Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoThemedDraw]
end end
object selCtxt: TToolBar[1] end
Left = 2 inherited toolbar: TCEToolBar
Height = 28
Width = 836
ButtonWidth = 100
ShowCaptions = True
Wrapable = False
object button0: TCEToolButton[0]
Left = 554
Height = 28
Top = 0
Width = 5
Caption = 'button0'
Style = tbsDivider
scaledSeparator = False
end
object btnSelMisc: TCEToolButton[1]
Left = 454
Top = 0
Caption = 'Misc'
scaledSeparator = False
end
object button2: TCEToolButton[2]
Left = 449
Height = 28
Top = 0
Width = 5
Caption = 'button2'
Style = tbsDivider
scaledSeparator = False
end
object btnSelApp: TCEToolButton[3]
Left = 349
Top = 0
Caption = 'Application'
scaledSeparator = False
end
object button4: TCEToolButton[4]
Left = 344
Height = 28
Top = 0
Width = 5
Caption = 'button4'
Style = tbsDivider
scaledSeparator = False
end
object btnSelProj: TCEToolButton[5]
Left = 244
Top = 0
Caption = 'Project'
scaledSeparator = False
end
object button6: TCEToolButton[6]
Left = 239
Height = 28
Top = 0
Width = 5
Caption = 'button6'
Style = tbsDivider
scaledSeparator = False
end
object btnSelEdit: TCEToolButton[7]
Left = 139
Top = 0
Caption = 'Editor'
scaledSeparator = False
end
object button8: TCEToolButton[8]
Left = 134
Height = 28
Top = 0
Width = 5
Caption = 'button8'
Style = tbsDivider
scaledSeparator = False
end
object btnSelAll: TCEToolButton[9]
Left = 34
Top = 0
Caption = 'All'
Down = True
scaledSeparator = False
end
object button10: TCEToolButton[10]
Left = 29
Height = 28
Top = 0
Width = 5
Caption = 'button10'
Style = tbsDivider
scaledSeparator = False
end
object TreeFilterEdit1: TTreeFilterEdit[11]
Left = 560
Height = 26 Height = 26
Top = 2 Top = 1
Width = 759 Width = 275
AutoSize = True OnAfterFilter = TreeFilterEdit1AfterFilter
BorderSpacing.Around = 2 ButtonWidth = 23
ButtonHeight = 24 NumGlyphs = 1
ButtonWidth = 100 Align = alRight
ShowCaptions = True Anchors = [akTop, akLeft, akRight, akBottom]
TabOrder = 1 BorderSpacing.Around = 1
Wrapable = False MaxLength = 0
object btnSelAll: TToolButton TabOrder = 0
Left = 33 OnButtonClick = TreeFilterEdit1ButtonClick
Hint = 'unfiltered messages' FilteredTreeview = List
Top = 2 end
Caption = 'All' object btnClearCat: TSpeedButton[12]
Down = True Left = 1
end Height = 28
object ToolButton2: TToolButton Top = 0
Left = 133 Width = 28
Height = 24 Align = alLeft
Top = 2
Width = 5
Caption = 'ToolButton2'
Style = tbsDivider
end
object btnSelEdit: TToolButton
Left = 138
Hint = 'messages related to the current document'
Top = 2
Caption = 'Editor'
end
object ToolButton4: TToolButton
Left = 238
Height = 24
Top = 2
Width = 5
Caption = 'ToolButton4'
Style = tbsDivider
end
object btnSelProj: TToolButton
Left = 243
Hint = 'message related to the current project'
Top = 2
Caption = 'Project'
end
object ToolButton8: TToolButton
Left = 343
Height = 24
Top = 2
Width = 5
Caption = 'ToolButton8'
Style = tbsDivider
end
object btnSelApp: TToolButton
Left = 348
Hint = 'messages related to Coedit'
Top = 2
Caption = 'Application'
end
object ToolButton10: TToolButton
Left = 448
Height = 24
Top = 2
Width = 5
Caption = 'ToolButton10'
Style = tbsDivider
end
object btnSelMisc: TToolButton
Left = 453
Hint = 'miscellaneous messages, custom tools output, etc'
Top = 2
Caption = 'Misc.'
end
object btnClearCat: TBitBtn
Left = 1
Height = 24
Top = 2
Width = 27
TabOrder = 0
end
object ToolButton1: TToolButton
Left = 28
Height = 24
Top = 2
Width = 5
Caption = 'ToolButton1'
Style = tbsDivider
end
object ToolButton11: TToolButton
Left = 553
Height = 24
Top = 2
Width = 5
Caption = 'ToolButton11'
Style = tbsDivider
end
object TreeFilterEdit1: TTreeFilterEdit
Left = 559
Height = 22
Top = 3
Width = 199
OnAfterFilter = TreeFilterEdit1AfterFilter
ButtonWidth = 23
NumGlyphs = 1
Align = alRight
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 1
MaxLength = 0
TabOrder = 1
OnButtonClick = TreeFilterEdit1ButtonClick
FilteredTreeview = List
end
end end
end end
end end

View File

@ -9,7 +9,7 @@ uses
EditBtn, lcltype, ce_widget, ActnList, Menus, clipbrd, AnchorDocking, math, EditBtn, lcltype, ce_widget, ActnList, Menus, clipbrd, AnchorDocking, math,
TreeFilterEdit, Buttons, process, GraphType, fgl, TreeFilterEdit, Buttons, process, GraphType, fgl,
ce_writableComponent, ce_common, ce_synmemo, ce_interfaces, ce_observer, ce_writableComponent, ce_common, ce_synmemo, ce_interfaces, ce_observer,
ce_processes, ce_sharedres, ce_stringrange; ce_processes, ce_sharedres, ce_stringrange, ce_dsgncontrols;
type type
@ -59,21 +59,20 @@ type
{ TCEMessagesWidget } { TCEMessagesWidget }
TCEMessagesWidget = class(TCEWidget, ICEEditableOptions, ICEMultiDocObserver, ICEProjectObserver, ICEMessagesDisplay) TCEMessagesWidget = class(TCEWidget, ICEEditableOptions, ICEMultiDocObserver, ICEProjectObserver, ICEMessagesDisplay)
btnClearCat: TBitBtn; btnSelAll: TCEToolButton;
btnSelApp: TCEToolButton;
btnSelEdit: TCEToolButton;
btnSelMisc: TCEToolButton;
btnSelProj: TCEToolButton;
button0: TCEToolButton;
button10: TCEToolButton;
button2: TCEToolButton;
button4: TCEToolButton;
button6: TCEToolButton;
button8: TCEToolButton;
imgList: TImageList; imgList: TImageList;
List: TTreeView; List: TTreeView;
selCtxt: TToolBar; btnClearCat: TSpeedButton;
btnSelAll: TToolButton;
ToolButton1: TToolButton;
ToolButton10: TToolButton;
btnSelMisc: TToolButton;
ToolButton11: TToolButton;
ToolButton2: TToolButton;
btnSelEdit: TToolButton;
ToolButton4: TToolButton;
btnSelProj: TToolButton;
ToolButton8: TToolButton;
btnSelApp: TToolButton;
TreeFilterEdit1: TTreeFilterEdit; TreeFilterEdit1: TTreeFilterEdit;
procedure ListCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; procedure ListCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
State: TCustomDrawState; var DefaultDraw: Boolean); State: TCustomDrawState; var DefaultDraw: Boolean);
@ -160,6 +159,7 @@ type
procedure clearbyData(aData: Pointer); procedure clearbyData(aData: Pointer);
procedure scrollToBack; procedure scrollToBack;
protected protected
procedure setToolBarFlat(value: boolean); override;
procedure updateLoop; override; procedure updateLoop; override;
// //
function contextName: string; override; function contextName: string; override;
@ -343,6 +343,13 @@ begin
inherited; inherited;
end; end;
procedure TCEMessagesWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
btnClearCat.Flat := value;
TreeFilterEdit1.Flat:=value;
end;
procedure TCEMessagesWidget.listDeletion(Sender: TObject; Node: TTreeNode); procedure TCEMessagesWidget.listDeletion(Sender: TObject; Node: TTreeNode);
var var
i: integer; i: integer;
@ -402,8 +409,8 @@ begin
// //
fCtxt := amcAll; fCtxt := amcAll;
btn := TToolButton(Sender); btn := TToolButton(Sender);
for i := 0 to selCtxt.ButtonCount-1 do for i := 0 to toolbar.ButtonCount-1 do
selCtxt.Buttons[i].Down := selCtxt.Buttons[i] = btn; toolbar.Buttons[i].Down := toolbar.Buttons[i] = btn;
if btn = btnSelAll then if btn = btnSelAll then
fCtxt := amcAll fCtxt := amcAll
else if btn = btnSelEdit then else if btn = btnSelEdit then

View File

@ -1,7 +1,7 @@
inherited CEMiniExplorerWidget: TCEMiniExplorerWidget inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
Left = 1062 Left = 1558
Height = 598 Height = 598
Top = 4 Top = 110
Width = 343 Width = 343
ActiveControl = lstFav ActiveControl = lstFav
Caption = 'Mini explorer' Caption = 'Mini explorer'
@ -14,11 +14,11 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
ClientWidth = 343 ClientWidth = 343
inherited Content: TPanel inherited Content: TPanel
Left = 4 Left = 4
Height = 590 Height = 556
Top = 4 Top = 38
Width = 335 Width = 335
BorderSpacing.Around = 4 BorderSpacing.Around = 4
ClientHeight = 590 ClientHeight = 556
ClientWidth = 335 ClientWidth = 335
object lstFav: TListView[0] object lstFav: TListView[0]
Left = 0 Left = 0
@ -49,18 +49,18 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
end end
object Panel2: TPanel[2] object Panel2: TPanel[2]
Left = 0 Left = 0
Height = 453 Height = 419
Top = 137 Top = 137
Width = 335 Width = 335
Align = alClient Align = alClient
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 453 ClientHeight = 419
ClientWidth = 335 ClientWidth = 335
TabOrder = 2 TabOrder = 2
object Tree: TTreeView object Tree: TTreeView
Left = 0 Left = 0
Height = 171 Height = 171
Top = 32 Top = 0
Width = 335 Width = 335
Align = alTop Align = alTop
DefaultItemHeight = 16 DefaultItemHeight = 16
@ -76,15 +76,15 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
Cursor = crVSplit Cursor = crVSplit
Left = 0 Left = 0
Height = 6 Height = 6
Top = 203 Top = 171
Width = 335 Width = 335
Align = alTop Align = alTop
ResizeAnchor = akTop ResizeAnchor = akTop
end end
object lstFiles: TListView object lstFiles: TListView
Left = 0 Left = 0
Height = 244 Height = 242
Top = 209 Top = 177
Width = 335 Width = 335
Align = alClient Align = alClient
AutoSort = False AutoSort = False
@ -103,85 +103,61 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget
OnEnter = lstFilesEnter OnEnter = lstFilesEnter
OnStartDrag = lstFilesStartDrag OnStartDrag = lstFilesStartDrag
end end
object Panel1: TPanel end
Left = 0 end
Height = 28 inherited toolbar: TCEToolBar
Top = 0 Width = 335
Width = 335 object btnEdit: TCEToolButton[0]
Align = alTop Left = 85
BorderSpacing.Bottom = 4 Top = 0
BevelOuter = bvNone Caption = 'btnEdit'
ClientHeight = 28 OnClick = btnEditClick
ClientWidth = 335 resourceName = 'PENCIL'
TabOrder = 3 scaledSeparator = False
object btnAddFav: TBitBtn end
Left = 0 object btnShellOpen: TCEToolButton[1]
Height = 28 Left = 57
Hint = 'add selected folder to favorites' Top = 0
Top = 0 Caption = 'btnShellOpen'
Width = 28 OnClick = btnShellOpenClick
Align = alLeft resourceName = 'FLASH'
Layout = blGlyphBottom scaledSeparator = False
OnClick = btnAddFavClick end
Spacing = 0 object btnRemFav: TCEToolButton[2]
TabOrder = 0 Left = 29
end Top = 0
object btnEdit: TBitBtn Caption = 'btnRemFav'
Left = 84 OnClick = btnRemFavClick
Height = 28 resourceName = 'FOLDER_DELETE'
Hint = 'open selected file in as a project or as a source file' scaledSeparator = False
Top = 0 end
Width = 28 object btnAddFav: TCEToolButton[3]
Align = alLeft Left = 1
Layout = blGlyphBottom Top = 0
OnClick = btnEditClick Caption = 'btnAddFav'
Spacing = 0 OnClick = btnAddFavClick
TabOrder = 1 resourceName = 'FOLDER_ADD'
end scaledSeparator = False
object btnShellOpen: TBitBtn end
Left = 56 object lstFilter: TListFilterEdit[4]
Height = 28 Left = 119
Hint = 'open the selected file or folder with the shell' Height = 26
Top = 0 Top = 2
Width = 28 Width = 214
Align = alLeft ButtonWidth = 28
Layout = blGlyphBottom NumGlyphs = 1
OnClick = btnShellOpenClick Align = alClient
Spacing = 0 Anchors = [akTop, akLeft, akRight]
TabOrder = 2 BorderSpacing.Left = 116
end BorderSpacing.Around = 2
object btnRemFav: TBitBtn MaxLength = 0
Left = 28 TabOrder = 0
Height = 28
Hint = 'remove selected folder from the favorites'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnRemFavClick
Spacing = 0
TabOrder = 3
end
object lstFilter: TListFilterEdit
Left = 113
Height = 26
Top = 1
Width = 221
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 1
MaxLength = 0
TabOrder = 4
end
end
end end
end end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 8 left = 8
top = 8 top = 24
end end
object imgList: TImageList[2] object imgList: TImageList[2]
left = 40 left = 40

View File

@ -8,7 +8,7 @@ uses
Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Graphics, Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Graphics,
ExtCtrls, Menus, ComCtrls, Buttons, lcltype, strutils, ce_widget, ce_sharedres, ExtCtrls, Menus, ComCtrls, Buttons, lcltype, strutils, ce_widget, ce_sharedres,
ce_common, ce_interfaces, ce_observer, ce_writableComponent, ce_dubproject, ce_common, ce_interfaces, ce_observer, ce_writableComponent, ce_dubproject,
ce_nativeproject, EditBtn, ce_dialogs, ce_synmemo, ce_projutils; ce_nativeproject, EditBtn, ce_dialogs, ce_synmemo, ce_projutils, ce_dsgncontrols;
type type
@ -61,15 +61,14 @@ type
{ TCEMiniExplorerWidget } { TCEMiniExplorerWidget }
TCEMiniExplorerWidget = class(TCEWidget, ICEProjectObserver, ICEMultiDocObserver, ICEExplorer) TCEMiniExplorerWidget = class(TCEWidget, ICEProjectObserver, ICEMultiDocObserver, ICEExplorer)
btnAddFav: TBitBtn; btnAddFav: TCEToolButton;
btnEdit: TBitBtn; btnEdit: TCEToolButton;
btnShellOpen: TBitBtn; btnRemFav: TCEToolButton;
btnRemFav: TBitBtn; btnShellOpen: TCEToolButton;
imgList: TImageList; imgList: TImageList;
lstFilter: TListFilterEdit; lstFilter: TListFilterEdit;
lstFiles: TListView; lstFiles: TListView;
lstFav: TListView; lstFav: TListView;
Panel1: TPanel;
Panel2: TPanel; Panel2: TPanel;
Splitter1: TSplitter; Splitter1: TSplitter;
Splitter2: TSplitter; Splitter2: TSplitter;
@ -124,6 +123,8 @@ type
function singleServiceName: string; function singleServiceName: string;
procedure browse(const location: string); procedure browse(const location: string);
function currentLocation: string; function currentLocation: string;
protected
procedure setToolBarFlat(value: boolean); override;
public public
constructor create(aOwner: TComponent); override; constructor create(aOwner: TComponent); override;
destructor destroy; override; destructor destroy; override;
@ -250,11 +251,6 @@ begin
// //
fEditableOptions:= TCEMiniExplorerEditableOptions.create(self); fEditableOptions:= TCEMiniExplorerEditableOptions.create(self);
// //
AssignPng(btnAddFav, 'FOLDER_ADD');
AssignPng(btnRemFav, 'FOLDER_DELETE');
AssignPng(btnShellOpen, 'FLASH');
AssignPng(btnEdit, 'PENCIL');
//
fFavorites := TStringList.Create; fFavorites := TStringList.Create;
fFavorites.onChange := @favStringsChange; fFavorites.onChange := @favStringsChange;
lstFiles.OnDeletion := @lstDeletion; lstFiles.OnDeletion := @lstDeletion;
@ -307,6 +303,12 @@ begin
if Item.Data.isNotNil then if Item.Data.isNotNil then
DisposeStr(PString(Item.Data)); DisposeStr(PString(Item.Data));
end; end;
procedure TCEMiniExplorerWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
lstFilter.Flat:=value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEProjectObserver ----------------------------------------------------} {$REGION ICEProjectObserver ----------------------------------------------------}

View File

@ -65,6 +65,7 @@ const
constructor TCEOptionEditorWidget.create(aOwner: TComponent); constructor TCEOptionEditorWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
toolbarVisible:=false;
fIsDockable := false; fIsDockable := false;
fIsModal:= true; fIsModal:= true;
fEdOptsSubj := TCEEditableOptionsSubject.create; fEdOptsSubj := TCEEditableOptionsSubject.create;

View File

@ -24,6 +24,8 @@ type
procedure btnKillClick(Sender: TObject); procedure btnKillClick(Sender: TObject);
procedure btnSendClick(Sender: TObject); procedure btnSendClick(Sender: TObject);
procedure txtInpKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure txtInpKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
protected
procedure setToolBarFlat(value: boolean); override;
private private
fMruPos: Integer; fMruPos: Integer;
fMru: TCEMRUList; fMru: TCEMRUList;
@ -67,6 +69,7 @@ begin
AssignPng(btnClose, 'PENCIL_DELETE'); AssignPng(btnClose, 'PENCIL_DELETE');
AssignPng(btnSend, 'PENCIL_GO'); AssignPng(btnSend, 'PENCIL_GO');
AssignPng(btnKill, 'CANCEL'); AssignPng(btnKill, 'CANCEL');
toolbarVisible:=false;
end; end;
destructor TCEProcInputWidget.destroy; destructor TCEProcInputWidget.destroy;
@ -76,6 +79,12 @@ begin
fMru.Free; fMru.Free;
inherited; inherited;
end; end;
procedure TCEProcInputWidget.setToolBarFlat(value: boolean);
begin
inherited;
//btnClose.flat = fToolbarFlat;
end;
{$ENDREGION --------------------------------------------------------------------} {$ENDREGION --------------------------------------------------------------------}
{$REGION ICEProcInputHandler ---------------------------------------------------} {$REGION ICEProcInputHandler ---------------------------------------------------}

View File

@ -1,7 +1,7 @@
inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget
Left = 631 Left = 1488
Height = 273 Height = 273
Top = 296 Top = 349
Width = 445 Width = 445
Caption = 'Native project configuration' Caption = 'Native project configuration'
ClientHeight = 273 ClientHeight = 273
@ -12,92 +12,24 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget
ClientHeight = 273 ClientHeight = 273
ClientWidth = 445 ClientWidth = 445
inherited Content: TPanel inherited Content: TPanel
Height = 273 Height = 237
Width = 445 Width = 445
ClientHeight = 273 ClientHeight = 237
ClientWidth = 445 ClientWidth = 445
object pnlToolBar: TPanel[0] object Panel2: TPanel[0]
Left = 4 Left = 4
Height = 26 Height = 229
Top = 2 Top = 4
Width = 437
Align = alTop
BorderSpacing.Left = 2
BorderSpacing.Right = 2
BorderSpacing.Around = 2
BevelOuter = bvNone
ClientHeight = 26
ClientWidth = 437
TabOrder = 0
object selConf: TComboBox
Left = 0
Height = 25
Hint = 'select a configuration'
Top = 1
Width = 324
Align = alClient
BorderSpacing.Top = 1
BorderSpacing.Right = 1
ItemHeight = 0
OnChange = selConfChange
Style = csDropDownList
TabOrder = 0
end
object btnAddConf: TSpeedButton
Left = 325
Height = 26
Hint = 'add an empty configuration'
Top = 0
Width = 28
Align = alRight
OnClick = btnAddConfClick
ShowCaption = False
end
object btnDelConf: TSpeedButton
Left = 353
Height = 26
Hint = 'remove selected configuration'
Top = 0
Width = 28
Align = alRight
OnClick = btnDelConfClick
ShowCaption = False
end
object btnCloneConf: TSpeedButton
Left = 381
Height = 26
Hint = 'clone selected configuration'
Top = 0
Width = 28
Align = alRight
OnClick = btnCloneCurrClick
ShowCaption = False
end
object btnSyncEdit: TSpeedButton
Left = 409
Height = 26
Hint = 'syncrhonize each configuration'
Top = 0
Width = 28
Align = alRight
OnClick = btnSyncEditClick
ShowCaption = False
end
end
object Panel2: TPanel[1]
Left = 4
Height = 237
Top = 32
Width = 437 Width = 437
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 237 ClientHeight = 229
ClientWidth = 437 ClientWidth = 437
TabOrder = 1 TabOrder = 0
object Tree: TTreeView object Tree: TTreeView
Left = 0 Left = 0
Height = 237 Height = 229
Hint = 'filter configuration elements' Hint = 'filter configuration elements'
Top = 0 Top = 0
Width = 160 Width = 160
@ -132,14 +64,14 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget
end end
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 160 Left = 160
Height = 237 Height = 229
Top = 0 Top = 0
Width = 5 Width = 5
AutoSnap = False AutoSnap = False
end end
object inspector: TTIPropertyGrid object inspector: TTIPropertyGrid
Left = 165 Left = 165
Height = 237 Height = 229
Top = 0 Top = 0
Width = 272 Width = 272
Align = alClient Align = alClient
@ -155,6 +87,57 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 437
object btnSyncEdit: TCEToolButton[0]
Left = 85
Top = 0
Caption = 'btnSyncEdit'
OnClick = btnSyncEditClick
resourceName = 'LINK_BREAK'
scaledSeparator = False
end
object btnCLoneConf: TCEToolButton[1]
Left = 57
Top = 0
Caption = 'btnCLoneConf'
OnClick = btnCloneCurrClick
resourceName = 'COG_GO'
scaledSeparator = False
end
object btnDelConf: TCEToolButton[2]
Left = 29
Top = 0
Caption = 'btnDelConf'
OnClick = btnDelConfClick
resourceName = 'COG_DELETE'
scaledSeparator = False
end
object btnAddConf: TCEToolButton[3]
Left = 1
Top = 0
Caption = 'btnAddConf'
OnClick = btnAddConfClick
resourceName = 'COG_ADD'
scaledSeparator = False
end
object selConf: TComboBox[4]
Left = 117
Height = 25
Hint = 'select a configuration'
Top = 3
Width = 317
Align = alClient
BorderSpacing.Left = 114
BorderSpacing.Top = 1
BorderSpacing.Right = 1
BorderSpacing.Around = 2
ItemHeight = 0
OnChange = selConfChange
Style = csDropDownList
TabOrder = 0
end
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 8 left = 8

View File

@ -8,21 +8,20 @@ uses
Classes, SysUtils, FileUtil, RTTIGrids, RTTICtrls, Forms, Controls, Graphics, Classes, SysUtils, FileUtil, RTTIGrids, RTTICtrls, Forms, Controls, Graphics,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Buttons, rttiutils, typinfo, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Buttons, rttiutils, typinfo,
PropEdits, ObjectInspector, ce_dmdwrap, ce_nativeproject, ce_widget, PropEdits, ObjectInspector, ce_dmdwrap, ce_nativeproject, ce_widget,
ce_interfaces, ce_observer, ce_sharedres, ce_common; ce_interfaces, ce_observer, ce_sharedres, ce_common, ce_dsgncontrols;
type type
{ TCEProjectConfigurationWidget } { TCEProjectConfigurationWidget }
TCEProjectConfigurationWidget = class(TCEWidget, ICEProjectObserver) TCEProjectConfigurationWidget = class(TCEWidget, ICEProjectObserver)
btnSyncEdit: TSpeedButton; btnAddConf: TCEToolButton;
btnCLoneConf: TCEToolButton;
btnDelConf: TCEToolButton;
btnSyncEdit: TCEToolButton;
imgList: TImageList; imgList: TImageList;
Panel2: TPanel; Panel2: TPanel;
selConf: TComboBox; selConf: TComboBox;
pnlToolBar: TPanel;
btnAddConf: TSpeedButton;
btnDelConf: TSpeedButton;
btnCloneConf: TSpeedButton;
Splitter1: TSplitter; Splitter1: TSplitter;
inspector: TTIPropertyGrid; inspector: TTIPropertyGrid;
Tree: TTreeView; Tree: TTreeView;
@ -67,11 +66,6 @@ constructor TCEProjectConfigurationWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
// //
AssignPng(btnAddConf, 'COG_ADD');
AssignPng(btnDelConf, 'COG_DELETE');
AssignPng(btnCloneConf, 'COG_GO');
AssignPng(btnSyncEdit, 'LINK_BREAK');
//
fSynchroItem := TStringList.Create; fSynchroItem := TStringList.Create;
fSynchroValue := TStringList.Create; fSynchroValue := TStringList.Create;
Tree.Selected := Tree.Items.GetLastNode; Tree.Selected := Tree.Items.GetLastNode;
@ -174,11 +168,13 @@ end;
procedure TCEProjectConfigurationWidget.setSyncroMode(aValue: boolean); procedure TCEProjectConfigurationWidget.setSyncroMode(aValue: boolean);
begin begin
if fSyncroMode = aValue then exit; if fSyncroMode = aValue then
// exit;
fSyncroMode := aValue; fSyncroMode := aValue;
if fSyncroMode then AssignPng(btnSyncEdit, 'LINK') if fSyncroMode then
else AssignPng(btnSyncEdit, 'LINK_BREAK'); btnSyncEdit.resourceName := 'LINK'
else
btnSyncEdit.resourceName := 'LINK_BREAK';
end; end;
function TCEProjectConfigurationWidget.syncroSetPropAsString(const ASection, Item, Default: string): string; function TCEProjectConfigurationWidget.syncroSetPropAsString(const ASection, Item, Default: string): string;

View File

@ -12,75 +12,15 @@ inherited CEProjectGroupWidget: TCEProjectGroupWidget
ClientHeight = 195 ClientHeight = 195
ClientWidth = 328 ClientWidth = 328
inherited Content: TPanel inherited Content: TPanel
Height = 195 Height = 159
Width = 328 Width = 328
ClientHeight = 195 ClientHeight = 159
ClientWidth = 328 ClientWidth = 328
object Panel1: TPanel[0] object lstProj: TListView[0]
Left = 4 Left = 4
Height = 26 Height = 121
Top = 4 Top = 4
Width = 320 Width = 320
Align = alTop
BorderSpacing.Around = 4
BevelOuter = bvNone
ClientHeight = 26
ClientWidth = 320
TabOrder = 0
object BtnAddProj: TBitBtn
Left = 0
Height = 26
Hint = 'add a project to the group'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = BtnAddProjClick
Spacing = 0
TabOrder = 0
end
object btnRemProj: TBitBtn
Left = 28
Height = 26
Hint = 'remove selected project from the group'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnRemProjClick
Spacing = 0
TabOrder = 1
end
object btnMoveDown: TBitBtn
Left = 56
Height = 26
Hint = 'move selected project down'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnMoveDownClick
Spacing = 0
TabOrder = 2
end
object btnMoveUp: TBitBtn
Left = 84
Height = 26
Hint = 'move selected project up'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnMoveUpClick
Spacing = 0
TabOrder = 3
end
end
object lstProj: TListView[1]
Left = 4
Height = 127
Top = 34
Width = 320
Align = alClient Align = alClient
AutoSort = False AutoSort = False
BorderSpacing.Around = 4 BorderSpacing.Around = 4
@ -88,74 +28,105 @@ inherited CEProjectGroupWidget: TCEProjectGroupWidget
item item
AutoSize = True AutoSize = True
Caption = 'Name' Caption = 'Name'
Width = 44 Width = 47
end end
item item
AutoSize = True AutoSize = True
Caption = 'Type' Caption = 'Type'
Width = 38 Width = 39
end end
item item
AutoSize = True AutoSize = True
Caption = 'Configuration' Caption = 'Configuration'
Width = 86 Width = 230
end> end>
GridLines = True GridLines = True
ReadOnly = True ReadOnly = True
ScrollBars = ssAutoBoth ScrollBars = ssAutoBoth
TabOrder = 1 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
OnDblClick = lstProjDblClick OnDblClick = lstProjDblClick
end end
object Panel2: TPanel[2] object Panel2: TPanel[1]
Left = 4 Left = 4
Height = 26 Height = 26
Top = 165 Top = 129
Width = 320 Width = 320
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 26 ClientHeight = 26
ClientWidth = 320 ClientWidth = 320
TabOrder = 2 TabOrder = 1
object btnFreeFocus: TBitBtn object btnFreeFocus: TSpeedButton
Left = 262 Left = 264
Height = 24 Height = 26
Hint = 'Put the focus on the ungrouped project' Hint = 'Put the focus on the ungrouped project'
Top = 1 Top = 0
Width = 28 Width = 28
Align = alRight Align = alRight
BorderSpacing.Around = 1
Layout = blGlyphBottom Layout = blGlyphBottom
OnClick = btnFreeFocusClick
Spacing = 0 Spacing = 0
TabOrder = 0 OnClick = btnFreeFocusClick
end end
object StaticText1: TStaticText object StaticText1: TStaticText
Left = 2 Left = 2
Height = 22 Height = 22
Top = 2 Top = 2
Width = 258 Width = 260
Align = alClient Align = alClient
BorderSpacing.Around = 2 BorderSpacing.Around = 2
BorderStyle = sbsSunken BorderStyle = sbsSunken
TabOrder = 1 TabOrder = 0
end end
object btnAddUnfocused: TBitBtn object btnAddUnfocused: TSpeedButton
Left = 291 Left = 292
Height = 24 Height = 26
Hint = 'Put the ungrouped project in the group' Hint = 'Put the ungrouped project in the group'
Top = 1 Top = 0
Width = 28 Width = 28
Align = alRight Align = alRight
BorderSpacing.Around = 1
Layout = blGlyphBottom Layout = blGlyphBottom
OnClick = btnAddUnfocusedClick
Spacing = 0 Spacing = 0
TabOrder = 2 OnClick = btnAddUnfocusedClick
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 320
object BtnAddProj: TCEToolButton[0]
Left = 1
Top = 0
Caption = 'BtnAddProj'
OnClick = BtnAddProjClick
resourceName = 'DOCUMENT_ADD'
scaledSeparator = False
end
object btnRemProj: TCEToolButton[1]
Left = 29
Top = 0
Caption = 'btnRemProj'
OnClick = btnRemProjClick
resourceName = 'DOCUMENT_DELETE'
scaledSeparator = False
end
object btnMoveDown: TCEToolButton[2]
Left = 57
Top = 0
Caption = 'btnMoveDown'
OnClick = btnMoveDownClick
resourceName = 'ARROW_DOWN'
scaledSeparator = False
end
object btnMoveUp: TCEToolButton[3]
Left = 85
Top = 0
Caption = 'btnMoveUp'
OnClick = btnMoveUpClick
resourceName = 'ARROW_UP'
scaledSeparator = False
end
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 272 left = 272

View File

@ -7,7 +7,7 @@ uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ExtCtrls, Menus, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ExtCtrls, Menus,
Buttons, dialogs, ComCtrls, StdCtrls, Buttons, dialogs, ComCtrls, StdCtrls,
ce_widget, ce_common, ce_interfaces, ce_writableComponent, ce_observer, ce_widget, ce_common, ce_interfaces, ce_writableComponent, ce_observer,
ce_nativeproject, ce_dubproject, ce_projutils, ce_sharedres; ce_nativeproject, ce_dubproject, ce_projutils, ce_sharedres, ce_dsgncontrols;
type type
@ -76,14 +76,13 @@ type
{ TCEProjectGroupWidget } { TCEProjectGroupWidget }
TCEProjectGroupWidget = class(TCEWidget, ICEProjectObserver) TCEProjectGroupWidget = class(TCEWidget, ICEProjectObserver)
BtnAddProj: TBitBtn; BtnAddProj: TCEToolButton;
btnAddUnfocused: TBitBtn; btnAddUnfocused: TSpeedButton;
btnMoveDown: TBitBtn; btnFreeFocus: TSpeedButton;
btnMoveUp: TBitBtn; btnMoveDown: TCEToolButton;
btnFreeFocus: TBitBtn; btnMoveUp: TCEToolButton;
btnRemProj: TBitBtn; btnRemProj: TCEToolButton;
lstProj: TListView; lstProj: TListView;
Panel1: TPanel;
Panel2: TPanel; Panel2: TPanel;
StaticText1: TStaticText; StaticText1: TStaticText;
procedure btnAddUnfocusedClick(Sender: TObject); procedure btnAddUnfocusedClick(Sender: TObject);
@ -109,6 +108,7 @@ type
procedure handleChanged(sender: TObject); procedure handleChanged(sender: TObject);
protected protected
procedure DoShow; override; procedure DoShow; override;
procedure setToolBarFlat(value: boolean); override;
public public
constructor create(aOwner: TCOmponent); override; constructor create(aOwner: TCOmponent); override;
destructor destroy; override; destructor destroy; override;
@ -311,10 +311,6 @@ end;
constructor TCEProjectGroupWidget.create(aOwner: TCOmponent); constructor TCEProjectGroupWidget.create(aOwner: TCOmponent);
begin begin
inherited; inherited;
AssignPng(btnMoveUp, 'ARROW_UP');
AssignPng(btnMoveDown, 'ARROW_DOWN');
AssignPng(BtnAddProj, 'DOCUMENT_ADD');
AssignPng(btnRemProj, 'DOCUMENT_DELETE');
AssignPng(btnFreeFocus, 'PENCIL'); AssignPng(btnFreeFocus, 'PENCIL');
AssignPng(btnAddUnfocused, 'DOCUMENT_ADD'); AssignPng(btnAddUnfocused, 'DOCUMENT_ADD');
projectGroup.onChanged:= @handleChanged; projectGroup.onChanged:= @handleChanged;
@ -332,6 +328,13 @@ begin
inherited; inherited;
updateList; updateList;
end; end;
procedure TCEProjectGroupWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
btnFreeFocus.flat := value;
btnAddUnfocused.flat := value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION Widget ICEProjectObserver ---------------------------------------------} {$REGION Widget ICEProjectObserver ---------------------------------------------}

View File

@ -1,7 +1,7 @@
inherited CEProjectInspectWidget: TCEProjectInspectWidget inherited CEProjectInspectWidget: TCEProjectInspectWidget
Left = 960 Left = 1575
Height = 258 Height = 258
Top = 260 Top = 91
Width = 341 Width = 341
ActiveControl = Tree ActiveControl = Tree
AllowDropFiles = True AllowDropFiles = True
@ -15,15 +15,15 @@ inherited CEProjectInspectWidget: TCEProjectInspectWidget
ClientHeight = 258 ClientHeight = 258
ClientWidth = 341 ClientWidth = 341
inherited Content: TPanel inherited Content: TPanel
Height = 258 Height = 222
Width = 341 Width = 341
ClientHeight = 258 ClientHeight = 222
ClientWidth = 341 ClientWidth = 341
PopupMenu = nil PopupMenu = nil
object Tree: TTreeView[0] object Tree: TTreeView[0]
Left = 2 Left = 2
Height = 226 Height = 218
Top = 30 Top = 2
Width = 337 Width = 337
Align = alClient Align = alClient
AutoExpand = True AutoExpand = True
@ -51,71 +51,56 @@ inherited CEProjectInspectWidget: TCEProjectInspectWidget
20736F7572636573 20736F7572636573
} }
end end
object pnlToolBar: TPanel[1] end
Left = 2 inherited toolbar: TCEToolBar
Width = 333
object btnRemFold: TCEToolButton[0]
Left = 85
Top = 0
Caption = 'btnRemFold'
OnClick = btnRemFoldClick
resourceName = 'FOLDER_DELETE'
scaledSeparator = False
end
object btnAddFold: TCEToolButton[1]
Left = 57
Top = 0
Caption = 'btnAddFold'
OnClick = btnAddFoldClick
resourceName = 'FOLDER_ADD'
scaledSeparator = False
end
object btnRemFile: TCEToolButton[2]
Left = 29
Top = 0
Caption = 'btnRemFile'
OnClick = btnRemFileClick
resourceName = 'DOCUMENT_DELETE'
scaledSeparator = False
end
object btnAddFile: TCEToolButton[3]
Left = 1
Top = 0
Caption = 'btnAddFile'
OnClick = btnAddFileClick
resourceName = 'DOCUMENT_ADD'
scaledSeparator = False
end
object TreeFilterEdit1: TTreeFilterEdit[4]
Left = 117
Height = 26 Height = 26
Top = 2 Top = 2
Width = 337 Width = 214
Align = alTop ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 114
BorderSpacing.Around = 2 BorderSpacing.Around = 2
BevelOuter = bvNone MaxLength = 0
ClientHeight = 26 TabOrder = 0
ClientWidth = 337 FilteredTreeview = Tree
TabOrder = 1 ExpandAllInitially = True
object btnAddFile: TSpeedButton
Left = 0
Height = 26
Hint = 'add a source file to the project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnAddFileClick
ShowCaption = False
end
object btnAddFold: TSpeedButton
Left = 56
Height = 26
Hint = 'add a folder of source to the project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnAddFoldClick
ShowCaption = False
end
object TreeFilterEdit1: TTreeFilterEdit
Left = 114
Height = 22
Top = 2
Width = 221
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 2
MaxLength = 0
TabOrder = 0
FilteredTreeview = Tree
ExpandAllInitially = True
end
object btnRemFile: TSpeedButton
Left = 28
Height = 26
Hint = 'remove selected sources file(s) from the project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnRemFileClick
end
object btnRemFold: TSpeedButton
Left = 84
Height = 26
Hint = 'remove a folder of source from the project'
Top = 0
Width = 28
Align = alLeft
OnClick = btnRemFoldClick
ShowCaption = False
end
end end
end end
end end

View File

@ -7,19 +7,18 @@ interface
uses uses
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, actnlist, Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, actnlist,
Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, ce_nativeproject, ce_interfaces, Dialogs, ExtCtrls, ComCtrls, Menus, Buttons, lcltype, ce_nativeproject, ce_interfaces,
ce_common, ce_widget, ce_observer, ce_dialogs, ce_sharedres; ce_common, ce_widget, ce_observer, ce_dialogs, ce_sharedres, ce_dsgncontrols;
type type
{ TCEProjectInspectWidget } { TCEProjectInspectWidget }
TCEProjectInspectWidget = class(TCEWidget, ICEProjectObserver) TCEProjectInspectWidget = class(TCEWidget, ICEProjectObserver)
btnRemFold: TSpeedButton; btnAddFile: TCEToolButton;
btnAddFold: TCEToolButton;
btnRemFile: TCEToolButton;
btnRemFold: TCEToolButton;
imgList: TImageList; imgList: TImageList;
pnlToolBar: TPanel;
btnAddFile: TSpeedButton;
btnAddFold: TSpeedButton;
btnRemFile: TSpeedButton;
Tree: TTreeView; Tree: TTreeView;
TreeFilterEdit1: TTreeFilterEdit; TreeFilterEdit1: TTreeFilterEdit;
procedure btnAddFileClick(Sender: TObject); procedure btnAddFileClick(Sender: TObject);
@ -34,6 +33,7 @@ type
procedure updateImperative; override; procedure updateImperative; override;
procedure updateDelayed; override; procedure updateDelayed; override;
procedure SetVisible(Value: boolean); override; procedure SetVisible(Value: boolean); override;
procedure setToolBarFlat(value: boolean); override;
private private
fActOpenFile: TAction; fActOpenFile: TAction;
fActSelConf: TAction; fActSelConf: TAction;
@ -86,11 +86,6 @@ begin
// //
inherited; inherited;
// //
AssignPng(btnAddFile, 'DOCUMENT_ADD');
AssignPng(btnRemFile, 'DOCUMENT_DELETE');
AssignPng(btnAddFold, 'FOLDER_ADD');
AssignPng(btnRemFold, 'FOLDER_DELETE');
//
Tree.OnDblClick := @TreeDblClick; Tree.OnDblClick := @TreeDblClick;
fFileNode := Tree.Items[0]; fFileNode := Tree.Items[0];
fConfNode := Tree.Items[1]; fConfNode := Tree.Items[1];
@ -114,6 +109,12 @@ begin
inherited; inherited;
if Value then updateImperative; if Value then updateImperative;
end; end;
procedure TCEProjectInspectWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
TreeFilterEdit1.Flat:=value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEContextualActions---------------------------------------------------} {$REGION ICEContextualActions---------------------------------------------------}

View File

@ -200,6 +200,7 @@ var
fname: string; fname: string;
begin begin
inherited; inherited;
toolbarVisible:=false;
fActFindNext := TAction.Create(self); fActFindNext := TAction.Create(self);
fActFindNext.Caption := 'Find'; fActFindNext.Caption := 'Find';
fActFindNext.OnExecute := @actFindNextExecute; fActFindNext.OnExecute := @actFindNextExecute;

View File

@ -1,27 +1,27 @@
inherited CESymbolListWidget: TCESymbolListWidget inherited CESymbolListWidget: TCESymbolListWidget
Left = 984 Left = 1515
Height = 430 Height = 430
Top = 189 Top = 270
Width = 310 Width = 382
Caption = 'Symbol list' Caption = 'Symbol list'
ClientHeight = 430 ClientHeight = 430
ClientWidth = 310 ClientWidth = 382
inherited Back: TPanel inherited Back: TPanel
Height = 430 Height = 430
Width = 310 Width = 382
ClientHeight = 430 ClientHeight = 430
ClientWidth = 310 ClientWidth = 382
inherited Content: TPanel inherited Content: TPanel
Height = 430 Height = 396
Width = 310 Width = 382
ClientHeight = 430 ClientHeight = 396
ClientWidth = 310 ClientWidth = 382
PopupMenu = nil PopupMenu = nil
object Tree: TTreeView[0] object Tree: TTreeView[0]
Left = 4 Left = 4
Height = 390 Height = 388
Top = 36 Top = 4
Width = 302 Width = 374
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
DefaultItemHeight = 16 DefaultItemHeight = 16
@ -55,48 +55,33 @@ inherited CESymbolListWidget: TCESymbolListWidget
} }
TreeLineColor = clDefault TreeLineColor = clDefault
end end
object Panel1: TPanel[1] end
Left = 2 inherited toolbar: TCEToolBar
Height = 30 Width = 378
object btnRefresh: TCEToolButton[0]
Left = 1
Top = 0
Caption = 'btnRefresh'
OnClick = btnRefreshClick
resourceName = 'ARROW_UPDATE'
scaledSeparator = False
end
object TreeFilterEdit1: TTreeFilterEdit[1]
Left = 33
Height = 26
Top = 2 Top = 2
Width = 306 Width = 343
Align = alTop OnAfterFilter = TreeFilterEdit1AfterFilter
OnFilterItem = TreeFilterEdit1FilterItem
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
BorderSpacing.Left = 30
BorderSpacing.Around = 2 BorderSpacing.Around = 2
BevelOuter = bvNone MaxLength = 0
ClientHeight = 30 TabOrder = 0
ClientWidth = 306 OnMouseEnter = TreeFilterEdit1MouseEnter
PopupMenu = contextMenu FilteredTreeview = Tree
TabOrder = 1
object TreeFilterEdit1: TTreeFilterEdit
Left = 32
Height = 26
Top = 2
Width = 272
OnAfterFilter = TreeFilterEdit1AfterFilter
OnFilterItem = TreeFilterEdit1FilterItem
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 2
MaxLength = 0
TabOrder = 0
OnMouseEnter = TreeFilterEdit1MouseEnter
FilteredTreeview = Tree
end
object btnRefresh: TBitBtn
Left = 2
Height = 26
Hint = 'refresh the list'
Top = 2
Width = 28
Align = alLeft
BorderSpacing.Around = 2
Layout = blGlyphBottom
OnClick = btnRefreshClick
Spacing = 0
TabOrder = 1
end
end end
end end
end end

View File

@ -8,7 +8,7 @@ uses
Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus, Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus,
ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc, ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc,
ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent, ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent,
ce_processes, ce_sharedres; ce_processes, ce_sharedres, ce_dsgncontrols;
type type
@ -106,9 +106,8 @@ type
{ TCESymbolListWidget } { TCESymbolListWidget }
TCESymbolListWidget = class(TCEWidget, ICEMultiDocObserver, ICEEditableOptions) TCESymbolListWidget = class(TCEWidget, ICEMultiDocObserver, ICEEditableOptions)
btnRefresh: TBitBtn; btnRefresh: TCEToolButton;
imgList: TImageList; imgList: TImageList;
Panel1: TPanel;
Tree: TTreeView; Tree: TTreeView;
TreeFilterEdit1: TTreeFilterEdit; TreeFilterEdit1: TTreeFilterEdit;
procedure btnRefreshClick(Sender: TObject); procedure btnRefreshClick(Sender: TObject);
@ -175,6 +174,7 @@ type
function contextAction(index: integer): TAction; override; function contextAction(index: integer): TAction; override;
// //
procedure SetVisible(Value: boolean); override; procedure SetVisible(Value: boolean); override;
procedure setToolBarFlat(value: boolean); override;
published published
property autoRefresh: boolean read fAutoRefresh write fAutoRefresh; property autoRefresh: boolean read fAutoRefresh write fAutoRefresh;
property refreshOnChange: boolean read fRefreshOnChange write fRefreshOnChange; property refreshOnChange: boolean read fRefreshOnChange write fRefreshOnChange;
@ -380,8 +380,6 @@ begin
ndWarn := Tree.Items[12]; ndWarn := Tree.Items[12];
ndErr := Tree.Items[13]; ndErr := Tree.Items[13];
// //
AssignPng(btnRefresh, 'ARROW_UPDATE');
//
Tree.OnDblClick := @TreeDblClick; Tree.OnDblClick := @TreeDblClick;
Tree.PopupMenu := contextMenu; Tree.PopupMenu := contextMenu;
// //
@ -409,6 +407,12 @@ begin
if Value then if Value then
callToolProc; callToolProc;
end; end;
procedure TCESymbolListWidget.setToolBarFlat(value: boolean);
begin
inherited setToolbarFlat(value);
TreeFilterEdit1.Flat:=value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEContextualActions---------------------------------------------------} {$REGION ICEContextualActions---------------------------------------------------}

View File

@ -3,7 +3,6 @@ inherited CETodoListWidget: TCETodoListWidget
Height = 337 Height = 337
Top = 196 Top = 196
Width = 584 Width = 584
ActiveControl = btnRefresh
Caption = 'Todo list' Caption = 'Todo list'
ClientHeight = 337 ClientHeight = 337
ClientWidth = 584 ClientWidth = 584
@ -13,64 +12,14 @@ inherited CETodoListWidget: TCETodoListWidget
ClientHeight = 337 ClientHeight = 337
ClientWidth = 584 ClientWidth = 584
inherited Content: TPanel inherited Content: TPanel
Height = 337 Height = 301
Width = 584 Width = 584
ClientHeight = 337 ClientHeight = 301
ClientWidth = 584 ClientWidth = 584
object Panel1: TPanel[0] object lstItems: TListView[0]
Left = 2
Height = 30
Top = 2
Width = 580
Align = alTop
BorderSpacing.Around = 2
BevelOuter = bvNone
ClientHeight = 30
ClientWidth = 580
PopupMenu = contextMenu
TabOrder = 0
object btnRefresh: TBitBtn
Left = 2
Height = 26
Hint = 'refresh the list'
Top = 2
Width = 28
Align = alLeft
BorderSpacing.Around = 2
Layout = blGlyphBottom
Spacing = 0
TabOrder = 0
end
object lstfilter: TListFilterEdit
Left = 62
Height = 26
Top = 2
Width = 516
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 2
MaxLength = 0
TabOrder = 1
end
object btnGo: TBitBtn
Left = 32
Height = 26
Hint = 'refresh the list'
Top = 2
Width = 28
Align = alLeft
BorderSpacing.Around = 2
Layout = blGlyphBottom
Spacing = 0
TabOrder = 2
end
end
object lstItems: TListView[1]
Left = 4 Left = 4
Height = 297 Height = 293
Top = 36 Top = 4
Width = 576 Width = 576
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
@ -107,10 +56,41 @@ inherited CETodoListWidget: TCETodoListWidget
end> end>
ReadOnly = True ReadOnly = True
SortType = stText SortType = stText
TabOrder = 1 TabOrder = 0
ViewStyle = vsReport ViewStyle = vsReport
end end
end end
inherited toolbar: TCEToolBar
Width = 576
object btnGo: TCEToolButton[0]
Left = 29
Top = 0
Caption = 'btnGo'
resourceName = 'ARROW_PEN'
scaledSeparator = False
end
object btnRefresh: TCEToolButton[1]
Left = 1
Top = 0
Caption = 'btnRefresh'
resourceName = 'ARROW_UPDATE'
scaledSeparator = False
end
object lstfilter: TListFilterEdit[2]
Left = 61
Height = 26
Top = 2
Width = 513
ButtonWidth = 28
NumGlyphs = 1
Align = alClient
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 58
BorderSpacing.Around = 2
MaxLength = 0
TabOrder = 0
end
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 40 left = 40

View File

@ -8,7 +8,8 @@ uses
Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls,
strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls, strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls,
ce_widget, process, ce_common, ce_interfaces, ce_synmemo, ce_processes, ce_widget, process, ce_common, ce_interfaces, ce_synmemo, ce_processes,
ce_nativeproject, ce_writableComponent, ce_observer, ce_sharedres; ce_nativeproject, ce_writableComponent, ce_observer, ce_sharedres,
ce_dsgncontrols;
type type
@ -75,12 +76,11 @@ type
{ TCETodoListWidget } { TCETodoListWidget }
TCETodoListWidget = class(TCEWidget, ICEMultiDocObserver, ICEProjectObserver, ICEEditableOptions) TCETodoListWidget = class(TCEWidget, ICEMultiDocObserver, ICEProjectObserver, ICEEditableOptions)
btnRefresh: TBitBtn; btnGo: TCEToolButton;
btnGo: TBitBtn; btnRefresh: TCEToolButton;
lstItems: TListView; lstItems: TListView;
lstfilter: TListFilterEdit; lstfilter: TListFilterEdit;
mnuAutoRefresh: TMenuItem; mnuAutoRefresh: TMenuItem;
Panel1: TPanel;
procedure handleListClick(Sender: TObject); procedure handleListClick(Sender: TObject);
procedure mnuAutoRefreshClick(Sender: TObject); procedure mnuAutoRefreshClick(Sender: TObject);
private private
@ -129,6 +129,7 @@ type
procedure refreshVisibleColumns; procedure refreshVisibleColumns;
protected protected
procedure SetVisible(Value: boolean); override; procedure SetVisible(Value: boolean); override;
procedure setToolBarFlat(value: boolean); override;
public public
constructor Create(aOwner: TComponent); override; constructor Create(aOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
@ -221,9 +222,6 @@ begin
lstfilter.OnChange := @filterItems; lstfilter.OnChange := @filterItems;
btnGo.OnClick := @handleListClick; btnGo.OnClick := @handleListClick;
// //
AssignPng(btnRefresh, 'ARROW_UPDATE');
AssignPng(btnGo, 'ARROW_PEN');
//
fname := getCoeditDocPath + OptFname; fname := getCoeditDocPath + OptFname;
if fname.fileExists then if fname.fileExists then
fOptions.loadFromFile(fname); fOptions.loadFromFile(fname);
@ -247,6 +245,11 @@ begin
refreshVisibleColumns; refreshVisibleColumns;
end; end;
procedure TCETodoListWidget.setToolBarFlat(value: boolean);
begin
inherited setToolBarFlat(value);
lstfilter.Flat:=value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEEditableOptions ----------------------------------------------------} {$REGION ICEEditableOptions ----------------------------------------------------}

View File

@ -1,7 +1,7 @@
inherited CEToolsEditorWidget: TCEToolsEditorWidget inherited CEToolsEditorWidget: TCEToolsEditorWidget
Left = 1434 Left = 1395
Height = 280 Height = 280
Top = 688 Top = 216
Width = 441 Width = 441
Caption = 'Tools editor' Caption = 'Tools editor'
ClientHeight = 280 ClientHeight = 280
@ -12,127 +12,44 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
ClientHeight = 280 ClientHeight = 280
ClientWidth = 441 ClientWidth = 441
inherited Content: TPanel inherited Content: TPanel
Height = 280 Height = 244
Width = 441 Width = 441
ClientHeight = 280 ClientHeight = 244
ClientWidth = 441 ClientWidth = 441
object Panel1: TPanel[0] object Panel2: TPanel[0]
Left = 4 Left = 4
Height = 26 Height = 236
Top = 4 Top = 4
Width = 433 Width = 433
Align = alTop
BorderSpacing.Around = 4
BevelOuter = bvNone
ClientHeight = 26
ClientWidth = 433
TabOrder = 0
object BtnAddTool: TBitBtn
Left = 0
Height = 26
Hint = 'add a tool'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = BtnAddToolClick
Spacing = 0
TabOrder = 0
end
object btnRemTool: TBitBtn
Left = 28
Height = 26
Hint = 'remove selected tool'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnRemToolClick
Spacing = 0
TabOrder = 1
end
object btnRun: TBitBtn
Left = 405
Height = 26
Hint = 'execute selected tool'
Top = 0
Width = 28
Align = alRight
Layout = blGlyphBottom
OnClick = btnRunClick
Spacing = 0
TabOrder = 2
end
object btnMoveDown: TBitBtn
Left = 56
Height = 26
Hint = 'move selected tool down'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnMoveDownClick
Spacing = 0
TabOrder = 3
end
object btnMoveUp: TBitBtn
Left = 84
Height = 26
Hint = 'move selected tool up'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnMoveUpClick
Spacing = 0
TabOrder = 4
end
object btnClone: TBitBtn
Left = 112
Height = 26
Hint = 'clone selected tool'
Top = 0
Width = 28
Align = alLeft
Layout = blGlyphBottom
OnClick = btnCloneClick
Spacing = 0
TabOrder = 5
end
end
object Panel2: TPanel[1]
Left = 4
Height = 242
Top = 34
Width = 433
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 242 ClientHeight = 236
ClientWidth = 433 ClientWidth = 433
TabOrder = 1 TabOrder = 0
object lstTools: TListBox object lstTools: TListBox
Left = 0 Left = 0
Height = 242 Height = 236
Top = 0 Top = 0
Width = 160 Width = 160
Align = alLeft Align = alLeft
ItemHeight = 0 ItemHeight = 0
OnDblClick = lstToolsDblClick OnDblClick = lstToolsDblClick
OnSelectionChange = lstToolsSelectionChange OnSelectionChange = lstToolsSelectionChange
ScrollWidth = 158 ScrollWidth = 156
TabOrder = 0 TabOrder = 0
TopIndex = -1
end end
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 160 Left = 160
Height = 242 Height = 236
Top = 0 Top = 0
Width = 5 Width = 5
AutoSnap = False AutoSnap = False
end end
object propsEd: TTIPropertyGrid object propsEd: TTIPropertyGrid
Left = 165 Left = 165
Height = 242 Height = 236
Top = 0 Top = 0
Width = 268 Width = 268
Align = alClient Align = alClient
@ -148,6 +65,66 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget
end end
end end
end end
inherited toolbar: TCEToolBar
Width = 433
object btnRun: TCEToolButton[0]
Left = 157
Top = 0
Caption = 'btnRun'
OnClick = btnRunClick
resourceName = 'APPLICATION_FLASH'
scaledSeparator = False
end
object button1: TCEToolButton[1]
Left = 141
Height = 28
Top = 0
Width = 16
Caption = 'button1'
Style = tbsDivider
scaledSeparator = False
end
object btnClone: TCEToolButton[2]
Left = 113
Top = 0
Caption = 'btnClone'
OnClick = btnCloneClick
resourceName = 'APPLICATION_DOUBLE'
scaledSeparator = False
end
object btnMoveUp: TCEToolButton[3]
Left = 85
Top = 0
Caption = 'btnMoveUp'
OnClick = btnMoveUpClick
resourceName = 'ARROW_UP'
scaledSeparator = False
end
object btnMoveDown: TCEToolButton[4]
Left = 57
Top = 0
Caption = 'btnMoveDown'
OnClick = btnMoveDownClick
resourceName = 'ARROW_DOWN'
scaledSeparator = False
end
object btnRemTool: TCEToolButton[5]
Left = 29
Top = 0
Caption = 'btnRemTool'
OnClick = btnRemToolClick
resourceName = 'APPLICATION_DELETE'
scaledSeparator = False
end
object btnAddTool: TCEToolButton[6]
Left = 1
Top = 0
Caption = 'btnAddTool'
OnClick = BtnAddToolClick
resourceName = 'APPLICATION_ADD'
scaledSeparator = False
end
end
end end
inherited contextMenu: TPopupMenu inherited contextMenu: TPopupMenu
left = 16 left = 16

View File

@ -6,20 +6,20 @@ interface
uses uses
Classes, SysUtils, FileUtil, RTTIGrids, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, FileUtil, RTTIGrids, Forms, Controls, Graphics, Dialogs,
ExtCtrls, Menus, Buttons, StdCtrls, ce_widget, ce_tools, ce_sharedres; ExtCtrls, Menus, Buttons, StdCtrls, ce_widget, ce_tools, ce_sharedres,
ce_dsgncontrols;
type type
{ TCEToolsEditorWidget } { TCEToolsEditorWidget }
TCEToolsEditorWidget = class(TCEWidget) TCEToolsEditorWidget = class(TCEWidget)
BtnAddTool: TBitBtn; btnAddTool: TCEToolButton;
btnMoveDown: TBitBtn; btnClone: TCEToolButton;
btnMoveUp: TBitBtn; btnMoveDown: TCEToolButton;
btnClone: TBitBtn; btnMoveUp: TCEToolButton;
btnRemTool: TBitBtn; btnRemTool: TCEToolButton;
btnRun: TBitBtn; btnRun: TCEToolButton;
lstTools: TListBox; lstTools: TListBox;
Panel1: TPanel;
Panel2: TPanel; Panel2: TPanel;
Splitter1: TSplitter; Splitter1: TSplitter;
propsEd: TTIPropertyGrid; propsEd: TTIPropertyGrid;
@ -47,14 +47,6 @@ implementation
constructor TCEToolsEditorWidget.create(aOwner: TComponent); constructor TCEToolsEditorWidget.create(aOwner: TComponent);
begin begin
inherited; inherited;
//
AssignPng(btnMoveUp, 'ARROW_UP');
AssignPng(btnMoveDown, 'ARROW_DOWN');
AssignPng(BtnAddTool, 'APPLICATION_ADD');
AssignPng(btnRemTool, 'APPLICATION_DELETE');
AssignPng(btnRun, 'APPLICATION_FLASH');
AssignPng(btnClone, 'APPLICATION_DOUBLE');
//
propsEd.CheckboxForBoolean := true; propsEd.CheckboxForBoolean := true;
rebuildToolList; rebuildToolList;
end; end;

View File

@ -1,7 +1,7 @@
object CEWidget: TCEWidget object CEWidget: TCEWidget
Left = 1158 Left = 1360
Height = 121 Height = 121
Top = 65 Top = 144
Width = 332 Width = 332
BorderIcons = [biMinimize, biMaximize] BorderIcons = [biMinimize, biMaximize]
Caption = 'CEWidget' Caption = 'CEWidget'
@ -23,14 +23,32 @@ object CEWidget: TCEWidget
TabOrder = 0 TabOrder = 0
object Content: TPanel object Content: TPanel
Left = 0 Left = 0
Height = 121 Height = 85
Top = 0 Top = 36
Width = 332 Width = 332
Align = alClient Align = alClient
BevelOuter = bvNone BevelOuter = bvNone
PopupMenu = contextMenu PopupMenu = contextMenu
TabOrder = 0 TabOrder = 0
end end
object toolbar: TCEToolBar
Left = 4
Height = 30
Top = 4
Width = 324
BorderSpacing.Left = 2
BorderSpacing.Top = 2
BorderSpacing.Right = 2
BorderSpacing.Around = 2
ButtonHeight = 28
ButtonWidth = 28
Caption = 'toolbar'
EdgeBorders = []
EdgeInner = esNone
EdgeOuter = esNone
Flat = False
TabOrder = 1
end
end end
object contextMenu: TPopupMenu object contextMenu: TPopupMenu
end end

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus, Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus,
AnchorDocking, ce_interfaces; AnchorDocking, ce_interfaces, ce_dsgncontrols;
type type
@ -14,7 +14,11 @@ type
* Base type for an UI module. * Base type for an UI module.
*) *)
PTCEWidget = ^TCEWidget; PTCEWidget = ^TCEWidget;
{ TCEWidget }
TCEWidget = class(TForm, ICEContextualActions) TCEWidget = class(TForm, ICEContextualActions)
toolbar: TCEToolBar;
Content: TPanel; Content: TPanel;
Back: TPanel; Back: TPanel;
contextMenu: TPopupMenu; contextMenu: TPopupMenu;
@ -33,6 +37,8 @@ type
protected protected
fIsDockable: boolean; fIsDockable: boolean;
fIsModal: boolean; fIsModal: boolean;
fToolBarFlat: boolean;
fToolBarVisible: boolean;
// a descendant overrides to implement a periodic update. // a descendant overrides to implement a periodic update.
procedure updateLoop; virtual; procedure updateLoop; virtual;
// a descendant overrides to implement an imperative update. // a descendant overrides to implement an imperative update.
@ -45,6 +51,9 @@ type
function contextAction(index: integer): TAction; virtual; function contextAction(index: integer): TAction; virtual;
// //
function getIfModal: boolean; function getIfModal: boolean;
//
procedure setToolBarVisible(value: boolean); virtual;
procedure setToolBarFlat(value: boolean); virtual;
published published
property updaterByLoopInterval: Integer read fLoopInter write setLoopInt; property updaterByLoopInterval: Integer read fLoopInter write setLoopInt;
property updaterByDelayDuration: Integer read fDelayDur write setDelayDur; property updaterByDelayDuration: Integer read fDelayDur write setDelayDur;
@ -81,6 +90,9 @@ type
property isDockable: boolean read fIsDockable; property isDockable: boolean read fIsDockable;
// not if isDockable, otherwise a the widget is shown as modal form. // not if isDockable, otherwise a the widget is shown as modal form.
property isModal: boolean read getIfModal; property isModal: boolean read getIfModal;
property toolbarFlat: boolean read fToolBarFlat write setToolBarFlat;
property toolbarVisible: boolean read fToolBarVisible write setToolBarVisible;
end; end;
(** (**
@ -112,6 +124,8 @@ implementation
uses uses
ce_observer; ce_observer;
//TODO-cNewToolbar: button hints have not been copied
{$REGION Standard Comp/Obj------------------------------------------------------} {$REGION Standard Comp/Obj------------------------------------------------------}
constructor TCEWidget.create(aOwner: TComponent); constructor TCEWidget.create(aOwner: TComponent);
var var
@ -119,6 +133,7 @@ var
itm: TmenuItem; itm: TmenuItem;
begin begin
inherited; inherited;
fToolBarVisible := true;
fIsDockable := true; fIsDockable := true;
fUpdaterAuto := TTimer.Create(self); fUpdaterAuto := TTimer.Create(self);
fUpdaterAuto.Interval := 70; fUpdaterAuto.Interval := 70;
@ -180,6 +195,22 @@ begin
end; end;
end; end;
end; end;
procedure TCEWidget.setToolBarVisible(value: boolean);
begin
if fToolBarVisible = value then
exit;
toolbar.Visible := value;
fToolBarVisible := value;
end;
procedure TCEWidget.setToolBarFlat(value: boolean);
begin
if fToolBarFlat = value then
exit;
toolbar.Flat := value;
fToolBarFlat := value;
end;
{$ENDREGION} {$ENDREGION}
{$REGION ICEContextualActions---------------------------------------------------} {$REGION ICEContextualActions---------------------------------------------------}