From c7b5612c6ca36107be6ad492b7a4f03b910e112e Mon Sep 17 00:00:00 2001 From: ask Date: Sun, 1 Aug 2010 11:17:33 +0000 Subject: [PATCH] TAChart: Use toolbar instead of menu in subcomponent editor to improve interface in Macs git-svn-id: trunk@26963 - --- components/tachart/tasubcomponentseditor.lfm | 52 ++++++++---- components/tachart/tasubcomponentseditor.pas | 87 +++++++++++--------- 2 files changed, 85 insertions(+), 54 deletions(-) diff --git a/components/tachart/tasubcomponentseditor.lfm b/components/tachart/tasubcomponentseditor.lfm index 21919efebc..ba11e62f8b 100644 --- a/components/tachart/tasubcomponentseditor.lfm +++ b/components/tachart/tasubcomponentseditor.lfm @@ -4,17 +4,17 @@ object ComponentListEditorForm: TComponentListEditorForm Top = 283 Width = 320 Caption = 'ComponentListEditorForm' - ClientHeight = 221 + ClientHeight = 240 ClientWidth = 320 - Menu = MainMenu1 OnClose = FormClose + OnCreate = FormCreate OnDestroy = FormDestroy Position = poScreenCenter LCLVersion = '0.9.29' object ChildrenListBox: TListBox Left = 0 - Height = 221 - Top = 0 + Height = 198 + Top = 42 Width = 320 Align = alClient ItemHeight = 0 @@ -22,23 +22,43 @@ object ComponentListEditorForm: TComponentListEditorForm OnClick = ChildrenListBoxClick TabOrder = 0 end - object MainMenu1: TMainMenu - left = 88 - top = 160 - object miAdd: TMenuItem + object tbCommands: TToolBar + Left = 0 + Height = 42 + Top = 0 + Width = 320 + AutoSize = True + ButtonHeight = 40 + ButtonWidth = 44 + ShowCaptions = True + TabOrder = 1 + object tbAdd: TToolButton + Left = 1 + Top = 2 Caption = 'Add' + DropdownMenu = menuAddItem end - object miDelete: TMenuItem + object tbDelete: TToolButton + Left = 45 + Top = 2 Caption = 'Delete' - OnClick = miDeleteClick + OnClick = tbDeleteClick end - object miMoveUp: TMenuItem - Caption = 'Move up' - OnClick = miMoveUpClick + object tbMoveUp: TToolButton + Left = 89 + Top = 2 + Caption = 'Up' + OnClick = tbMoveUpClick end - object miMoveDown: TMenuItem - Caption = 'Move down' - OnClick = miMoveDownClick + object tbMoveDown: TToolButton + Left = 133 + Top = 2 + Caption = 'Down' + OnClick = tbMoveDownClick end end + object menuAddItem: TPopupMenu + left = 88 + top = 96 + end end diff --git a/components/tachart/tasubcomponentseditor.pas b/components/tachart/tasubcomponentseditor.pas index 44869a4f21..8e3402dff4 100644 --- a/components/tachart/tasubcomponentseditor.pas +++ b/components/tachart/tasubcomponentseditor.pas @@ -20,7 +20,7 @@ unit TASubcomponentsEditor; interface uses - Classes, ComponentEditors, Forms, Menus, PropEdits, StdCtrls; + Classes, ComCtrls, ComponentEditors, Forms, Menus, PropEdits, StdCtrls; type @@ -56,18 +56,20 @@ type TComponentListEditorForm = class(TForm) ChildrenListBox: TListBox; - MainMenu1: TMainMenu; - miMoveUp: TMenuItem; - miMoveDown: TMenuItem; - miAdd: TMenuItem; - miDelete: TMenuItem; + menuAddItem: TPopupMenu; + tbCommands: TToolBar; + tbAdd: TToolButton; + tbDelete: TToolButton; + tbMoveUp: TToolButton; + tbMoveDown: TToolButton; procedure ChildrenListBoxClick(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); + procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure miAddClick(Sender: TObject); - procedure miDeleteClick(Sender: TObject); - procedure miMoveDownClick(Sender: TObject); - procedure miMoveUpClick(Sender: TObject); + procedure tbDeleteClick(Sender: TObject); + procedure tbMoveDownClick(Sender: TObject); + procedure tbMoveUpClick(Sender: TObject); private FComponentEditor: TSubComponentListEditor; FDesigner: TComponentEditorDesigner; @@ -101,7 +103,7 @@ type implementation uses - Math, SysUtils, TAChartUtils; + IDEImagesIntf, Math, SysUtils, TAChartUtils; {$R *.lfm} @@ -173,7 +175,7 @@ begin mi.OnClick := @miAddClick; mi.Caption := ACaption; mi.Tag := ATag; - miAdd.Add(mi); + menuAddItem.Items.Add(mi); end; procedure TComponentListEditorForm.ChildrenListBoxClick(Sender: TObject); @@ -223,6 +225,15 @@ begin CloseAction := caFree; end; +procedure TComponentListEditorForm.FormCreate(Sender: TObject); +begin + tbCommands.Images := IDEImages.Images_16; + tbAdd.ImageIndex := IDEImages.LoadImage(16, 'laz_add'); + tbDelete.ImageIndex := IDEImages.LoadImage(16, 'laz_delete'); + tbMoveDown.ImageIndex := IDEImages.LoadImage(16, 'arrow_down'); + tbMoveUp.ImageIndex := IDEImages.LoadImage(16, 'arrow_up'); +end; + procedure TComponentListEditorForm.FormDestroy(Sender: TObject); begin if FComponentEditor <> nil then begin @@ -258,33 +269,6 @@ begin end; end; -procedure TComponentListEditorForm.miDeleteClick(Sender: TObject); -var - i: Integer; - s: TComponent; -begin - if ChildrenListBox.SelCount = 0 then exit; - for i := ChildrenListBox.Items.Count - 1 downto 0 do - if ChildrenListBox.Selected[i] then begin - s := TComponent(ChildrenListBox.Items.Objects[i]); - ChildrenListBox.Items.Delete(i); - FDesigner.PropertyEditorHook.PersistentDeleting(s); - s.Free; - end; - FDesigner.Modified; - SelectionChanged; -end; - -procedure TComponentListEditorForm.miMoveDownClick(Sender: TObject); -begin - MoveSelection(ChildrenListBox.Count - 1, 1); -end; - -procedure TComponentListEditorForm.miMoveUpClick(Sender: TObject); -begin - MoveSelection(0, -1); -end; - procedure TComponentListEditorForm.MoveSelection(AStart, ADir: Integer); var i: Integer; @@ -399,5 +383,32 @@ begin end; end; +procedure TComponentListEditorForm.tbDeleteClick(Sender: TObject); +var + i: Integer; + s: TComponent; +begin + if ChildrenListBox.SelCount = 0 then exit; + for i := ChildrenListBox.Items.Count - 1 downto 0 do + if ChildrenListBox.Selected[i] then begin + s := TComponent(ChildrenListBox.Items.Objects[i]); + ChildrenListBox.Items.Delete(i); + FDesigner.PropertyEditorHook.PersistentDeleting(s); + s.Free; + end; + FDesigner.Modified; + SelectionChanged; +end; + +procedure TComponentListEditorForm.tbMoveDownClick(Sender: TObject); +begin + MoveSelection(ChildrenListBox.Count - 1, 1); +end; + +procedure TComponentListEditorForm.tbMoveUpClick(Sender: TObject); +begin + MoveSelection(0, -1); +end; + end.