Skip to content

Commit cac85c7

Browse files
author
Carlo Barazzetta
committed
ver. 2.3.5
- Added Custom Event Handlers to TMarkdownViewer component (OnFileNameClicked, OnURLClicked) - Fixed Refresh also for Index page - Fixed loading svg files in utf8 format - Built with Delphi 12.3
1 parent 61b9075 commit cac85c7

55 files changed

Lines changed: 1192 additions & 1447 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Demo/Help/Index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## Index of Demo
1+
## HelpViewer Demo - Index
22
* [Readme file](README.md)
33

44
* [Application Description](home.md)

Demo/Source/MarkDownHelpViewerDemo.dproj

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
33
<ProjectGuid>{586BBC24-8A31-4295-98B2-F25E4CE572F7}</ProjectGuid>
4-
<ProjectVersion>20.2</ProjectVersion>
4+
<ProjectVersion>20.3</ProjectVersion>
55
<FrameworkType>VCL</FrameworkType>
66
<Base>True</Base>
77
<Config Condition="'$(Config)'==''">Debug</Config>
@@ -153,31 +153,6 @@
153153
<Source Name="MainSource">MarkdownHelpViewerDemo.dpr</Source>
154154
</Source>
155155
<Excluded_Packages>
156-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DelphiGoogleMap280.bpl">Delphi Google Maps Components - (c) Ethea S.r.l. - OpenSource Apache 2.0</Excluded_Packages>
157-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISOpenOffice8_6280.bpl">Ethea InstantSolutions 8.6 LibreOffice/OpenOffice Components</Excluded_Packages>
158-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISRtl8_6280.bpl">Ethea InstantSolutions 8.6 Rtl Library</Excluded_Packages>
159-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISVcl8_6280.bpl">Ethea InstantSolutions 8.6 Vcl Library</Excluded_Packages>
160-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISFLib8_6280.bpl">Ethea InstantSolutions 8.6 Framework Library</Excluded_Packages>
161-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Evolution3000Components280.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\Evolution3000Components280.bpl not found</Excluded_Packages>
162-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclSkiaIconImageListFMX280.bpl">Ethea SkiaIconImageList FMX components</Excluded_Packages>
163-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISOpenOffice7_7280.bpl">Ethea InstantSolutions 7.7 LibreOffice/OpenOffice Components</Excluded_Packages>
164-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISRtl7_7280.bpl">Ethea InstantSolutions 7.7 Rtl Library</Excluded_Packages>
165-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISReportBuilder7_7280.bpl">Ethea InstantSolutions 7.7 ReportBuilder Components</Excluded_Packages>
166-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISVcl7_7280.bpl">Ethea InstantSolutions 7.7 Vcl Library</Excluded_Packages>
167-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISFLib7_7280.bpl">Ethea InstantSolutions 7.7 Framework Library</Excluded_Packages>
168-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOFireDAC_D28.bpl">InstantObjects FireDAC Design-Time Support (Delphi 11)</Excluded_Packages>
169-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOXML_D28.bpl">InstantObjects XML Design-Time Support (Delphi 11)</Excluded_Packages>
170-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOJSON_D28.bpl">InstantObjects JSON Design-Time Support (Delphi 11)</Excluded_Packages>
171-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOCore_D28.bpl">InstantObjects Design-Time Package (Delphi 11)</Excluded_Packages>
172-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISRtl7_6280.bpl">Ethea InstantSolutions 7.6 Rtl Library</Excluded_Packages>
173-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISVcl7_6280.bpl">Ethea InstantSolutions 7.6 Vcl Library</Excluded_Packages>
174-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISOpenOffice7_6280.bpl">Ethea InstantSolutions 7.6 LibreOffice/OpenOffice Components</Excluded_Packages>
175-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\dclISFLib7_6280.bpl">Ethea InstantSolutions 7.6 Framework Library</Excluded_Packages>
176-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOADO_D28.bpl">InstantObjects ADO Design-Time Support (Delphi 11)</Excluded_Packages>
177-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIODBX_D28.bpl">InstantObjects dbExpress Design-Time Support (Delphi 11)</Excluded_Packages>
178-
<Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\DclIOIBX_D28.bpl">InstantObjects IBX Design-Time Support (Delphi 11)</Excluded_Packages>
179-
<Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
180-
<Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
181156
</Excluded_Packages>
182157
</Delphi.Personality>
183158
<Platforms>

Ext/HTMLViewer/package/Rad Studio 12/FrameViewer.dproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<TargetedPlatforms>3</TargetedPlatforms>
88
<AppType>Package</AppType>
99
<FrameworkType>VCL</FrameworkType>
10-
<ProjectVersion>20.1</ProjectVersion>
10+
<ProjectVersion>20.2</ProjectVersion>
1111
<Platform Condition="'$(Platform)'==''">Win32</Platform>
1212
<ProjectName Condition="'$(ProjectName)'==''">FrameViewer</ProjectName>
1313
</PropertyGroup>

