mirror of https://gitlab.com/basile.b/dexed.git
docking, mouse wheel can be used on the splitters to expand shrink the area
This commit is contained in:
parent
b475311688
commit
6158dd26a2
|
@ -2109,6 +2109,42 @@ object CEMainForm: TCEMainForm
|
||||||
end
|
end
|
||||||
object MenuItem79: TMenuItem
|
object MenuItem79: TMenuItem
|
||||||
Action = actFileRunOut
|
Action = actFileRunOut
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000330000003300000000000000000000000000000000000000070000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
00337C7C81FF7E7D7DFF0000000E00000033000000338886840060440E44B881
|
||||||
|
14FFB67E0FFFB57D0DFFB57D0CFFB67E0CFFBC7F06FF7F8188FF86878AFFA87F
|
||||||
|
2DFFA8A8ABFFAAA8A8FF52504F698A8886FF868482FF88868400AC7A14CADCC1
|
||||||
|
89FFF5F0E0FFF4EDDBFFF4EDDBFFF6EFDBFFFDF4DCFF878789FFCECDCEFF9696
|
||||||
|
98FFC6C5C6FFC7C5C5FF989695FFD1CFCEFF8B8988FF0000000AB78012FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3E3DFFFC2C1BBFF959493FFB5B3
|
||||||
|
B4FF8D8C8CFF8D8C8BFFB6B4B3FF999796FF646260894847465BB98419FFB67E
|
||||||
|
0EFFB67F0FFFC0902EFFC08E29FFC59128FF747578FFAAA8A9FFCAC8C7FF8F8D
|
||||||
|
8EFFFFF2D2FFFFFFF5FF8F8D8DFFCBC9C9FFB0AEADFF8E8C8AFFBB871E00B984
|
||||||
|
1900B8831BEFFFFFFFFFF2E9D3FFF7EDD4FF747577FFABA9AAFFCCCACAFF9290
|
||||||
|
8FFFDCD2B9FFE9E7E2FF918F8EFFCECCCBFFB1AFAEFF8F8D8BFFBB871F00BA85
|
||||||
|
1C00B0790BD2FFFFFFFFF1E9D2FFF4EBD2FFFCF2D7FFB4AFA2FF9B9997FFBCBA
|
||||||
|
BAFF939191FF929191FFBCBABAFF9E9C9AFF6C6B699B908E8C00BB871F00BA85
|
||||||
|
1C00AA760C9BF0E4CCFFF6EFE0FFF4ECD7FFFAF2DCFF8B8A8AFFD7D6D6FF9A99
|
||||||
|
97FFD0CECEFFD0CFCFFF9C9A9AFFDBDADBFF918F8EFF94929000BB871F00BA86
|
||||||
|
1D00AD790E73EADBBBFFFAF7EEFFF6EFDEFFFCF4E2FF7B797AFF8B8A89FFD2CC
|
||||||
|
BFFFB1AFAEFFB1B1B1FFC3B28EFF939499FF8C8B8EFF8E8E8E00BB871F00BB86
|
||||||
|
1D00B07B1134DBBF88FFFFFFFFFFF7F2E5FFFAF4E6FFFEF7E9FFFFF9EAFFFFFC
|
||||||
|
EDFF767574FF777778FFF8E9CAFFAA7200A8888D99008B8E9700BB871F00BB86
|
||||||
|
1E00B882150CCCA556FFFFFFFFFFF9F6EBFFF9F5EAFFFAF6ECFFFBF7EDFFFDF9
|
||||||
|
EEFFFFFCF1FFFFFFFCFFFFFFFFFFAB7405CE0000003300000033BB871F00BB87
|
||||||
|
1E00B9831800C89E49FFFFFFFFFFFCF9F3FFFBF8F1FFFBF8F1FFFBF8F1FFFBF8
|
||||||
|
F1FFFCF9F3FFFDFBF6FFFFFFFFFFB27701FFBA851BFFBC8921FFBB871F00BB87
|
||||||
|
1F00B9851B00B27A09E5FFFFFFFFFFFFFFFFFEFEFBFFFEFEFBFFFEFEFCFFFEFE
|
||||||
|
FCFFFEFEFCFFFFFFFEFFFFFFFFFFC69941FFECDFC2FFC19234FFBB871F00BB87
|
||||||
|
1F00BA861D00B7801283E4CFA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFE9DABAFFEEE2C9FFB67F14BFBB871F00BB87
|
||||||
|
1F00BB871E00B9841A00B67E0FEAC4973BFFC79D49FFC39538FFB37904FFB47A
|
||||||
|
07FFB47A07FFB47A08FFB57C0AFFB67F0FFFB88114FFBA851B23
|
||||||
|
}
|
||||||
end
|
end
|
||||||
object MenuItem63: TMenuItem
|
object MenuItem63: TMenuItem
|
||||||
Action = actFileUnittest
|
Action = actFileUnittest
|
||||||
|
@ -3637,6 +3673,42 @@ object CEMainForm: TCEMainForm
|
||||||
end
|
end
|
||||||
object MenuItem80: TMenuItem
|
object MenuItem80: TMenuItem
|
||||||
Action = actFileRunOut
|
Action = actFileRunOut
|
||||||
|
Bitmap.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000000000000000
|
||||||
|
0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
0000000000330000003300000000000000000000000000000000000000070000
|
||||||
|
0033000000330000003300000033000000330000003300000033000000330000
|
||||||
|
00337C7C81FF7E7D7DFF0000000E00000033000000338886840060440E44B881
|
||||||
|
14FFB67E0FFFB57D0DFFB57D0CFFB67E0CFFBC7F06FF7F8188FF86878AFFA87F
|
||||||
|
2DFFA8A8ABFFAAA8A8FF52504F698A8886FF868482FF88868400AC7A14CADCC1
|
||||||
|
89FFF5F0E0FFF4EDDBFFF4EDDBFFF6EFDBFFFDF4DCFF878789FFCECDCEFF9696
|
||||||
|
98FFC6C5C6FFC7C5C5FF989695FFD1CFCEFF8B8988FF0000000AB78012FFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3E3DFFFC2C1BBFF959493FFB5B3
|
||||||
|
B4FF8D8C8CFF8D8C8BFFB6B4B3FF999796FF646260894847465BB98419FFB67E
|
||||||
|
0EFFB67F0FFFC0902EFFC08E29FFC59128FF747578FFAAA8A9FFCAC8C7FF8F8D
|
||||||
|
8EFFFFF2D2FFFFFFF5FF8F8D8DFFCBC9C9FFB0AEADFF8E8C8AFFBB871E00B984
|
||||||
|
1900B8831BEFFFFFFFFFF2E9D3FFF7EDD4FF747577FFABA9AAFFCCCACAFF9290
|
||||||
|
8FFFDCD2B9FFE9E7E2FF918F8EFFCECCCBFFB1AFAEFF8F8D8BFFBB871F00BA85
|
||||||
|
1C00B0790BD2FFFFFFFFF1E9D2FFF4EBD2FFFCF2D7FFB4AFA2FF9B9997FFBCBA
|
||||||
|
BAFF939191FF929191FFBCBABAFF9E9C9AFF6C6B699B908E8C00BB871F00BA85
|
||||||
|
1C00AA760C9BF0E4CCFFF6EFE0FFF4ECD7FFFAF2DCFF8B8A8AFFD7D6D6FF9A99
|
||||||
|
97FFD0CECEFFD0CFCFFF9C9A9AFFDBDADBFF918F8EFF94929000BB871F00BA86
|
||||||
|
1D00AD790E73EADBBBFFFAF7EEFFF6EFDEFFFCF4E2FF7B797AFF8B8A89FFD2CC
|
||||||
|
BFFFB1AFAEFFB1B1B1FFC3B28EFF939499FF8C8B8EFF8E8E8E00BB871F00BB86
|
||||||
|
1D00B07B1134DBBF88FFFFFFFFFFF7F2E5FFFAF4E6FFFEF7E9FFFFF9EAFFFFFC
|
||||||
|
EDFF767574FF777778FFF8E9CAFFAA7200A8888D99008B8E9700BB871F00BB86
|
||||||
|
1E00B882150CCCA556FFFFFFFFFFF9F6EBFFF9F5EAFFFAF6ECFFFBF7EDFFFDF9
|
||||||
|
EEFFFFFCF1FFFFFFFCFFFFFFFFFFAB7405CE0000003300000033BB871F00BB87
|
||||||
|
1E00B9831800C89E49FFFFFFFFFFFCF9F3FFFBF8F1FFFBF8F1FFFBF8F1FFFBF8
|
||||||
|
F1FFFCF9F3FFFDFBF6FFFFFFFFFFB27701FFBA851BFFBC8921FFBB871F00BB87
|
||||||
|
1F00B9851B00B27A09E5FFFFFFFFFFFFFFFFFEFEFBFFFEFEFBFFFEFEFCFFFEFE
|
||||||
|
FCFFFEFEFCFFFFFFFEFFFFFFFFFFC69941FFECDFC2FFC19234FFBB871F00BB87
|
||||||
|
1F00BA861D00B7801283E4CFA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFE9DABAFFEEE2C9FFB67F14BFBB871F00BB87
|
||||||
|
1F00BB871E00B9841A00B67E0FEAC4973BFFC79D49FFC39538FFB37904FFB47A
|
||||||
|
07FFB47A07FFB47A08FFB57C0AFFB67F0FFFB88114FFBA851B23
|
||||||
|
}
|
||||||
end
|
end
|
||||||
object MenuItem64: TMenuItem
|
object MenuItem64: TMenuItem
|
||||||
Action = actFileUnittest
|
Action = actFileUnittest
|
||||||
|
|
|
@ -5,9 +5,10 @@ unit ce_main;
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, LazFileUtils, SynEditKeyCmds, SynHighlighterLFM, Forms, StdCtrls,
|
Classes, SysUtils, LazFileUtils, SynEditKeyCmds, SynHighlighterLFM, Forms,
|
||||||
AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics, strutils,
|
StdCtrls, AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls,
|
||||||
Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, SynExportHTML,
|
Graphics, strutils, Dialogs, Menus, ActnList, ExtCtrls, process,
|
||||||
|
XMLPropStorage, SynExportHTML,
|
||||||
ce_common, ce_dmdwrap, ce_nativeproject, ce_synmemo, ce_writableComponent,
|
ce_common, ce_dmdwrap, ce_nativeproject, ce_synmemo, ce_writableComponent,
|
||||||
ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf,
|
ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf,
|
||||||
ce_search, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_todolist, ce_observer,
|
ce_search, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_todolist, ce_observer,
|
||||||
|
@ -18,6 +19,11 @@ type
|
||||||
|
|
||||||
TCEApplicationOptions = class;
|
TCEApplicationOptions = class;
|
||||||
|
|
||||||
|
TAnchorDockSplitterEx = class(TAnchorDockSplitter)
|
||||||
|
public
|
||||||
|
property OnMouseWheel;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TCEMainForm }
|
{ TCEMainForm }
|
||||||
TCEMainForm = class(TForm, ICEMultiDocObserver, ICEEditableShortCut, ICEProjectObserver)
|
TCEMainForm = class(TForm, ICEMultiDocObserver, ICEEditableShortCut, ICEProjectObserver)
|
||||||
actFileCompAndRun: TAction;
|
actFileCompAndRun: TAction;
|
||||||
|
@ -338,6 +344,8 @@ type
|
||||||
procedure mruClearClick(Sender: TObject);
|
procedure mruClearClick(Sender: TObject);
|
||||||
|
|
||||||
// layout
|
// layout
|
||||||
|
procedure setSplitterWheelEvent;
|
||||||
|
procedure DockSplitterMw(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||||
procedure LockTopWindow(Sender: TObject; var NewSize: Integer; var Accept: Boolean);
|
procedure LockTopWindow(Sender: TObject; var NewSize: Integer; var Accept: Boolean);
|
||||||
procedure layoutMnuItemClick(sender: TObject);
|
procedure layoutMnuItemClick(sender: TObject);
|
||||||
procedure layoutLoadFromFile(const aFilename: string);
|
procedure layoutLoadFromFile(const aFilename: string);
|
||||||
|
@ -956,6 +964,46 @@ begin
|
||||||
accept := GetKeyShiftState = [ssCtrl];
|
accept := GetKeyShiftState = [ssCtrl];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCEMainForm.DockSplitterMw(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
|
||||||
|
var
|
||||||
|
offs: integer;
|
||||||
|
splt: TAnchorDockSplitter;
|
||||||
|
begin
|
||||||
|
offs := -480 div WheelDelta;
|
||||||
|
splt := TAnchorDockSplitter(sender);
|
||||||
|
splt.MoveSplitter(offs);
|
||||||
|
if splt.ResizeAnchor in [akLeft, akRight] then
|
||||||
|
Mouse.CursorPos:= Point(Mouse.CursorPos.X + offs, Mouse.CursorPos.Y)
|
||||||
|
else
|
||||||
|
Mouse.CursorPos:= Point(Mouse.CursorPos.X, Mouse.CursorPos.Y + offs);
|
||||||
|
Handled := true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//TODO-cdocking: set splitter MW event when a new widget is docked
|
||||||
|
procedure TCEMainForm.setSplitterWheelEvent;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
widg: TCEWidget;
|
||||||
|
site: TControl;
|
||||||
|
anchl: TAnchorKind;
|
||||||
|
begin
|
||||||
|
for i := 0 to fWidgList.Count-1 do
|
||||||
|
begin
|
||||||
|
widg := fWidgList.widget[i];
|
||||||
|
if not widg.isDockable then continue;
|
||||||
|
for anchl in [low(anchl) .. high(anchl)] do
|
||||||
|
if GetDockSplitterOrParent(DockMaster.GetSite(widg), anchl, site) then
|
||||||
|
begin
|
||||||
|
if site is TAnchorDockHostSite then
|
||||||
|
begin
|
||||||
|
if TAnchorDockHostSite(site).BoundSplitter.isNotNil then
|
||||||
|
TAnchorDockSplitterEx(TAnchorDockHostSite(site).BoundSplitter).OnMouseWheel:=@DockSplitterMw;
|
||||||
|
end else if site is TAnchorDockSplitter then
|
||||||
|
TAnchorDockSplitterEx(TAnchorDockSplitter(site)).OnMouseWheel:=@DockSplitterMw;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.InitDocking;
|
procedure TCEMainForm.InitDocking;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
@ -1240,6 +1288,7 @@ begin
|
||||||
|
|
||||||
fFirstShown := true;
|
fFirstShown := true;
|
||||||
end;
|
end;
|
||||||
|
setSplitterWheelEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
procedure TCEMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||||
|
|
Loading…
Reference in New Issue