From cda0e731b5c877df2570f324ce54a1c654376add Mon Sep 17 00:00:00 2001 From: dodi Date: Tue, 10 Nov 2009 11:24:09 +0000 Subject: [PATCH] dockmanager example: test minimize/restore git-svn-id: trunk@22517 - --- .../dockmanager/elasticsite/feditorsite.lfm | 16 +++++ .../dockmanager/elasticsite/feditorsite.lrs | 61 +++++++++++-------- .../dockmanager/elasticsite/feditorsite.pas | 50 +++++++++++++++ .../dockmanager/package/ffloatingsite.lfm | 1 + .../dockmanager/package/ffloatingsite.lrs | 4 +- 5 files changed, 103 insertions(+), 29 deletions(-) diff --git a/examples/dockmanager/elasticsite/feditorsite.lfm b/examples/dockmanager/elasticsite/feditorsite.lfm index 1f9bf2c760..290e9e42ca 100644 --- a/examples/dockmanager/elasticsite/feditorsite.lfm +++ b/examples/dockmanager/elasticsite/feditorsite.lfm @@ -7,6 +7,7 @@ inherited EditorSite: TEditorSite ClientWidth = 400 Menu = MainMenu1 OnCreate = FormCreate + ShowInTaskBar = stAlways inherited pnlLeft: TPanel Height = 256 end @@ -100,6 +101,21 @@ inherited EditorSite: TEditorSite end end end + object MenuItem14: TMenuItem + Caption = '&Windows' + object mnWindowDump: TMenuItem + Caption = '&Dump' + OnClick = mnWindowDumpClick + end + object mnMinimize: TMenuItem + Caption = 'Minimize all' + OnClick = mnMinimizeClick + end + object mnRestore: TMenuItem + Caption = 'Restore all' + OnClick = mnRestoreClick + end + end end object OpenDialog1: TOpenDialog[8] Filter = '*.pas|*.pas|All Files|*.*' diff --git a/examples/dockmanager/elasticsite/feditorsite.lrs b/examples/dockmanager/elasticsite/feditorsite.lrs index 1e6e2ebcfe..a90aa7448c 100644 --- a/examples/dockmanager/elasticsite/feditorsite.lrs +++ b/examples/dockmanager/elasticsite/feditorsite.lrs @@ -1,31 +1,38 @@ +{ This is an automatically generated lazarus resource file } + LazarusResources.Add('TEditorSite','FORMDATA',[ 'TPF0'#241#11'TEditorSite'#10'EditorSite'#4'Left'#3'b'#1#6'Height'#3','#1#5'W' +'idth'#3#144#1#7'Caption'#6#10'EditorSite'#12'ClientHeight'#3#25#1#11'Client' - +'Width'#3#144#1#4'Menu'#7#9'MainMenu1'#8'OnCreate'#7#10'FormCreate'#0#241#6 - +'TPanel'#7'pnlLeft'#6'Height'#3#0#1#0#0#241#9'TSplitter'#9'splitLeft'#6'Heig' - +'ht'#3#0#1#0#0#241#6'TPanel'#8'pnlRight'#4'Left'#3#144#1#6'Height'#3#0#1#0#0 - +#241#6'TPanel'#9'pnlBottom'#3'Top'#3#4#1#5'Width'#3#144#1#0#0#241#9'TSplitte' - +'r'#10'splitRight'#4'Left'#3#140#1#6'Height'#3#0#1#0#0#241#10'TStatusBar'#10 - +'StatusBar1'#3'Top'#3#5#1#5'Width'#3#144#1#0#0#241#9'TSplitter'#11'splitBott' - +'om'#3'Top'#3#0#1#5'Width'#3#144#1#0#0#242#2#7#9'TMainMenu'#9'MainMenu1'#4'l' - +'eft'#3#240#0#3'top'#2'0'#0#9'TMenuItem'#6'mnFile'#7'Caption'#6#5'&File'#0#9 - +'TMenuItem'#6'mnOpen'#7'Caption'#6#5'&Open'#7'OnClick'#7#11'mnOpenClick'#0#0 - +#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#6'mnExit'#7'Ca' - +'ption'#6#5'E&xit'#7'OnClick'#7#11'mnExitClick'#0#0#0#9'TMenuItem'#6'mnView' - +#7'Caption'#6#5'&View'#0#9'TMenuItem'#9'MenuItem2'#7'Caption'#6#16'Object In' - +'spector'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuItem3'#7'Cap' - +'tion'#6#8'Messages'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuI' - +'tem4'#7'Caption'#6#13'Code Explorer'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'T' - +'MenuItem'#9'MenuItem5'#7'Caption'#6#9'ToDo List'#7'OnClick'#7#13'ViewMenuCl' - +'ick'#0#0#9'TMenuItem'#9'MenuItem6'#7'Caption'#6#13'Debug windows'#0#9'TMenu' - +'Item'#9'MenuItem7'#7'Caption'#6#7'Watches'#7'OnClick'#7#13'ViewMenuClick'#0 - +#0#9'TMenuItem'#9'MenuItem8'#7'Caption'#6#11'BreakPoints'#7'OnClick'#7#13'Vi' - +'ewMenuClick'#0#0#9'TMenuItem'#9'MenuItem9'#7'Caption'#6#15'Local Variables' - +#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#10'MenuItem10'#7'Caption'#6 - +#9'Registers'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#10'MenuItem11' - +#7'Caption'#6#10'Call Stack'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem' - +#10'MenuItem12'#7'Caption'#6#9'Assembler'#7'OnClick'#7#13'ViewMenuClick'#0#0 - +#9'TMenuItem'#10'MenuItem13'#7'Caption'#6#12'Debug Output'#7'OnClick'#7#13'V' - +'iewMenuClick'#0#0#0#0#0#242#2#8#11'TOpenDialog'#11'OpenDialog1'#6'Filter'#6 - +#25'*.pas|*.pas|All Files|*.*'#4'left'#3'5'#1#3'top'#2'0'#0#0#0 + +'Width'#3#144#1#4'Menu'#7#9'MainMenu1'#8'OnCreate'#7#10'FormCreate'#13'ShowI' + +'nTaskBar'#7#8'stAlways'#0#241#6'TPanel'#7'pnlLeft'#6'Height'#3#0#1#0#0#241#9 + +'TSplitter'#9'splitLeft'#6'Height'#3#0#1#0#0#241#6'TPanel'#8'pnlRight'#4'Lef' + +'t'#3#144#1#6'Height'#3#0#1#0#0#241#6'TPanel'#9'pnlBottom'#3'Top'#3#4#1#5'Wi' + +'dth'#3#144#1#0#0#241#9'TSplitter'#10'splitRight'#4'Left'#3#140#1#6'Height'#3 + +#0#1#0#0#241#10'TStatusBar'#10'StatusBar1'#3'Top'#3#5#1#5'Width'#3#144#1#0#0 + +#241#9'TSplitter'#11'splitBottom'#3'Top'#3#0#1#5'Width'#3#144#1#0#0#242#2#7#9 + +'TMainMenu'#9'MainMenu1'#4'left'#3#240#0#3'top'#2'0'#0#9'TMenuItem'#6'mnFile' + +#7'Caption'#6#5'&File'#0#9'TMenuItem'#6'mnOpen'#7'Caption'#6#5'&Open'#7'OnCl' + +'ick'#7#11'mnOpenClick'#0#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#1'-'#0#0#9 + +'TMenuItem'#6'mnExit'#7'Caption'#6#5'E&xit'#7'OnClick'#7#11'mnExitClick'#0#0 + +#0#9'TMenuItem'#6'mnView'#7'Caption'#6#5'&View'#0#9'TMenuItem'#9'MenuItem2'#7 + +'Caption'#6#16'Object Inspector'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuI' + +'tem'#9'MenuItem3'#7'Caption'#6#8'Messages'#7'OnClick'#7#13'ViewMenuClick'#0 + +#0#9'TMenuItem'#9'MenuItem4'#7'Caption'#6#13'Code Explorer'#7'OnClick'#7#13 + +'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuItem5'#7'Caption'#6#9'ToDo List'#7'On' + +'Click'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuItem6'#7'Caption'#6#13'De' + +'bug windows'#0#9'TMenuItem'#9'MenuItem7'#7'Caption'#6#7'Watches'#7'OnClick' + +#7#13'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuItem8'#7'Caption'#6#11'BreakPoin' + +'ts'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#9'MenuItem9'#7'Caption' + +#6#15'Local Variables'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TMenuItem'#10'Me' + +'nuItem10'#7'Caption'#6#9'Registers'#7'OnClick'#7#13'ViewMenuClick'#0#0#9'TM' + +'enuItem'#10'MenuItem11'#7'Caption'#6#10'Call Stack'#7'OnClick'#7#13'ViewMen' + +'uClick'#0#0#9'TMenuItem'#10'MenuItem12'#7'Caption'#6#9'Assembler'#7'OnClick' + +#7#13'ViewMenuClick'#0#0#9'TMenuItem'#10'MenuItem13'#7'Caption'#6#12'Debug O' + +'utput'#7'OnClick'#7#13'ViewMenuClick'#0#0#0#0#9'TMenuItem'#10'MenuItem14'#7 + +'Caption'#6#8'&Windows'#0#9'TMenuItem'#12'mnWindowDump'#7'Caption'#6#5'&Dump' + +#7'OnClick'#7#17'mnWindowDumpClick'#0#0#9'TMenuItem'#10'mnMinimize'#7'Captio' + +'n'#6#12'Minimize all'#7'OnClick'#7#15'mnMinimizeClick'#0#0#9'TMenuItem'#9'm' + +'nRestore'#7'Caption'#6#11'Restore all'#7'OnClick'#7#14'mnRestoreClick'#0#0#0 + +#0#242#2#8#11'TOpenDialog'#11'OpenDialog1'#6'Filter'#6#25'*.pas|*.pas|All Fi' + +'les|*.*'#4'left'#3'5'#1#3'top'#2'0'#0#0#0 ]); diff --git a/examples/dockmanager/elasticsite/feditorsite.pas b/examples/dockmanager/elasticsite/feditorsite.pas index 26ea18cffc..4f1f320e8e 100644 --- a/examples/dockmanager/elasticsite/feditorsite.pas +++ b/examples/dockmanager/elasticsite/feditorsite.pas @@ -41,6 +41,10 @@ type MenuItem11: TMenuItem; MenuItem12: TMenuItem; MenuItem13: TMenuItem; + MenuItem14: TMenuItem; + mnRestore: TMenuItem; + mnMinimize: TMenuItem; + mnWindowDump: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem; MenuItem4: TMenuItem; @@ -57,6 +61,9 @@ type mnOpen: TMenuItem; mnFile: TMenuItem; procedure FormCreate(Sender: TObject); + procedure mnMinimizeClick(Sender: TObject); + procedure mnRestoreClick(Sender: TObject); + procedure mnWindowDumpClick(Sender: TObject); procedure ViewMenuClick(Sender: TObject); procedure mnExitClick(Sender: TObject); procedure mnOpenClick(Sender: TObject); @@ -74,6 +81,7 @@ var implementation uses + LCLProc, fFloatingSite; { TEditorSite } @@ -138,6 +146,16 @@ begin Close; end; +procedure TEditorSite.mnMinimizeClick(Sender: TObject); +begin + self.WindowState := wsMinimized; +end; + +procedure TEditorSite.mnRestoreClick(Sender: TObject); +begin + WindowState := wsNormal; +end; + procedure TEditorSite.mnOpenClick(Sender: TObject); begin if OpenDialog1.Execute then begin @@ -145,6 +163,38 @@ begin end; end; +procedure TEditorSite.mnWindowDumpClick(Sender: TObject); +var + i: integer; + f: TWinControl; + s: string; +begin + DebugLn('--- CustomForms ---'); + for i := 0 to Screen.CustomFormCount - 1 do begin + f := Screen.CustomForms[i]; + s := f.Name; + while f.HostDockSite <> nil do begin + f := f.HostDockSite; + s := s + ' in ' + f.Name; + end; + DebugLn(s); + end; +{ Seems to be the same list +} + DebugLn('--- Forms ---'); + for i := 0 to Screen.FormCount - 1 do begin + f := Screen.Forms[i]; + s := f.Name; + while f.Parent <> nil do begin + f := f.Parent; + s := s + ' in ' + f.Name; + end; + DebugLn(s); + end; +{} + DebugLn('---'); +end; + function TEditorSite.OpenFile(const FileName: string): TObject; begin //todo: load the file diff --git a/examples/dockmanager/package/ffloatingsite.lfm b/examples/dockmanager/package/ffloatingsite.lfm index dde62cbeed..5241e6b163 100644 --- a/examples/dockmanager/package/ffloatingsite.lfm +++ b/examples/dockmanager/package/ffloatingsite.lfm @@ -8,6 +8,7 @@ object FloatingSite: TFloatingSite OnDockDrop = FormDockDrop OnDockOver = FormDockOver OnUnDock = FormUnDock + ShowInTaskBar = stNever UseDockManager = True LCLVersion = '0.9.29' Visible = True diff --git a/examples/dockmanager/package/ffloatingsite.lrs b/examples/dockmanager/package/ffloatingsite.lrs index f1d44ea3bc..7540ef9a8c 100644 --- a/examples/dockmanager/package/ffloatingsite.lrs +++ b/examples/dockmanager/package/ffloatingsite.lrs @@ -4,6 +4,6 @@ LazarusResources.Add('TFloatingSite','FORMDATA',[ 'TPF0'#13'TFloatingSite'#12'FloatingSite'#4'Left'#3#175#1#6'Height'#3','#1#3 +'Top'#3#242#1#5'Width'#3#144#1#7'Caption'#6#12'FloatingSite'#8'DockSite'#9#10 +'OnDockDrop'#7#12'FormDockDrop'#10'OnDockOver'#7#12'FormDockOver'#8'OnUnDock' - +#7#10'FormUnDock'#14'UseDockManager'#9#10'LCLVersion'#6#6'0.9.29'#7'Visible' - +#9#0#0 + +#7#10'FormUnDock'#13'ShowInTaskBar'#7#7'stNever'#14'UseDockManager'#9#10'LCL' + +'Version'#6#6'0.9.29'#7'Visible'#9#0#0 ]);