diff --git a/demos/MarkDownBasicTest/MarkDownTests.lpi b/demos/MarkDownBasicTest/MarkDownTests.lpi index 0dc8583..f49565b 100644 --- a/demos/MarkDownBasicTest/MarkDownTests.lpi +++ b/demos/MarkDownBasicTest/MarkDownTests.lpi @@ -1,11 +1,13 @@ - + + + + - <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -87,12 +89,12 @@ <PublishOptions> <Version Value="2"/> <DestinationDirectory Value="D:\Users\Miguel\Documents\Trabajos\for_GIT\fpcmarkdown\demos\MarkDownBasicTest"/> - <SaveEditorInfoOfNonProjectFiles Value="True"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> + <Modes Count="1"> + <Mode0 Name="default"/> + </Modes> </RunParams> <RequiredPackages Count="2"> <Item1> @@ -128,6 +130,9 @@ <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Linking> + <Debugging> + <DebugInfoType Value="dsDwarf3"/> + </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> diff --git a/demos/MarkDownHtml/MarkDownHtml.lpi b/demos/MarkDownHtml/MarkDownHtml.lpi index fcd1bb9..71242ee 100644 --- a/demos/MarkDownHtml/MarkDownHtml.lpi +++ b/demos/MarkDownHtml/MarkDownHtml.lpi @@ -1,11 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> <ProjectOptions> - <Version Value="10"/> + <Version Value="12"/> <PathDelim Value="\"/> <General> + <Flags> + <CompatibilityMode Value="True"/> + </Flags> <SessionStorage Value="InProjectDir"/> - <MainUnit Value="0"/> <Title Value="MarkDownHtml"/> <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -14,7 +16,6 @@ <TextName Value="uEGroup.FPCMarkDown.TestHtmlConveter"/> <TextDesc Value="Test Markdown Processor for FPC."/> </XPManifest> - <Icon Value="0"/> </General> <VersionInfo> <UseVersionInfo Value="True"/> @@ -98,12 +99,12 @@ <PublishOptions> <Version Value="2"/> <DestinationDirectory Value="D:\Users\Miguel\Documents\Trabajos\for_GIT\fpcmarkdown\demos\MarkDownHtml"/> - <SaveEditorInfoOfNonProjectFiles Value="True"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> + <Modes Count="1"> + <Mode0 Name="default"/> + </Modes> </RunParams> <RequiredPackages Count="4"> <Item1> @@ -139,9 +140,12 @@ <PathDelim Value="\"/> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> - <UnitOutputDirectory Value="$Env(Temp)\lazarus\lib\$(TargetCPU)-$(TargetOS)"/> + <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Linking> + <Debugging> + <DebugInfoType Value="dsDwarf3"/> + </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> diff --git a/demos/MarkDownHtml/MarkDownHtml.lpr b/demos/MarkDownHtml/MarkDownHtml.lpr index 6765e18..4bd4710 100644 --- a/demos/MarkDownHtml/MarkDownHtml.lpr +++ b/demos/MarkDownHtml/MarkDownHtml.lpr @@ -7,7 +7,7 @@ cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset - Forms, MarkDownHtmlU; + Forms, MarkDownHtmlU in 'MarkDownHtmlu.pas'; {$R *.res} diff --git a/demos/MarkDownHtml/MarkDownHtmlu.pas b/demos/MarkDownHtml/MarkDownHtmlu.pas index 53da2ca..1046c94 100644 --- a/demos/MarkDownHtml/MarkDownHtmlu.pas +++ b/demos/MarkDownHtml/MarkDownHtmlu.pas @@ -7,7 +7,7 @@ interface uses Classes, SysUtils, LazFileUtils, SynEdit, SynHighlighterHTML, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, Clipbrd, MarkdownProcessor, MarkdownUtils, - LCLIntf, ComCtrls, Buttons, StrUtils, HtmlView, HtmlGlobals, HTMLUn2; + LCLIntf, ComCtrls, Buttons, StrUtils, HtmlView, HtmlGlobals, HTMLUn2, Types, Math; type @@ -46,10 +46,16 @@ TMainForm = class(TForm) procedure HtmlViewerImageRequest(Sender: TObject; const SRC: ThtString; var Stream: TStream); procedure SE_HTMLChange(Sender: TObject); + + procedure AnyMouseWheel(Sender: TObject; Shift: TShiftState; + WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); + private procedure OpenInBrowser; procedure SetPreview; + procedure ApplyZoomDelta(Delta: Integer); + public end; @@ -161,6 +167,13 @@ procedure TMainForm.FormCreate(Sender: TObject); HtmlViewer.OnImageRequest:=@HtmlViewerImageRequest; MStream := TMemoryStream.Create; B_ConvertClick(Self); + + + // ctrl + wheel zoom everywhere + SE_MarkDown.OnMouseWheel := @AnyMouseWheel; + SE_HTML.OnMouseWheel := @AnyMouseWheel; + HtmlViewer.OnMouseWheel := @AnyMouseWheel; + MainForm.OnMouseWheel := @AnyMouseWheel; end; procedure TMainForm.FormDestroy(Sender: TObject); @@ -251,5 +264,39 @@ procedure TMainForm.OpenInBrowser; end; end; +// new methods for zooming + +procedure TMainForm.ApplyZoomDelta(Delta: Integer); +var + NewSize: Integer; +begin + NewSize := SE_MarkDown.Font.Size + Delta; + NewSize := Max(8, Min(NewSize, 40)); + + // Left panes (SynEdit) + SE_MarkDown.Font.Size := NewSize; + SE_HTML.Font.Size := NewSize; + + // Right pane (THtmlViewer) + HtmlViewer.DefFontSize := NewSize; + + // force re-render + HtmlViewer.LoadFromString(CSSDecoration + SE_HTML.Text); +end; + +procedure TMainForm.AnyMouseWheel(Sender: TObject; Shift: TShiftState; + WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); +begin + if not (ssCtrl in Shift) then Exit; + + Handled := True; // block default scrolling when Ctrl is pressed + + if WheelDelta > 0 then + ApplyZoomDelta(+2) // same step as your baseeditform + else if WheelDelta < 0 then + ApplyZoomDelta(-2); +end; + + end. diff --git a/demos/MarkDownMemoTest/MarkDownMemoTest.lpi b/demos/MarkDownMemoTest/MarkDownMemoTest.lpi index 48bc7db..e697c2b 100644 --- a/demos/MarkDownMemoTest/MarkDownMemoTest.lpi +++ b/demos/MarkDownMemoTest/MarkDownMemoTest.lpi @@ -1,14 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> <ProjectOptions> - <Version Value="11"/> + <Version Value="12"/> <General> + <Flags> + <CompatibilityMode Value="True"/> + </Flags> <SessionStorage Value="InProjectDir"/> - <MainUnit Value="0"/> <Title Value="MarkDownMemoTest"/> <Scaled Value="True"/> <UseXPManifest Value="True"/> - <Icon Value="0"/> </General> <BuildModes Count="1"> <Item1 Name="default" Default="True"/> @@ -19,7 +20,6 @@ </PublishOptions> <RunParams> <FormatVersion Value="2"/> - <Modes Count="0"/> </RunParams> <RequiredPackages Count="2"> <Item1> @@ -47,11 +47,11 @@ <CompilerOptions> <Version Value="11"/> <Target> - <Filename Value="$Env(PRJOUT)/$NameOnly($(ProjFile))/MarkDownMemoTest"/> + <Filename Value="MarkDownMemoTest"/> </Target> <SearchPaths> <IncludeFiles Value="$(ProjOutDir)"/> - <UnitOutputDirectory Value="$Env(Temp)/lazarus/lib/$(TargetCPU)-$(TargetOS)"/> + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> </SearchPaths> <Parsing> <SyntaxOptions> @@ -59,6 +59,9 @@ </SyntaxOptions> </Parsing> <Linking> + <Debugging> + <DebugInfoType Value="dsDwarf3"/> + </Debugging> <Options> <Win32> <GraphicApplication Value="True"/> diff --git a/demos/MarkDownMemoTest/mainformu.lfm b/demos/MarkDownMemoTest/mainformu.lfm index 4a064ce..65d7ccc 100644 --- a/demos/MarkDownMemoTest/mainformu.lfm +++ b/demos/MarkDownMemoTest/mainformu.lfm @@ -1,15 +1,15 @@ object MainForm: TMainForm - Left = 226 + Left = 1627 Height = 528 - Top = 258 + Top = 243 Width = 629 Caption = 'MainForm' ClientHeight = 528 ClientWidth = 629 + Position = poScreenCenter + LCLVersion = '4.2.0.0' OnCreate = FormCreate OnDestroy = FormDestroy - Position = poScreenCenter - LCLVersion = '2.0.7.0' object PairSplitter1: TPairSplitter Left = 0 Height = 528 @@ -32,8 +32,8 @@ object MainForm: TMainForm Width = 300 Align = alClient Anchors = [akTop, akBottom] - OnChange = Memo1Change TabOrder = 0 + OnChange = Memo1Change end object Label1: TLabel Left = 0