Ext/HTMLViewer/package/Rad Studio 12/dclFrameViewer.dproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<MainSource>dclFrameViewer.dpk</MainSource>
55
<Config Condition="'$(Config)'==''">Release</Config>
66
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
7-
<ProjectVersion>20.1</ProjectVersion>
7+
<ProjectVersion>20.2</ProjectVersion>
88
<FrameworkType>VCL</FrameworkType>
99
<Base>True</Base>
1010
<Platform Condition="'$(Platform)'==''">Win32</Platform>

Ext/SVGIconImageList/Image32/source/Clipper.Core.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
(*******************************************************************************
44
* Author : Angus Johnson *
55
* Date : 22 November 2024 *
6-
* Website : http://www.angusj.com *
6+
* Website : https://www.angusj.com *
77
* Copyright : Angus Johnson 2010-2024 *
88
* Purpose : Core Clipper Library module *
99
* Contains structures and functions used throughout the library *
10-
* License : http://www.boost.org/LICENSE_1_0.txt *
10+
* License : https://www.boost.org/LICENSE_1_0.txt *
1111
*******************************************************************************)
1212

1313
{$I Clipper.inc}

Ext/SVGIconImageList/Image32/source/Clipper.Engine.pas

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
(*******************************************************************************
44
* Author : Angus Johnson *
55
* Date : 22 November 2024 *
6-
* Website : http://www.angusj.com *
6+
* Website : https://www.angusj.com *
77
* Copyright : Angus Johnson 2010-2024 *
88
* Purpose : This is the main polygon clipping module *
9-
* License : http://www.boost.org/LICENSE_1_0.txt *
9+
* License : https://www.boost.org/LICENSE_1_0.txt *
1010
*******************************************************************************)
1111

1212
interface
@@ -899,7 +899,7 @@ function PointInOpPolygon(const pt: TPoint64; op: POutPt): TPointInPolygonResult
899899
while (op2 <> op) and (op2.pt.Y > pt.Y) do op2 := op2.next;
900900
if (op2 = op) then break;
901901

902-
// must have touched or crossed the pt.Y horizonal
902+
// must have touched or crossed the pt.Y horizontal
903903
// and this must happen an even number of times
904904

905905
if (op2.pt.Y = pt.Y) then // touching the horizontal
@@ -2690,7 +2690,7 @@ procedure TClipperBase.IntersectEdges(e1, e2: PActive; pt: TPoint64);
26902690
end else if IsFront(e1) or (e1.outrec = e2.outrec) then
26912691
begin
26922692
// this 'else if' condition isn't strictly needed but
2693-
// it's sensible to split polygons that ony touch at
2693+
// it's sensible to split polygons that only touch at
26942694
// a common vertex (not at common edges).
26952695
op := AddLocalMaxPoly(e1, e2, pt);
26962696
{$IFDEF USINGZ}
@@ -3528,7 +3528,7 @@ procedure TClipperBase.DoHorizontal(horzEdge: PActive);
35283528
end;
35293529
if IsHotEdge(horzEdge) then
35303530
begin
3531-
//nb: The outrec containining the op returned by IntersectEdges
3531+
//nb: The outrec containing the op returned by IntersectEdges
35323532
//above may no longer be associated with horzEdge.
35333533
FHorzSegList.Add(GetLastOp(horzEdge));
35343534
end;

Ext/SVGIconImageList/Image32/source/Clipper.Minkowski.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Date : 21 December 2023 *
66
* Copyright : Angus Johnson 2010-2022 *
77
* Purpose : Minkowski Addition and Difference *
8-
* License : http://www.boost.org/LICENSE_1_0.txt *
8+
* License : https://www.boost.org/LICENSE_1_0.txt *
99
*******************************************************************************)
1010

1111
{$I Clipper.inc}

Ext/SVGIconImageList/Image32/source/Clipper.Offset.pas

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
(*******************************************************************************
44
* Author : Angus Johnson *
5-
* Date : 22 November 2024 *
6-
* Website : http://www.angusj.com *
7-
* Copyright : Angus Johnson 2010-2024 *
5+
* Date : 22 January 2025 *
6+
* Website : https://www.angusj.com *
7+
* Copyright : Angus Johnson 2010-2025 *
88
* Purpose : Path Offset (Inflate/Shrink) *
9-
* License : http://www.boost.org/LICENSE_1_0.txt *
9+
* License : https://www.boost.org/LICENSE_1_0.txt *
1010
*******************************************************************************)
1111

1212
{$I Clipper.inc}
@@ -142,6 +142,20 @@ implementation
142142
TwoPi : Double = 2 * PI;
143143
InvTwoPi : Double = 1/(2 * PI);
144144

