diff --git a/lazproj/cecontrols.pas b/lazproj/cecontrols.pas deleted file mode 100644 index 48622954..00000000 --- a/lazproj/cecontrols.pas +++ /dev/null @@ -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. diff --git a/src/ce_controls.pas b/src/ce_controls.pas index c38b5bb7..a0f37184 100644 --- a/src/ce_controls.pas +++ b/src/ce_controls.pas @@ -26,7 +26,7 @@ type property index: integer read getIndex; end; - TCEPageControlOption = (poPageHistory, poBottomHeader); + TCEPageControlOption = (poPageHistory, poBottomHeader, poFlatButtons); TCEPageControlOptions = set of TCEPageControlOption; const @@ -264,12 +264,20 @@ begin end; procedure TCEPageControl.setPagesOptions(value: TCEPageControlOptions); +var + flat: boolean; begin if fOptions = value then exit; fOptions := value; fPagesHistory.Clear; setHeaderPosition(poBottomHeader in fOptions); + flat := poFlatButtons in fOptions; + fAddBtn.Flat:= flat; + fCloseBtn.Flat:= flat; + fMoveLeftBtn.Flat:=flat; + fMoveRightBtn.Flat:=flat; + fSplitBtn.Flat:=flat; end; procedure TCEPageControl.setHeaderPosition(bottom: boolean); diff --git a/src/ce_dfmt.lfm b/src/ce_dfmt.lfm index 1bdc68c1..b9be6742 100644 --- a/src/ce_dfmt.lfm +++ b/src/ce_dfmt.lfm @@ -15,13 +15,13 @@ inherited CEDfmtWidget: TCEDfmtWidget ClientHeight = 357 ClientWidth = 450 inherited Content: TPanel - Height = 357 + Height = 323 Width = 450 - ClientHeight = 357 + ClientHeight = 323 ClientWidth = 450 object dfmtOptionEditor: TTIPropertyGrid[0] Left = 4 - Height = 313 + Height = 279 Top = 4 Width = 442 Align = alClient @@ -39,7 +39,7 @@ inherited CEDfmtWidget: TCEDfmtWidget object pnlFooter: TPanel[1] Left = 4 Height = 32 - Top = 321 + Top = 287 Width = 442 Align = alBottom BorderSpacing.Around = 4 @@ -69,5 +69,8 @@ inherited CEDfmtWidget: TCEDfmtWidget end end end + inherited toolbar: TCEToolBar + Width = 446 + end end end diff --git a/src/ce_dfmt.pas b/src/ce_dfmt.pas index cd438dc1..d8201997 100644 --- a/src/ce_dfmt.pas +++ b/src/ce_dfmt.pas @@ -98,6 +98,7 @@ var fname: string; begin inherited; + toolbarVisible:=false; fDmtWrapper := TCEDmtWrapper.Create(self); fBackup := TStringList.Create; // diff --git a/src/ce_dsgncontrols.pas b/src/ce_dsgncontrols.pas index fa336532..d484249e 100644 --- a/src/ce_dsgncontrols.pas +++ b/src/ce_dsgncontrols.pas @@ -5,7 +5,7 @@ interface uses Classes, SysUtils, Forms, Controls, ComCtrls, ExtCtrls, buttons, graphics, - Menus, LMessages, LCLType; + Menus, LMessages, LCLType, Toolwin; type @@ -87,6 +87,7 @@ begin fPng.FreeImage; fPng.LoadFromResourceName(HINSTANCE, fResourceName); end; + FToolBar.Repaint; end; procedure TCEToolButton.setScaledSeparator(value: boolean); @@ -100,13 +101,16 @@ end; procedure TCEToolButton.Paint; var rc: TRect; + x, y: integer; begin + inherited; if (fResourceName <> '') and (style = tbsButton) then begin rc := ClientRect; - Canvas.Draw(rc.Left, rc.Top, fPng); - end - else inherited; + x := ((rc.Right - rc.Left) - fPng.width) div 2; + y := ((rc.Bottom - rc.Top) - fPng.Height) div 2; + Canvas.Draw(x, y, fPng); + end; end; constructor TCEToolBar.Create(TheOwner: TComponent); @@ -139,6 +143,16 @@ begin item.OnClick:= @dsgnAddDropdown; fDesignMenu.Items.Add(item); 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; destructor TCEToolBar.Destroy; @@ -162,13 +176,24 @@ end; procedure TCEToolBar.dsgnAdd(style: TToolButtonStyle); var button: TCEToolButton; + str: string = ''; + i: integer = 0; begin 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; InsertControl(button); ButtonList.add(button); button.setToolBar(self); + if style = tbsDivider then + width := 16; end; procedure TCEToolBar.dsgnAddButton(sender: TObject); diff --git a/src/ce_dubprojeditor.lfm b/src/ce_dubprojeditor.lfm index 90708c84..b8f35af9 100644 --- a/src/ce_dubprojeditor.lfm +++ b/src/ce_dubprojeditor.lfm @@ -12,23 +12,23 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget ClientHeight = 424 ClientWidth = 411 inherited Content: TPanel - Height = 424 + Height = 390 Width = 411 - ClientHeight = 424 + ClientHeight = 390 ClientWidth = 411 object PageControl1: TPageControl[0] Left = 4 - Height = 416 + Height = 382 Top = 4 Width = 403 - ActivePage = TabSheet1 + ActivePage = TabSheet2 Align = alClient BorderSpacing.Around = 4 - TabIndex = 0 + TabIndex = 1 TabOrder = 0 object TabSheet1: TTabSheet Caption = 'Inspector' - ClientHeight = 380 + ClientHeight = 346 ClientWidth = 395 object pnlToolBar1: TPanel Left = 4 @@ -71,7 +71,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget end object treeInspect: TTreeView Left = 4 - Height = 344 + Height = 310 Top = 32 Width = 387 Align = alClient @@ -95,16 +95,16 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget end object TabSheet2: TTabSheet Caption = 'Editor' - ClientHeight = 380 + ClientHeight = 346 ClientWidth = 395 object propTree: TTreeView Left = 4 - Height = 316 + Height = 282 Top = 32 Width = 387 Align = alClient BorderSpacing.Around = 4 - DefaultItemHeight = 18 + DefaultItemHeight = 16 HideSelection = False Images = imgList ReadOnly = True @@ -166,7 +166,7 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget object Panel1: TPanel Left = 2 Height = 26 - Top = 352 + Top = 318 Width = 391 Align = alBottom BorderSpacing.Around = 2 @@ -198,6 +198,9 @@ inherited CEDubProjectEditorWidget: TCEDubProjectEditorWidget end end end + inherited toolbar: TCEToolBar + Width = 407 + end end inherited contextMenu: TPopupMenu left = 248 diff --git a/src/ce_dubprojeditor.pas b/src/ce_dubprojeditor.pas index e5018992..dfb966be 100644 --- a/src/ce_dubprojeditor.pas +++ b/src/ce_dubprojeditor.pas @@ -143,6 +143,7 @@ end; constructor TCEDubProjectEditorWidget.create(aOwner: TComponent); begin inherited; + toolbarVisible:=false; fNodeSources := treeInspect.Items[0]; fNodeConfig := treeInspect.Items[1]; // diff --git a/src/ce_editor.pas b/src/ce_editor.pas index 15fa71ed..ecde1887 100644 --- a/src/ce_editor.pas +++ b/src/ce_editor.pas @@ -96,6 +96,7 @@ type protected procedure updateDelayed; override; procedure updateImperative; override; + procedure setToolBarFlat(value: boolean); override; private fOptions: TCEPagesOptions; pageControl: TCEPageControl; @@ -269,6 +270,7 @@ end; constructor TCEEditorWidget.create(aOwner: TComponent); begin inherited; + toolbarVisible:=false; // pageControl := TCEPageControl.Create(self); pageControl.Parent := Content; @@ -323,6 +325,14 @@ begin result := inherited and Parent.isNil; 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} {$REGION ICEMultiDocObserver ---------------------------------------------------} diff --git a/src/ce_infos.lfm b/src/ce_infos.lfm index 12737b19..2879ec5b 100644 --- a/src/ce_infos.lfm +++ b/src/ce_infos.lfm @@ -13,9 +13,9 @@ inherited CEInfoWidget: TCEInfoWidget ClientHeight = 502 ClientWidth = 411 inherited Content: TPanel - Height = 502 + Height = 468 Width = 411 - ClientHeight = 502 + ClientHeight = 468 ClientWidth = 411 object GroupBox1: TGroupBox[0] Left = 4 @@ -46,18 +46,18 @@ inherited CEInfoWidget: TCEInfoWidget end object GroupBox2: TGroupBox[1] Left = 4 - Height = 385 + Height = 351 Top = 113 Width = 403 Align = alClient BorderSpacing.Around = 4 Caption = 'tools status' - ClientHeight = 355 + ClientHeight = 321 ClientWidth = 399 TabOrder = 1 object boxTools: TScrollBox Left = 4 - Height = 347 + Height = 313 Top = 4 Width = 391 HorzScrollBar.Page = 1 @@ -69,5 +69,8 @@ inherited CEInfoWidget: TCEInfoWidget end end end + inherited toolbar: TCEToolBar + Width = 407 + end end end diff --git a/src/ce_infos.pas b/src/ce_infos.pas index f6e8d05d..60186bbc 100644 --- a/src/ce_infos.pas +++ b/src/ce_infos.pas @@ -173,6 +173,7 @@ var toolItem: TToolInfo; begin inherited; + toolbarVisible:=false; fIsModal := true; fIsDockable := false; // diff --git a/src/ce_libmaneditor.lfm b/src/ce_libmaneditor.lfm index c76fe0c4..252193a4 100644 --- a/src/ce_libmaneditor.lfm +++ b/src/ce_libmaneditor.lfm @@ -1,7 +1,7 @@ inherited CELibManEditorWidget: TCELibManEditorWidget - Left = 772 + Left = 1275 Height = 297 - Top = 307 + Top = 725 Width = 641 Caption = 'Library manager' ClientHeight = 297 @@ -12,166 +12,15 @@ inherited CELibManEditorWidget: TCELibManEditorWidget ClientHeight = 297 ClientWidth = 641 inherited Content: TPanel - Height = 297 + Height = 263 Width = 641 - ClientHeight = 297 + ClientHeight = 263 ClientWidth = 641 - object Panel1: TPanel[0] + object List: TListView[0] Left = 4 - Height = 26 + Height = 255 Top = 4 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 BorderSpacing.Around = 4 Columns = < @@ -205,12 +54,128 @@ inherited CELibManEditorWidget: TCELibManEditorWidget ReadOnly = True RowSelect = True SortType = stText - TabOrder = 1 + TabOrder = 0 ViewStyle = vsReport OnEdited = ListEdited OnSelectItem = ListSelectItem 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 inherited contextMenu: TPopupMenu left = 304 diff --git a/src/ce_libmaneditor.pas b/src/ce_libmaneditor.pas index fdb6e2d4..10fe685b 100644 --- a/src/ce_libmaneditor.pas +++ b/src/ce_libmaneditor.pas @@ -9,7 +9,7 @@ uses Menus, ComCtrls, Buttons, LazFileUtils, strutils, fphttpclient, StdCtrls, xfpjson, ce_widget, ce_interfaces, ce_nativeproject, ce_dmdwrap, ce_common, ce_dialogs, ce_sharedres, process, ce_dubproject, ce_observer, ce_dlang, ce_stringrange, - ce_libman, ce_projutils; + ce_libman, ce_projutils, ce_dsgncontrols; type @@ -26,21 +26,20 @@ type { TCELibManEditorWidget } TCELibManEditorWidget = class(TCEWidget, ICEProjectObserver) - btnOpenProj: TBitBtn; - btnMoveDown: TBitBtn; - btnMoveUp: TBitBtn; - btnReg: TBitBtn; - btnDubFetch: TBitBtn; - btnSelFile: TBitBtn; - btnAddLib: TBitBtn; - btnRemLib: TBitBtn; - btnEditAlias: TBitBtn; - btnSelfoldOfFiles: TBitBtn; - btnSelRoot: TBitBtn; - btnSelProj: TBitBtn; + btnAddLib: TCEToolButton; + btnDubFetch: TCEToolButton; + btnEditAlias: TCEToolButton; + btnEnabled: TCEToolButton; + btnMoveDown: TCEToolButton; + btnMoveUp: TCEToolButton; + btnOpenProj: TCEToolButton; + btnReg: TCEToolButton; + btnRemLib: TCEToolButton; + btnSelFile: TCEToolButton; + btnSelfoldOfFiles: TCEToolButton; + btnSelProj: TCEToolButton; + btnSelRoot: TCEToolButton; List: TListView; - Panel1: TPanel; - btnEnabled: TSpeedButton; procedure btnAddLibClick(Sender: TObject); procedure btnEnabledClick(Sender: TObject); procedure btnDubFetchClick(Sender: TObject); @@ -91,19 +90,6 @@ const constructor TCELibManEditorWidget.Create(aOwner: TComponent); begin 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; procedure TCELibManEditorWidget.updateButtonsState; @@ -114,9 +100,9 @@ begin List.Selected.SubItems[2].fileExists; if List.Selected.isNotNil and itemForRow(List.Selected).isNotNil and itemForRow(List.Selected).enabled then - AssignPng(btnEnabled, 'BOOK') + btnEnabled.resourceName := 'BOOK' else - AssignPng(btnEnabled, 'BOOK_GREY'); + btnEnabled.resourceName := 'BOOK_GREY'; end; procedure TCELibManEditorWidget.projNew(aProject: ICECommonProject); diff --git a/src/ce_main.pas b/src/ce_main.pas index b5fe77e0..71ab1bda 100644 --- a/src/ce_main.pas +++ b/src/ce_main.pas @@ -464,6 +464,7 @@ type fAlwaysUseDest: boolean; fDscanUnittests: boolean; fAutoSaveProjectFiles: boolean; + fFlatLook: boolean; function getAdditionalPATH: string; procedure setAdditionalPATH(const value: string); function getDubCompiler: TCECompiler; @@ -473,6 +474,7 @@ type function getNativeProjecCompiler: TCECompiler; procedure setNativeProjecCompiler(value: TCECompiler); procedure setRunnableDestination(const value: TCEPathname); + procedure setFlatLook(value: boolean); published property additionalPATH: string read getAdditionalPATH write setAdditionalPath; property coverModuleTests: boolean read fCovModUt write fCovModUt; @@ -487,6 +489,8 @@ type property runnableDestinationAlways: boolean read fAlwaysUseDest write fAlwaysUseDest; property dscanUnittests: boolean read fDscanUnittests write fDscanUnittests default true; 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 property dcdPort: word read fDcdPort write fDcdPort stored false; @@ -570,6 +574,11 @@ begin fRunnableDest += DirectorySeparator; end; +procedure TCEApplicationOptionsBase.setFlatLook(value: boolean); +begin + fFlatLook := value; +end; + function TCEApplicationOptionsBase.getAdditionalPATH: string; begin exit(ce_common.additionalPath); @@ -620,6 +629,7 @@ begin fMaxRecentProjs:= fBackup.fMaxRecentProjs; fReloadLastDocuments:=fBackup.fReloadLastDocuments; fFloatingWidgetOnTop := fBackup.fFloatingWidgetOnTop; + fFlatLook:=fBackup.fFlatLook; CEMainForm.fRunnableDestination := fBackup.fRunnableDest; CEmainForm.fAlwaysUseDest := fBackup.fAlwaysUseDest; CEMainForm.fDscanUnittests := fDscanUnittests; @@ -628,6 +638,8 @@ begin end; procedure TCEApplicationOptions.assignTo(dst: TPersistent); +var + i: integer; begin if dst = CEMainForm then begin @@ -639,6 +651,8 @@ begin CEMainForm.fAlwaysUseDest := fAlwaysUseDest; CEMainForm.fDscanUnittests := fDscanUnittests; DcdWrapper.port:=fDcdPort; + for i := 0 to CEMainForm.fWidgList.Count-1 do + CEMainForm.fWidgList.widget[i].toolbarFlat:=fFlatLook; end else if dst = fBackup then begin fBackup.fMaxRecentDocs:= fMaxRecentDocs; @@ -650,6 +664,7 @@ begin fBackup.fRunnableDest:= fRunnableDest; fBackup.fAlwaysUseDest := fAlwaysUseDest; fBackup.fDscanUnittests:= fDscanUnittests; + fBackup.fFlatLook:= fFlatLook; end else inherited; end; diff --git a/src/ce_messages.lfm b/src/ce_messages.lfm index 2ab98549..66c3b034 100644 --- a/src/ce_messages.lfm +++ b/src/ce_messages.lfm @@ -1,27 +1,28 @@ inherited CEMessagesWidget: TCEMessagesWidget - Left = 708 - Height = 172 - Top = 198 - Width = 763 + Left = 900 + Height = 159 + Top = 226 + Width = 844 Caption = 'Messages' - ClientHeight = 172 - ClientWidth = 763 + ClientHeight = 159 + ClientWidth = 844 inherited Back: TPanel - Height = 172 - Width = 763 - ClientHeight = 172 - ClientWidth = 763 + Height = 159 + Width = 844 + ClientHeight = 159 + ClientWidth = 844 inherited Content: TPanel - Height = 172 - Width = 763 - ClientHeight = 172 - ClientWidth = 763 + Height = 125 + Top = 34 + Width = 844 + ClientHeight = 125 + ClientWidth = 844 PopupMenu = nil object List: TTreeView[0] Left = 2 - Height = 140 - Top = 30 - Width = 759 + Height = 121 + Top = 2 + Width = 840 Align = alClient BorderSpacing.Around = 2 DefaultItemHeight = 16 @@ -44,120 +45,120 @@ inherited CEMessagesWidget: TCEMessagesWidget OnKeyDown = ListKeyDown Options = [tvoAllowMultiselect, tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoThemedDraw] end - object selCtxt: TToolBar[1] - Left = 2 + end + 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 - Top = 2 - Width = 759 - AutoSize = True - BorderSpacing.Around = 2 - ButtonHeight = 24 - ButtonWidth = 100 - ShowCaptions = True - TabOrder = 1 - Wrapable = False - object btnSelAll: TToolButton - Left = 33 - Hint = 'unfiltered messages' - Top = 2 - Caption = 'All' - Down = True - end - object ToolButton2: TToolButton - Left = 133 - Height = 24 - 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 + Top = 1 + Width = 275 + OnAfterFilter = TreeFilterEdit1AfterFilter + ButtonWidth = 23 + NumGlyphs = 1 + Align = alRight + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 1 + MaxLength = 0 + TabOrder = 0 + OnButtonClick = TreeFilterEdit1ButtonClick + FilteredTreeview = List + end + object btnClearCat: TSpeedButton[12] + Left = 1 + Height = 28 + Top = 0 + Width = 28 + Align = alLeft end end end diff --git a/src/ce_messages.pas b/src/ce_messages.pas index ca061c44..13854809 100644 --- a/src/ce_messages.pas +++ b/src/ce_messages.pas @@ -9,7 +9,7 @@ uses EditBtn, lcltype, ce_widget, ActnList, Menus, clipbrd, AnchorDocking, math, TreeFilterEdit, Buttons, process, GraphType, fgl, 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 @@ -59,21 +59,20 @@ type { TCEMessagesWidget } 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; List: TTreeView; - selCtxt: TToolBar; - btnSelAll: TToolButton; - ToolButton1: TToolButton; - ToolButton10: TToolButton; - btnSelMisc: TToolButton; - ToolButton11: TToolButton; - ToolButton2: TToolButton; - btnSelEdit: TToolButton; - ToolButton4: TToolButton; - btnSelProj: TToolButton; - ToolButton8: TToolButton; - btnSelApp: TToolButton; + btnClearCat: TSpeedButton; TreeFilterEdit1: TTreeFilterEdit; procedure ListCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); @@ -160,6 +159,7 @@ type procedure clearbyData(aData: Pointer); procedure scrollToBack; protected + procedure setToolBarFlat(value: boolean); override; procedure updateLoop; override; // function contextName: string; override; @@ -343,6 +343,13 @@ begin inherited; end; +procedure TCEMessagesWidget.setToolBarFlat(value: boolean); +begin + inherited setToolBarFlat(value); + btnClearCat.Flat := value; + TreeFilterEdit1.Flat:=value; +end; + procedure TCEMessagesWidget.listDeletion(Sender: TObject; Node: TTreeNode); var i: integer; @@ -402,8 +409,8 @@ begin // fCtxt := amcAll; btn := TToolButton(Sender); - for i := 0 to selCtxt.ButtonCount-1 do - selCtxt.Buttons[i].Down := selCtxt.Buttons[i] = btn; + for i := 0 to toolbar.ButtonCount-1 do + toolbar.Buttons[i].Down := toolbar.Buttons[i] = btn; if btn = btnSelAll then fCtxt := amcAll else if btn = btnSelEdit then diff --git a/src/ce_miniexplorer.lfm b/src/ce_miniexplorer.lfm index c1903610..637f291e 100644 --- a/src/ce_miniexplorer.lfm +++ b/src/ce_miniexplorer.lfm @@ -1,7 +1,7 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget - Left = 1062 + Left = 1558 Height = 598 - Top = 4 + Top = 110 Width = 343 ActiveControl = lstFav Caption = 'Mini explorer' @@ -14,11 +14,11 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget ClientWidth = 343 inherited Content: TPanel Left = 4 - Height = 590 - Top = 4 + Height = 556 + Top = 38 Width = 335 BorderSpacing.Around = 4 - ClientHeight = 590 + ClientHeight = 556 ClientWidth = 335 object lstFav: TListView[0] Left = 0 @@ -49,18 +49,18 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget end object Panel2: TPanel[2] Left = 0 - Height = 453 + Height = 419 Top = 137 Width = 335 Align = alClient BevelOuter = bvNone - ClientHeight = 453 + ClientHeight = 419 ClientWidth = 335 TabOrder = 2 object Tree: TTreeView Left = 0 Height = 171 - Top = 32 + Top = 0 Width = 335 Align = alTop DefaultItemHeight = 16 @@ -76,15 +76,15 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget Cursor = crVSplit Left = 0 Height = 6 - Top = 203 + Top = 171 Width = 335 Align = alTop ResizeAnchor = akTop end object lstFiles: TListView Left = 0 - Height = 244 - Top = 209 + Height = 242 + Top = 177 Width = 335 Align = alClient AutoSort = False @@ -103,85 +103,61 @@ inherited CEMiniExplorerWidget: TCEMiniExplorerWidget OnEnter = lstFilesEnter OnStartDrag = lstFilesStartDrag end - object Panel1: TPanel - Left = 0 - Height = 28 - Top = 0 - Width = 335 - Align = alTop - BorderSpacing.Bottom = 4 - BevelOuter = bvNone - ClientHeight = 28 - ClientWidth = 335 - TabOrder = 3 - object btnAddFav: TBitBtn - Left = 0 - Height = 28 - Hint = 'add selected folder to favorites' - Top = 0 - Width = 28 - Align = alLeft - Layout = blGlyphBottom - OnClick = btnAddFavClick - Spacing = 0 - TabOrder = 0 - end - object btnEdit: TBitBtn - Left = 84 - Height = 28 - Hint = 'open selected file in as a project or as a source file' - Top = 0 - Width = 28 - Align = alLeft - Layout = blGlyphBottom - OnClick = btnEditClick - Spacing = 0 - TabOrder = 1 - end - object btnShellOpen: TBitBtn - Left = 56 - Height = 28 - Hint = 'open the selected file or folder with the shell' - Top = 0 - Width = 28 - Align = alLeft - Layout = blGlyphBottom - OnClick = btnShellOpenClick - Spacing = 0 - TabOrder = 2 - end - object btnRemFav: TBitBtn - Left = 28 - 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 + inherited toolbar: TCEToolBar + Width = 335 + object btnEdit: TCEToolButton[0] + Left = 85 + Top = 0 + Caption = 'btnEdit' + OnClick = btnEditClick + resourceName = 'PENCIL' + scaledSeparator = False + end + object btnShellOpen: TCEToolButton[1] + Left = 57 + Top = 0 + Caption = 'btnShellOpen' + OnClick = btnShellOpenClick + resourceName = 'FLASH' + scaledSeparator = False + end + object btnRemFav: TCEToolButton[2] + Left = 29 + Top = 0 + Caption = 'btnRemFav' + OnClick = btnRemFavClick + resourceName = 'FOLDER_DELETE' + scaledSeparator = False + end + object btnAddFav: TCEToolButton[3] + Left = 1 + Top = 0 + Caption = 'btnAddFav' + OnClick = btnAddFavClick + resourceName = 'FOLDER_ADD' + scaledSeparator = False + end + object lstFilter: TListFilterEdit[4] + Left = 119 + Height = 26 + Top = 2 + Width = 214 + ButtonWidth = 28 + NumGlyphs = 1 + Align = alClient + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 116 + BorderSpacing.Around = 2 + MaxLength = 0 + TabOrder = 0 end end end inherited contextMenu: TPopupMenu left = 8 - top = 8 + top = 24 end object imgList: TImageList[2] left = 40 diff --git a/src/ce_miniexplorer.pas b/src/ce_miniexplorer.pas index 5d0398a7..ef2f6c1c 100644 --- a/src/ce_miniexplorer.pas +++ b/src/ce_miniexplorer.pas @@ -8,7 +8,7 @@ uses Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus, ComCtrls, Buttons, lcltype, strutils, ce_widget, ce_sharedres, 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 @@ -61,15 +61,14 @@ type { TCEMiniExplorerWidget } TCEMiniExplorerWidget = class(TCEWidget, ICEProjectObserver, ICEMultiDocObserver, ICEExplorer) - btnAddFav: TBitBtn; - btnEdit: TBitBtn; - btnShellOpen: TBitBtn; - btnRemFav: TBitBtn; + btnAddFav: TCEToolButton; + btnEdit: TCEToolButton; + btnRemFav: TCEToolButton; + btnShellOpen: TCEToolButton; imgList: TImageList; lstFilter: TListFilterEdit; lstFiles: TListView; lstFav: TListView; - Panel1: TPanel; Panel2: TPanel; Splitter1: TSplitter; Splitter2: TSplitter; @@ -124,6 +123,8 @@ type function singleServiceName: string; procedure browse(const location: string); function currentLocation: string; + protected + procedure setToolBarFlat(value: boolean); override; public constructor create(aOwner: TComponent); override; destructor destroy; override; @@ -250,11 +251,6 @@ begin // fEditableOptions:= TCEMiniExplorerEditableOptions.create(self); // - AssignPng(btnAddFav, 'FOLDER_ADD'); - AssignPng(btnRemFav, 'FOLDER_DELETE'); - AssignPng(btnShellOpen, 'FLASH'); - AssignPng(btnEdit, 'PENCIL'); - // fFavorites := TStringList.Create; fFavorites.onChange := @favStringsChange; lstFiles.OnDeletion := @lstDeletion; @@ -307,6 +303,12 @@ begin if Item.Data.isNotNil then DisposeStr(PString(Item.Data)); end; + +procedure TCEMiniExplorerWidget.setToolBarFlat(value: boolean); +begin + inherited setToolBarFlat(value); + lstFilter.Flat:=value; +end; {$ENDREGION} {$REGION ICEProjectObserver ----------------------------------------------------} diff --git a/src/ce_optionseditor.pas b/src/ce_optionseditor.pas index a416605f..dbf5cd4f 100644 --- a/src/ce_optionseditor.pas +++ b/src/ce_optionseditor.pas @@ -65,6 +65,7 @@ const constructor TCEOptionEditorWidget.create(aOwner: TComponent); begin inherited; + toolbarVisible:=false; fIsDockable := false; fIsModal:= true; fEdOptsSubj := TCEEditableOptionsSubject.create; diff --git a/src/ce_procinput.pas b/src/ce_procinput.pas index 8da1d92c..ddc8ca1c 100644 --- a/src/ce_procinput.pas +++ b/src/ce_procinput.pas @@ -24,6 +24,8 @@ type procedure btnKillClick(Sender: TObject); procedure btnSendClick(Sender: TObject); procedure txtInpKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + protected + procedure setToolBarFlat(value: boolean); override; private fMruPos: Integer; fMru: TCEMRUList; @@ -67,6 +69,7 @@ begin AssignPng(btnClose, 'PENCIL_DELETE'); AssignPng(btnSend, 'PENCIL_GO'); AssignPng(btnKill, 'CANCEL'); + toolbarVisible:=false; end; destructor TCEProcInputWidget.destroy; @@ -76,6 +79,12 @@ begin fMru.Free; inherited; end; + +procedure TCEProcInputWidget.setToolBarFlat(value: boolean); +begin + inherited; + //btnClose.flat = fToolbarFlat; +end; {$ENDREGION --------------------------------------------------------------------} {$REGION ICEProcInputHandler ---------------------------------------------------} diff --git a/src/ce_projconf.lfm b/src/ce_projconf.lfm index e9b185aa..2889a5b2 100644 --- a/src/ce_projconf.lfm +++ b/src/ce_projconf.lfm @@ -1,7 +1,7 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget - Left = 631 + Left = 1488 Height = 273 - Top = 296 + Top = 349 Width = 445 Caption = 'Native project configuration' ClientHeight = 273 @@ -12,92 +12,24 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget ClientHeight = 273 ClientWidth = 445 inherited Content: TPanel - Height = 273 + Height = 237 Width = 445 - ClientHeight = 273 + ClientHeight = 237 ClientWidth = 445 - object pnlToolBar: TPanel[0] + object Panel2: TPanel[0] Left = 4 - Height = 26 - Top = 2 - 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 + Height = 229 + Top = 4 Width = 437 Align = alClient BorderSpacing.Around = 4 BevelOuter = bvNone - ClientHeight = 237 + ClientHeight = 229 ClientWidth = 437 - TabOrder = 1 + TabOrder = 0 object Tree: TTreeView Left = 0 - Height = 237 + Height = 229 Hint = 'filter configuration elements' Top = 0 Width = 160 @@ -132,14 +64,14 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget end object Splitter1: TSplitter Left = 160 - Height = 237 + Height = 229 Top = 0 Width = 5 AutoSnap = False end object inspector: TTIPropertyGrid Left = 165 - Height = 237 + Height = 229 Top = 0 Width = 272 Align = alClient @@ -155,6 +87,57 @@ inherited CEProjectConfigurationWidget: TCEProjectConfigurationWidget 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 inherited contextMenu: TPopupMenu left = 8 diff --git a/src/ce_projconf.pas b/src/ce_projconf.pas index a9557601..d37b2997 100644 --- a/src/ce_projconf.pas +++ b/src/ce_projconf.pas @@ -8,21 +8,20 @@ uses Classes, SysUtils, FileUtil, RTTIGrids, RTTICtrls, Forms, Controls, Graphics, Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus, Buttons, rttiutils, typinfo, 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 { TCEProjectConfigurationWidget } TCEProjectConfigurationWidget = class(TCEWidget, ICEProjectObserver) - btnSyncEdit: TSpeedButton; + btnAddConf: TCEToolButton; + btnCLoneConf: TCEToolButton; + btnDelConf: TCEToolButton; + btnSyncEdit: TCEToolButton; imgList: TImageList; Panel2: TPanel; selConf: TComboBox; - pnlToolBar: TPanel; - btnAddConf: TSpeedButton; - btnDelConf: TSpeedButton; - btnCloneConf: TSpeedButton; Splitter1: TSplitter; inspector: TTIPropertyGrid; Tree: TTreeView; @@ -67,11 +66,6 @@ constructor TCEProjectConfigurationWidget.create(aOwner: TComponent); begin inherited; // - AssignPng(btnAddConf, 'COG_ADD'); - AssignPng(btnDelConf, 'COG_DELETE'); - AssignPng(btnCloneConf, 'COG_GO'); - AssignPng(btnSyncEdit, 'LINK_BREAK'); - // fSynchroItem := TStringList.Create; fSynchroValue := TStringList.Create; Tree.Selected := Tree.Items.GetLastNode; @@ -174,11 +168,13 @@ end; procedure TCEProjectConfigurationWidget.setSyncroMode(aValue: boolean); begin - if fSyncroMode = aValue then exit; - // + if fSyncroMode = aValue then + exit; fSyncroMode := aValue; - if fSyncroMode then AssignPng(btnSyncEdit, 'LINK') - else AssignPng(btnSyncEdit, 'LINK_BREAK'); + if fSyncroMode then + btnSyncEdit.resourceName := 'LINK' + else + btnSyncEdit.resourceName := 'LINK_BREAK'; end; function TCEProjectConfigurationWidget.syncroSetPropAsString(const ASection, Item, Default: string): string; diff --git a/src/ce_projgroup.lfm b/src/ce_projgroup.lfm index a7b28fcb..c462b0af 100644 --- a/src/ce_projgroup.lfm +++ b/src/ce_projgroup.lfm @@ -12,75 +12,15 @@ inherited CEProjectGroupWidget: TCEProjectGroupWidget ClientHeight = 195 ClientWidth = 328 inherited Content: TPanel - Height = 195 + Height = 159 Width = 328 - ClientHeight = 195 + ClientHeight = 159 ClientWidth = 328 - object Panel1: TPanel[0] + object lstProj: TListView[0] Left = 4 - Height = 26 + Height = 121 Top = 4 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 AutoSort = False BorderSpacing.Around = 4 @@ -88,74 +28,105 @@ inherited CEProjectGroupWidget: TCEProjectGroupWidget item AutoSize = True Caption = 'Name' - Width = 44 + Width = 47 end item AutoSize = True Caption = 'Type' - Width = 38 + Width = 39 end item AutoSize = True Caption = 'Configuration' - Width = 86 + Width = 230 end> GridLines = True ReadOnly = True ScrollBars = ssAutoBoth - TabOrder = 1 + TabOrder = 0 ViewStyle = vsReport OnDblClick = lstProjDblClick end - object Panel2: TPanel[2] + object Panel2: TPanel[1] Left = 4 Height = 26 - Top = 165 + Top = 129 Width = 320 Align = alBottom BorderSpacing.Around = 4 BevelOuter = bvNone ClientHeight = 26 ClientWidth = 320 - TabOrder = 2 - object btnFreeFocus: TBitBtn - Left = 262 - Height = 24 + TabOrder = 1 + object btnFreeFocus: TSpeedButton + Left = 264 + Height = 26 Hint = 'Put the focus on the ungrouped project' - Top = 1 + Top = 0 Width = 28 Align = alRight - BorderSpacing.Around = 1 Layout = blGlyphBottom - OnClick = btnFreeFocusClick Spacing = 0 - TabOrder = 0 + OnClick = btnFreeFocusClick end object StaticText1: TStaticText Left = 2 Height = 22 Top = 2 - Width = 258 + Width = 260 Align = alClient BorderSpacing.Around = 2 BorderStyle = sbsSunken - TabOrder = 1 + TabOrder = 0 end - object btnAddUnfocused: TBitBtn - Left = 291 - Height = 24 + object btnAddUnfocused: TSpeedButton + Left = 292 + Height = 26 Hint = 'Put the ungrouped project in the group' - Top = 1 + Top = 0 Width = 28 Align = alRight - BorderSpacing.Around = 1 Layout = blGlyphBottom - OnClick = btnAddUnfocusedClick Spacing = 0 - TabOrder = 2 + OnClick = btnAddUnfocusedClick 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 inherited contextMenu: TPopupMenu left = 272 diff --git a/src/ce_projgroup.pas b/src/ce_projgroup.pas index 48618791..c8e77735 100644 --- a/src/ce_projgroup.pas +++ b/src/ce_projgroup.pas @@ -7,7 +7,7 @@ uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, ExtCtrls, Menus, Buttons, dialogs, ComCtrls, StdCtrls, 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 @@ -76,14 +76,13 @@ type { TCEProjectGroupWidget } TCEProjectGroupWidget = class(TCEWidget, ICEProjectObserver) - BtnAddProj: TBitBtn; - btnAddUnfocused: TBitBtn; - btnMoveDown: TBitBtn; - btnMoveUp: TBitBtn; - btnFreeFocus: TBitBtn; - btnRemProj: TBitBtn; + BtnAddProj: TCEToolButton; + btnAddUnfocused: TSpeedButton; + btnFreeFocus: TSpeedButton; + btnMoveDown: TCEToolButton; + btnMoveUp: TCEToolButton; + btnRemProj: TCEToolButton; lstProj: TListView; - Panel1: TPanel; Panel2: TPanel; StaticText1: TStaticText; procedure btnAddUnfocusedClick(Sender: TObject); @@ -109,6 +108,7 @@ type procedure handleChanged(sender: TObject); protected procedure DoShow; override; + procedure setToolBarFlat(value: boolean); override; public constructor create(aOwner: TCOmponent); override; destructor destroy; override; @@ -311,10 +311,6 @@ end; constructor TCEProjectGroupWidget.create(aOwner: TCOmponent); begin inherited; - AssignPng(btnMoveUp, 'ARROW_UP'); - AssignPng(btnMoveDown, 'ARROW_DOWN'); - AssignPng(BtnAddProj, 'DOCUMENT_ADD'); - AssignPng(btnRemProj, 'DOCUMENT_DELETE'); AssignPng(btnFreeFocus, 'PENCIL'); AssignPng(btnAddUnfocused, 'DOCUMENT_ADD'); projectGroup.onChanged:= @handleChanged; @@ -332,6 +328,13 @@ begin inherited; updateList; end; + +procedure TCEProjectGroupWidget.setToolBarFlat(value: boolean); +begin + inherited setToolBarFlat(value); + btnFreeFocus.flat := value; + btnAddUnfocused.flat := value; +end; {$ENDREGION} {$REGION Widget ICEProjectObserver ---------------------------------------------} diff --git a/src/ce_projinspect.lfm b/src/ce_projinspect.lfm index 3a61059e..a096d158 100644 --- a/src/ce_projinspect.lfm +++ b/src/ce_projinspect.lfm @@ -1,7 +1,7 @@ inherited CEProjectInspectWidget: TCEProjectInspectWidget - Left = 960 + Left = 1575 Height = 258 - Top = 260 + Top = 91 Width = 341 ActiveControl = Tree AllowDropFiles = True @@ -15,15 +15,15 @@ inherited CEProjectInspectWidget: TCEProjectInspectWidget ClientHeight = 258 ClientWidth = 341 inherited Content: TPanel - Height = 258 + Height = 222 Width = 341 - ClientHeight = 258 + ClientHeight = 222 ClientWidth = 341 PopupMenu = nil object Tree: TTreeView[0] Left = 2 - Height = 226 - Top = 30 + Height = 218 + Top = 2 Width = 337 Align = alClient AutoExpand = True @@ -51,71 +51,56 @@ inherited CEProjectInspectWidget: TCEProjectInspectWidget 20736F7572636573 } end - object pnlToolBar: TPanel[1] - Left = 2 + end + 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 Top = 2 - Width = 337 - Align = alTop + Width = 214 + ButtonWidth = 28 + NumGlyphs = 1 + Align = alClient + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Left = 114 BorderSpacing.Around = 2 - BevelOuter = bvNone - ClientHeight = 26 - ClientWidth = 337 - TabOrder = 1 - 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 + MaxLength = 0 + TabOrder = 0 + FilteredTreeview = Tree + ExpandAllInitially = True end end end diff --git a/src/ce_projinspect.pas b/src/ce_projinspect.pas index ac57f2b9..1a80ad65 100644 --- a/src/ce_projinspect.pas +++ b/src/ce_projinspect.pas @@ -7,19 +7,18 @@ interface uses Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, actnlist, 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 { TCEProjectInspectWidget } TCEProjectInspectWidget = class(TCEWidget, ICEProjectObserver) - btnRemFold: TSpeedButton; + btnAddFile: TCEToolButton; + btnAddFold: TCEToolButton; + btnRemFile: TCEToolButton; + btnRemFold: TCEToolButton; imgList: TImageList; - pnlToolBar: TPanel; - btnAddFile: TSpeedButton; - btnAddFold: TSpeedButton; - btnRemFile: TSpeedButton; Tree: TTreeView; TreeFilterEdit1: TTreeFilterEdit; procedure btnAddFileClick(Sender: TObject); @@ -34,6 +33,7 @@ type procedure updateImperative; override; procedure updateDelayed; override; procedure SetVisible(Value: boolean); override; + procedure setToolBarFlat(value: boolean); override; private fActOpenFile: TAction; fActSelConf: TAction; @@ -86,11 +86,6 @@ begin // inherited; // - AssignPng(btnAddFile, 'DOCUMENT_ADD'); - AssignPng(btnRemFile, 'DOCUMENT_DELETE'); - AssignPng(btnAddFold, 'FOLDER_ADD'); - AssignPng(btnRemFold, 'FOLDER_DELETE'); - // Tree.OnDblClick := @TreeDblClick; fFileNode := Tree.Items[0]; fConfNode := Tree.Items[1]; @@ -114,6 +109,12 @@ begin inherited; if Value then updateImperative; end; + +procedure TCEProjectInspectWidget.setToolBarFlat(value: boolean); +begin + inherited setToolBarFlat(value); + TreeFilterEdit1.Flat:=value; +end; {$ENDREGION} {$REGION ICEContextualActions---------------------------------------------------} diff --git a/src/ce_search.pas b/src/ce_search.pas index 57d53c8e..d1654651 100644 --- a/src/ce_search.pas +++ b/src/ce_search.pas @@ -200,6 +200,7 @@ var fname: string; begin inherited; + toolbarVisible:=false; fActFindNext := TAction.Create(self); fActFindNext.Caption := 'Find'; fActFindNext.OnExecute := @actFindNextExecute; diff --git a/src/ce_symlist.lfm b/src/ce_symlist.lfm index 3c6c8803..6e960493 100644 --- a/src/ce_symlist.lfm +++ b/src/ce_symlist.lfm @@ -1,27 +1,27 @@ inherited CESymbolListWidget: TCESymbolListWidget - Left = 984 + Left = 1515 Height = 430 - Top = 189 - Width = 310 + Top = 270 + Width = 382 Caption = 'Symbol list' ClientHeight = 430 - ClientWidth = 310 + ClientWidth = 382 inherited Back: TPanel Height = 430 - Width = 310 + Width = 382 ClientHeight = 430 - ClientWidth = 310 + ClientWidth = 382 inherited Content: TPanel - Height = 430 - Width = 310 - ClientHeight = 430 - ClientWidth = 310 + Height = 396 + Width = 382 + ClientHeight = 396 + ClientWidth = 382 PopupMenu = nil object Tree: TTreeView[0] Left = 4 - Height = 390 - Top = 36 - Width = 302 + Height = 388 + Top = 4 + Width = 374 Align = alClient BorderSpacing.Around = 4 DefaultItemHeight = 16 @@ -55,48 +55,33 @@ inherited CESymbolListWidget: TCESymbolListWidget } TreeLineColor = clDefault end - object Panel1: TPanel[1] - Left = 2 - Height = 30 + end + inherited toolbar: TCEToolBar + 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 - Width = 306 - Align = alTop + Width = 343 + OnAfterFilter = TreeFilterEdit1AfterFilter + OnFilterItem = TreeFilterEdit1FilterItem + ButtonWidth = 28 + NumGlyphs = 1 + Align = alClient + BorderSpacing.Left = 30 BorderSpacing.Around = 2 - BevelOuter = bvNone - ClientHeight = 30 - ClientWidth = 306 - PopupMenu = contextMenu - 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 + MaxLength = 0 + TabOrder = 0 + OnMouseEnter = TreeFilterEdit1MouseEnter + FilteredTreeview = Tree end end end diff --git a/src/ce_symlist.pas b/src/ce_symlist.pas index 24620581..88aa895b 100644 --- a/src/ce_symlist.pas +++ b/src/ce_symlist.pas @@ -8,7 +8,7 @@ uses Classes, SysUtils, TreeFilterEdit, Forms, Controls, Graphics, ExtCtrls, Menus, ComCtrls, ce_widget, jsonparser, process, actnlist, Buttons, Clipbrd, LCLProc, ce_common, ce_observer, ce_synmemo, ce_interfaces, ce_writableComponent, - ce_processes, ce_sharedres; + ce_processes, ce_sharedres, ce_dsgncontrols; type @@ -106,9 +106,8 @@ type { TCESymbolListWidget } TCESymbolListWidget = class(TCEWidget, ICEMultiDocObserver, ICEEditableOptions) - btnRefresh: TBitBtn; + btnRefresh: TCEToolButton; imgList: TImageList; - Panel1: TPanel; Tree: TTreeView; TreeFilterEdit1: TTreeFilterEdit; procedure btnRefreshClick(Sender: TObject); @@ -175,6 +174,7 @@ type function contextAction(index: integer): TAction; override; // procedure SetVisible(Value: boolean); override; + procedure setToolBarFlat(value: boolean); override; published property autoRefresh: boolean read fAutoRefresh write fAutoRefresh; property refreshOnChange: boolean read fRefreshOnChange write fRefreshOnChange; @@ -380,8 +380,6 @@ begin ndWarn := Tree.Items[12]; ndErr := Tree.Items[13]; // - AssignPng(btnRefresh, 'ARROW_UPDATE'); - // Tree.OnDblClick := @TreeDblClick; Tree.PopupMenu := contextMenu; // @@ -409,6 +407,12 @@ begin if Value then callToolProc; end; + +procedure TCESymbolListWidget.setToolBarFlat(value: boolean); +begin + inherited setToolbarFlat(value); + TreeFilterEdit1.Flat:=value; +end; {$ENDREGION} {$REGION ICEContextualActions---------------------------------------------------} diff --git a/src/ce_todolist.lfm b/src/ce_todolist.lfm index 1aea137a..3fe79bf3 100644 --- a/src/ce_todolist.lfm +++ b/src/ce_todolist.lfm @@ -3,7 +3,6 @@ inherited CETodoListWidget: TCETodoListWidget Height = 337 Top = 196 Width = 584 - ActiveControl = btnRefresh Caption = 'Todo list' ClientHeight = 337 ClientWidth = 584 @@ -13,64 +12,14 @@ inherited CETodoListWidget: TCETodoListWidget ClientHeight = 337 ClientWidth = 584 inherited Content: TPanel - Height = 337 + Height = 301 Width = 584 - ClientHeight = 337 + ClientHeight = 301 ClientWidth = 584 - object Panel1: TPanel[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] + object lstItems: TListView[0] Left = 4 - Height = 297 - Top = 36 + Height = 293 + Top = 4 Width = 576 Align = alClient BorderSpacing.Around = 4 @@ -107,10 +56,41 @@ inherited CETodoListWidget: TCETodoListWidget end> ReadOnly = True SortType = stText - TabOrder = 1 + TabOrder = 0 ViewStyle = vsReport 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 inherited contextMenu: TPopupMenu left = 40 diff --git a/src/ce_todolist.pas b/src/ce_todolist.pas index 9c9f2792..97cb8be3 100644 --- a/src/ce_todolist.pas +++ b/src/ce_todolist.pas @@ -8,7 +8,8 @@ uses Classes, SysUtils, FileUtil, ListFilterEdit, Forms, Controls, strutils, Graphics, Dialogs, ExtCtrls, Menus, Buttons, ComCtrls, 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 @@ -75,12 +76,11 @@ type { TCETodoListWidget } TCETodoListWidget = class(TCEWidget, ICEMultiDocObserver, ICEProjectObserver, ICEEditableOptions) - btnRefresh: TBitBtn; - btnGo: TBitBtn; + btnGo: TCEToolButton; + btnRefresh: TCEToolButton; lstItems: TListView; lstfilter: TListFilterEdit; mnuAutoRefresh: TMenuItem; - Panel1: TPanel; procedure handleListClick(Sender: TObject); procedure mnuAutoRefreshClick(Sender: TObject); private @@ -129,6 +129,7 @@ type procedure refreshVisibleColumns; protected procedure SetVisible(Value: boolean); override; + procedure setToolBarFlat(value: boolean); override; public constructor Create(aOwner: TComponent); override; destructor Destroy; override; @@ -221,9 +222,6 @@ begin lstfilter.OnChange := @filterItems; btnGo.OnClick := @handleListClick; // - AssignPng(btnRefresh, 'ARROW_UPDATE'); - AssignPng(btnGo, 'ARROW_PEN'); - // fname := getCoeditDocPath + OptFname; if fname.fileExists then fOptions.loadFromFile(fname); @@ -247,6 +245,11 @@ begin refreshVisibleColumns; end; +procedure TCETodoListWidget.setToolBarFlat(value: boolean); +begin + inherited setToolBarFlat(value); + lstfilter.Flat:=value; +end; {$ENDREGION} {$REGION ICEEditableOptions ----------------------------------------------------} diff --git a/src/ce_toolseditor.lfm b/src/ce_toolseditor.lfm index 4e67c312..a7e026f6 100644 --- a/src/ce_toolseditor.lfm +++ b/src/ce_toolseditor.lfm @@ -1,7 +1,7 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget - Left = 1434 + Left = 1395 Height = 280 - Top = 688 + Top = 216 Width = 441 Caption = 'Tools editor' ClientHeight = 280 @@ -12,127 +12,44 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget ClientHeight = 280 ClientWidth = 441 inherited Content: TPanel - Height = 280 + Height = 244 Width = 441 - ClientHeight = 280 + ClientHeight = 244 ClientWidth = 441 - object Panel1: TPanel[0] + object Panel2: TPanel[0] Left = 4 - Height = 26 + Height = 236 Top = 4 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 BorderSpacing.Around = 4 BevelOuter = bvNone - ClientHeight = 242 + ClientHeight = 236 ClientWidth = 433 - TabOrder = 1 + TabOrder = 0 object lstTools: TListBox Left = 0 - Height = 242 + Height = 236 Top = 0 Width = 160 Align = alLeft ItemHeight = 0 OnDblClick = lstToolsDblClick OnSelectionChange = lstToolsSelectionChange - ScrollWidth = 158 + ScrollWidth = 156 TabOrder = 0 + TopIndex = -1 end object Splitter1: TSplitter Left = 160 - Height = 242 + Height = 236 Top = 0 Width = 5 AutoSnap = False end object propsEd: TTIPropertyGrid Left = 165 - Height = 242 + Height = 236 Top = 0 Width = 268 Align = alClient @@ -148,6 +65,66 @@ inherited CEToolsEditorWidget: TCEToolsEditorWidget 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 inherited contextMenu: TPopupMenu left = 16 diff --git a/src/ce_toolseditor.pas b/src/ce_toolseditor.pas index 5a9d151e..7454080b 100644 --- a/src/ce_toolseditor.pas +++ b/src/ce_toolseditor.pas @@ -6,20 +6,20 @@ interface uses 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 { TCEToolsEditorWidget } TCEToolsEditorWidget = class(TCEWidget) - BtnAddTool: TBitBtn; - btnMoveDown: TBitBtn; - btnMoveUp: TBitBtn; - btnClone: TBitBtn; - btnRemTool: TBitBtn; - btnRun: TBitBtn; + btnAddTool: TCEToolButton; + btnClone: TCEToolButton; + btnMoveDown: TCEToolButton; + btnMoveUp: TCEToolButton; + btnRemTool: TCEToolButton; + btnRun: TCEToolButton; lstTools: TListBox; - Panel1: TPanel; Panel2: TPanel; Splitter1: TSplitter; propsEd: TTIPropertyGrid; @@ -47,14 +47,6 @@ implementation constructor TCEToolsEditorWidget.create(aOwner: TComponent); begin 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; rebuildToolList; end; diff --git a/src/ce_widget.lfm b/src/ce_widget.lfm index 3c1a9711..4e86455f 100644 --- a/src/ce_widget.lfm +++ b/src/ce_widget.lfm @@ -1,7 +1,7 @@ object CEWidget: TCEWidget - Left = 1158 + Left = 1360 Height = 121 - Top = 65 + Top = 144 Width = 332 BorderIcons = [biMinimize, biMaximize] Caption = 'CEWidget' @@ -23,14 +23,32 @@ object CEWidget: TCEWidget TabOrder = 0 object Content: TPanel Left = 0 - Height = 121 - Top = 0 + Height = 85 + Top = 36 Width = 332 Align = alClient BevelOuter = bvNone PopupMenu = contextMenu TabOrder = 0 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 object contextMenu: TPopupMenu end diff --git a/src/ce_widget.pas b/src/ce_widget.pas index 20a0b6ed..936bb36d 100644 --- a/src/ce_widget.pas +++ b/src/ce_widget.pas @@ -6,7 +6,7 @@ interface uses Classes, SysUtils, FileUtil, Forms, Controls, ExtCtrls, ActnList, Menus, - AnchorDocking, ce_interfaces; + AnchorDocking, ce_interfaces, ce_dsgncontrols; type @@ -14,7 +14,11 @@ type * Base type for an UI module. *) PTCEWidget = ^TCEWidget; + + { TCEWidget } + TCEWidget = class(TForm, ICEContextualActions) + toolbar: TCEToolBar; Content: TPanel; Back: TPanel; contextMenu: TPopupMenu; @@ -33,6 +37,8 @@ type protected fIsDockable: boolean; fIsModal: boolean; + fToolBarFlat: boolean; + fToolBarVisible: boolean; // a descendant overrides to implement a periodic update. procedure updateLoop; virtual; // a descendant overrides to implement an imperative update. @@ -45,6 +51,9 @@ type function contextAction(index: integer): TAction; virtual; // function getIfModal: boolean; + // + procedure setToolBarVisible(value: boolean); virtual; + procedure setToolBarFlat(value: boolean); virtual; published property updaterByLoopInterval: Integer read fLoopInter write setLoopInt; property updaterByDelayDuration: Integer read fDelayDur write setDelayDur; @@ -81,6 +90,9 @@ type property isDockable: boolean read fIsDockable; // not if isDockable, otherwise a the widget is shown as modal form. property isModal: boolean read getIfModal; + + property toolbarFlat: boolean read fToolBarFlat write setToolBarFlat; + property toolbarVisible: boolean read fToolBarVisible write setToolBarVisible; end; (** @@ -112,6 +124,8 @@ implementation uses ce_observer; +//TODO-cNewToolbar: button hints have not been copied + {$REGION Standard Comp/Obj------------------------------------------------------} constructor TCEWidget.create(aOwner: TComponent); var @@ -119,6 +133,7 @@ var itm: TmenuItem; begin inherited; + fToolBarVisible := true; fIsDockable := true; fUpdaterAuto := TTimer.Create(self); fUpdaterAuto.Interval := 70; @@ -180,6 +195,22 @@ begin 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} {$REGION ICEContextualActions---------------------------------------------------}