diff --git a/src/ce_main.lfm b/src/ce_main.lfm index 94b550ff..4b392b3d 100644 --- a/src/ce_main.lfm +++ b/src/ce_main.lfm @@ -2109,6 +2109,42 @@ object CEMainForm: TCEMainForm end object MenuItem79: TMenuItem 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 object MenuItem63: TMenuItem Action = actFileUnittest @@ -3637,6 +3673,42 @@ object CEMainForm: TCEMainForm end object MenuItem80: TMenuItem 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 object MenuItem64: TMenuItem Action = actFileUnittest diff --git a/src/ce_main.pas b/src/ce_main.pas index 9f78bcaf..b4251d12 100644 --- a/src/ce_main.pas +++ b/src/ce_main.pas @@ -5,9 +5,10 @@ unit ce_main; interface uses - Classes, SysUtils, LazFileUtils, SynEditKeyCmds, SynHighlighterLFM, Forms, StdCtrls, - AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, Graphics, strutils, - Dialogs, Menus, ActnList, ExtCtrls, process, XMLPropStorage, SynExportHTML, + Classes, SysUtils, LazFileUtils, SynEditKeyCmds, SynHighlighterLFM, Forms, + StdCtrls, AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, Controls, + Graphics, strutils, Dialogs, Menus, ActnList, ExtCtrls, process, + XMLPropStorage, SynExportHTML, ce_common, ce_dmdwrap, ce_nativeproject, ce_synmemo, ce_writableComponent, ce_widget, ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf, ce_search, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_todolist, ce_observer, @@ -18,6 +19,11 @@ type TCEApplicationOptions = class; + TAnchorDockSplitterEx = class(TAnchorDockSplitter) + public + property OnMouseWheel; + end; + { TCEMainForm } TCEMainForm = class(TForm, ICEMultiDocObserver, ICEEditableShortCut, ICEProjectObserver) actFileCompAndRun: TAction; @@ -338,6 +344,8 @@ type procedure mruClearClick(Sender: TObject); // 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 layoutMnuItemClick(sender: TObject); procedure layoutLoadFromFile(const aFilename: string); @@ -956,6 +964,46 @@ begin accept := GetKeyShiftState = [ssCtrl]; 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; var i: Integer; @@ -1240,6 +1288,7 @@ begin fFirstShown := true; end; + setSplitterWheelEvent; end; procedure TCEMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);