145+
// Clipper2 approximates arcs by using series of relatively short straight
146+
//line segments. And logically, shorter line segments will produce better arc
147+
// approximations. But very short segments can degrade performance, usually
148+
// with little or no discernable improvement in curve quality. Very short
149+
// segments can even detract from curve quality, due to the effects of integer
150+
// rounding. Since there isn't an optimal number of line segments for any given
151+
// arc radius (that perfectly balances curve approximation with performance),
152+
// arc tolerance is user defined. Nevertheless, when the user doesn't define
153+
// an arc tolerance (ie leaves alone the 0 default value), the calculated
154+
// default arc tolerance (offset_radius / 500) generally produces good (smooth)
155+
// arc approximations without producing excessively small segment lengths.
156+
// See also: https://www.angusj.com/clipper2/Docs/Trigonometry.htm
157+
const arc_const = 0.002; // <-- 1/500
158+
145159
//------------------------------------------------------------------------------
146160
// Miscellaneous offset support functions
147161
//------------------------------------------------------------------------------
@@ -364,13 +378,12 @@ procedure TClipperOffset.DoGroupOffset(group: TGroup);
364378
if (group.joinType = jtRound) or (group.endType = etRound) then
365379
begin
366380
// calculate the number of steps required to approximate a circle
367-
// (see http://www.angusj.com/clipper2/Docs/Trigonometry.htm)
381+
// (see https://www.angusj.com/clipper2/Docs/Trigonometry.htm)
368382
// arcTol - when arc_tolerance_ is undefined (0) then curve imprecision
369383
// will be relative to the size of the offset (delta). Obviously very
370384
//large offsets will almost always require much less precision.
371-
arcTol := Iif(fArcTolerance > 0.01,
372-
Min(absDelta, fArcTolerance),
373-
Log10(2 + absDelta) * 0.25); // empirically derived
385+
arcTol := Iif(fArcTolerance > 0.0,
386+
Min(absDelta, fArcTolerance), absDelta * arc_const);
374387

375388
stepsPer360 := Pi / ArcCos(1 - arcTol / absDelta);
376389
if (stepsPer360 > absDelta * Pi) then
@@ -745,7 +758,7 @@ function IntersectPoint(const ln1a, ln1b, ln2a, ln2b: TPointD): TPointD;
745758
m1,b1,m2,b2: double;
746759
begin
747760
result := NullPointD;
748-
//see http://astronomy.swin.edu.au/~pbourke/geometry/lineline2d/
761+
//see https://paulbourke.net/geometry/pointlineplane/#i2l
749762
if (ln1B.X = ln1A.X) then
750763
begin
751764
if (ln2B.X = ln2A.X) then exit; //parallel lines
@@ -917,10 +930,8 @@ procedure TClipperOffset.DoRound(j, k: Integer; angle: double);
917930
// when fDeltaCallback64 is assigned, fGroupDelta won't be constant,
918931
// so we'll need to do the following calculations for *every* vertex.
919932
absDelta := Abs(fGroupDelta);
920-
arcTol := Iif(fArcTolerance > 0.01,
921-
Min(absDelta, fArcTolerance),
922-
Log10(2 + absDelta) * 0.25); // empirically derived
923-
//http://www.angusj.com/clipper2/Docs/Trigonometry.htm
933+
arcTol := Iif(fArcTolerance > 0.0,
934+
Min(absDelta, fArcTolerance), absDelta * arc_const);
924935
stepsPer360 := Pi / ArcCos(1 - arcTol / absDelta);
925936
if (stepsPer360 > absDelta * Pi) then
926937
stepsPer360 := absDelta * Pi; // avoid excessive precision

Ext/SVGIconImageList/Image32/source/Clipper.RectClip.pas

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
(*******************************************************************************
44
* Author : Angus Johnson *
55
* Date : 5 July 2024 *
6-
* Website : http://www.angusj.com *
6+
* Website : https://www.angusj.com *
77
* Copyright : Angus Johnson 2010-2024 *
88
* Purpose : FAST rectangular clipping *
9-
* License : http://www.boost.org/LICENSE_1_0.txt *
9+
* License : https://www.boost.org/LICENSE_1_0.txt *
1010
*******************************************************************************)
1111

1212
interface

Ext/SVGIconImageList/Image32/source/Clipper.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{.$DEFINE USINGZ}
88

99
///////////////////////////////////////////////////////////////////////////////
10-
//COMPILER DIFINED PREPROCESSOR DIRECTIVES (ie. do not touch ;))
10+
//COMPILER DEFINED PREPROCESSOR DIRECTIVES (ie. do not touch ;))
1111
///////////////////////////////////////////////////////////////////////////////
1212

1313
{$IFDEF FPC}

0 commit comments

Comments
 (0)