diff --git a/components/turbopower_ipro/iphtml.pas b/components/turbopower_ipro/iphtml.pas
index 5b1558442c..393a5612a9 100644
--- a/components/turbopower_ipro/iphtml.pas
+++ b/components/turbopower_ipro/iphtml.pas
@@ -42,6 +42,7 @@ uses
{$IFDEF IP_LAZARUS}
//MemCheck,
LCLType,
+ LCLPRoc,
GraphType,
LCLIntf,
LResources,
@@ -651,6 +652,9 @@ type
WordRect2 : TRect;
Props : TIpHtmlProps;
Owner : TIpHtmlNode;
+ {$IFDEF IP_LAZARUS}
+ IsSelected: boolean;
+ {$ENDIF}
end;
PIpHtmlElement = ^TIpHtmlElement;
@@ -1388,6 +1392,9 @@ type
function GetHint: string; override;
procedure DimChanged(Sender: TObject); {!!.10}
procedure InvalidateSize; override;
+ {$IFDEF IP_LAZARUS}
+ function GetBorder: Integer;
+ {$ENDIF}
public
constructor Create(ParentNode : TIpHtmlNode);
destructor Destroy; override;
@@ -1395,7 +1402,11 @@ type
published {public} {!!.10}
property Alt : string read FAlt write FAlt;
+ {$IFDEF IP_LAZARUS}
+ property Border : Integer read GetBorder write SetBorder;
+ {$ELSE}
property Border : Integer read FBorder write SetBorder;
+ {$ENDIF}
property Height : TIpHtmlPixels{Integer} read FHeight write FHeight; {!!.10}
property HSpace : Integer read FHSpace write SetHSpace;
property IsMap : Boolean read FIsMap write FIsMap;
@@ -2110,7 +2121,9 @@ type
PageHeight : Integer;
StartPos : Integer;
FFixedTypeface: string; {!!.10}
-
+ {$IFDEF IP_LAZARUS}
+ FDefaultTypeFace: string;
+ {$ENDIF}
ParmBuf: PChar; {!!.12}
ParmBufSize: Integer; {!!.12}
procedure ResetCanvasData;
@@ -2295,6 +2308,9 @@ type
procedure Home;
function GetPageRect(TargetCanvas: TCanvas; Width, Height : Integer): TRect;
procedure MouseMove(Pt : TPoint);
+ {$IFDEF IP_LAZARUS}
+ procedure DeselectAllItems(Item: Pointer);
+ {$ENDIF}
procedure SetSelection(StartPoint, EndPoint: TPoint);
function HaveSelection: Boolean;
procedure CopyToClipboard;
@@ -2346,11 +2362,18 @@ type
{$IFOPT C+}
procedure CheckImage(Picture: TPicture);
{$ENDIF}
+ {$IFDEF IP_LAZARUS}
+ function GetSelectionBlocks(out StartSelIndex,EndSelIndex: integer): boolean;
+ {$ENDIF}
+
public
constructor Create;
destructor Destroy; override;
property FlagErrors : Boolean read FFlagErrors write FFlagErrors;
property FixedTypeface: string read FFixedTypeface write FFixedTypeface;
+ {$IFDEF IP_LAZARUS}
+ property DefaultTypeFace: string read FDefaultTypeFace write FDefaultTypeFace;
+ {$ENDIF}
property HtmlNode : TIpHtmlNodeHtml read FHtml;
procedure LoadFromStream(S : TStream);
procedure Render(TargetCanvas: TCanvas; TargetPageRect : TRect;
@@ -2650,6 +2673,9 @@ type
FCurElementChange: TNotifyEvent; {!!.10}
FDocumentOpen: TNotifyEvent; {!!.10}
FFixedTypeface: string; {!!.10}
+ {$IFDEF IP_LAZARUS}
+ FDefaultTypeFace: string;
+ {$ENDIF}
FHotURL: string;
FDataProvider: TIpAbstractHtmlDataProvider;
URLStack : TStringList;
@@ -2696,6 +2722,9 @@ type
Node: TIpHtmlNodeControl);
function GetVersion : string;
procedure SetVersion(const Value : string);
+ {$IFDEF IP_LAZARUS}
+ procedure SetDefaultTypeFace(const Value: string);
+ {$ENDIF}
public
function GetPrintPageCount: Integer;
constructor Create(AOwner: TComponent); override;
@@ -2734,6 +2763,10 @@ type
read FFlagErrors write FFlagErrors;
property FixedTypeface: string
read FFixedTypeface write FFixedTypeface; {!!.10}
+ {$IFDEF IP_LAZARUS}
+ property DefaultTypeFace: string
+ read FDefaultTypeFace write SetDefaultTypeFace;
+ {$ENDIF}
property HotURL : string read FHotURL;
property LinkColor : TColor
read FLinkColor write FLinkColor default clBlue;
@@ -2784,6 +2817,9 @@ type
property DataProvider;
property Enabled; {!!.10}
property FixedTypeface; {!!.10}
+ {$IFDEF IP_LAZARUS}
+ property DefaultTypeFace;
+ {$ENDIF}
property FlagErrors;
property LinkColor;
property MarginHeight;
@@ -4190,6 +4226,17 @@ begin
Owner.Target.Brush.Color := clWhite;
Owner.Target.FillRect(Owner.ClientRect);
end else begin
+ {$IFDEF IP_LAZARUS}
+ if BackGround = '' then begin
+ if BGColor <> -1 then begin
+ Owner.Target.Brush.Color := BGColor;
+ Owner.Target.FillRect(Owner.ClientRect);
+ end else begin
+ Owner.Target.Brush.Color := clWhite;
+ Owner.Target.FillRect(Owner.ClientRect);
+ end;
+ end;
+ {$ELSE}
if BackGround = '' then begin
Owner.Target.Brush.Color := clWhite;
Owner.Target.FillRect(Owner.ClientRect);
@@ -4198,6 +4245,7 @@ begin
Owner.Target.Brush.Color := BGColor;
Owner.Target.FillRect(Owner.ClientRect);
end;
+ {$ENDIF}
if Background <> '' then begin
if BgPicture = nil then
Owner.DoGetImage(Self, Owner.BuildPath(Background), BgPicture);
@@ -7256,7 +7304,7 @@ end;
procedure TIpHtml.ParseFrameSet(Parent : TIpHtmlNode;
const EndTokens: TIpHtmlTokenSet);
begin
-writeln('TIpHtml.ParseFrameSet A');
+DebugLn('TIpHtml.ParseFrameSet A');
FHasFrames := True;
while CurToken = IpHtmlTagFRAMESET do begin
CurFrameSet := TIpHtmlNodeFRAMESET.Create(Parent);
@@ -7439,6 +7487,11 @@ begin
TmpBitmap.LoadFromResourceName(FindClassHInstance( {!!.06}
TIpHTMLCustomPanel), 'DEFAULTIMAGE');
DefaultImage.Graphic := TmpBitmap;
+ {$ELSE}
+ if LazarusResources.Find('DEFAULTIMAGE')<>nil then begin
+ TmpBitmap.LoadFromLazarusResource('DEFAULTIMAGE');
+ DefaultImage.Graphic := TmpBitmap;
+ end;
{$ENDIF}
finally
TmpBitmap.Free;
@@ -7682,7 +7735,10 @@ end;
procedure TIpHtml.SetDefaultProps;
begin
{$IFDEF IP_LAZARUS}
- Defaultprops.FontName := Graphics.DefFontData.Name;
+ if FDefaultTypeFace='' then
+ Defaultprops.FontName := Graphics.DefFontData.Name
+ else
+ Defaultprops.FontName := FDefaultTypeface;
{$ELSE}
Defaultprops.FontName := 'Times New Roman';
{$ENDIF}
@@ -7755,6 +7811,81 @@ begin
Result := True;
end;
+{$IFDEF IP_LAZARUS}
+function TIpHtml.GetSelectionBlocks(out StartSelIndex,EndSelIndex: integer): boolean;
+var
+ R : TRect;
+ CurBlock: TIpHtmlNodeBlock;
+begin
+ result := false;
+
+ if not AllSelected
+ and ((FStartSel.x < 0) or (FEndSel.x < 0)) then exit;
+
+
+ if not AllSelected then begin
+ CurBlock := nil;
+ // search blocks that intersect the selection
+ // 1.- find first block that intersect upleft point of sel. (start from 0)
+ StartSelIndex := 0;
+ while StartSelIndex < RectList.Count do begin
+ CurBlock := PIpHtmlRectListEntry(RectList[StartSelIndex]).Block;
+ {if AllSelected and (CurBlock <> nil) then
+ break;}
+ if PtInRect(CurBlock.PageRect, FStartSel) then begin
+ R := PIpHtmlRectListEntry(RectList[StartSelIndex]).Rect;
+ if R.Bottom = 0 then
+ else
+ if (R.Top > FStartSel.y) and (R.Bottom < FEndSel.y) then
+ // block within selection (vertically)
+ break
+ else
+ if PtInRect(R, FStartSel) or PtInRect(R, FEndSel) then
+ // selection start or ends in this block
+ break
+ else
+ if (R.Bottom < FStartSel.y) then
+ else
+ if (R.Top > FEndSel.Y) then
+ else
+ if (R.Left >= FStartSel.x) and (R.Right <= FEndSel.x) then
+ break;
+ end;
+ inc(StartSelIndex);
+ end;
+ if StartSelIndex >= RectList.Count then exit;
+ // 2.- find first block thta intersect downright point of sel. (start from count-1)
+ EndSelIndex := pred(RectList.Count);
+ while EndSelIndex >= StartSelIndex do begin
+ if PIpHtmlRectListEntry(RectList[EndSelIndex]).Block = CurBlock then begin
+ {if AllSelected then
+ break;}
+ R := PIpHtmlRectListEntry(RectList[EndSelIndex]).Rect;
+ if R.Bottom = 0 then
+ else
+ if (R.Top > FStartSel.y) and (R.Bottom < FEndSel.y) then
+ break
+ else
+ if PtInRect(R, FStartSel) or PtInRect(R, FEndSel) then
+ break
+ else
+ if (R.Bottom < FStartSel.y) then
+ else
+ if (R.Top > FEndSel.Y) then
+ else
+ if (R.Left >= FStartSel.x) and (R.Right <= FEndSel.x) then
+ break;
+ end;
+ dec(EndSelIndex);
+ end;
+ end else begin
+ StartSelIndex := 0;
+ EndSelIndex := RectList.Count - 1;
+ end;
+ result := True;
+end;
+{$ENDIF}
+
procedure TIpHtml.PaintSelection;
var
StartSelIndex, EndSelIndex,
@@ -7822,7 +7953,7 @@ begin
R := PIpHtmlRectListEntry(RectList[i]).Rect;
if PageRectToScreen(R, R) then begin
{$IFDEF IP_LAZARUS}
- writeln('TIpHtml.PaintSelection PatBlt not implemented');
+ DebugLn('TIpHtml.PaintSelection PatBlt not implemented');
{$ELSE}
PatBlt(PaintBuffer.Handle, R.Left, R.Top,
R.Right - R.Left, R.Bottom - R.Top, DSTINVERT);
@@ -7894,7 +8025,9 @@ begin
for i := 0 to pred(ControlList.Count) do
TIpHtmlNode(ControlList[i]).HideUnmarkedControl;
+ {$IFNDEF IP_LAZARUS}
PaintSelection;
+ {$ENDIF}
if UsePaintBuffer then
TargetCanvas.CopyRect(ClientRect, PaintBuffer, ClientRect)
else
@@ -8224,6 +8357,9 @@ begin
Result := ElementPool.NewItm;
Result.ElementType := EType;
Result.Owner := Own;
+ {$IFDEF IP_LAZARUS}
+ Result.IsSelected := False;
+ {$ENDIF}
end;
function TIpHtml.BuildStandardEntry(EType: TElementType): PIpHtmlElement;
@@ -8311,7 +8447,23 @@ begin
RectList.Clear;
end;
+{$IFDEF IP_LAZARUS}
+procedure TIpHtml.DeselectAllItems(Item: Pointer);
+begin
+ PIpHtmlElement(item)^.IsSelected := False;
+end;
+{$ENDIF}
+
procedure TIpHtml.SetSelection(StartPoint, EndPoint: TPoint);
+{$IFDEF IP_LAZARUS}
+var
+ StartSelIndex,EndSelindex: Integer;
+ i: integer;
+ r: TRect;
+ Selected: boolean;
+ DeselectAll: boolean;
+ item: PIpHtmlRectListEntry;
+{$ENDIF}
begin
AllSelected := False;
if EndPoint.y > StartPoint.y then begin
@@ -8331,8 +8483,35 @@ begin
FStartSel := EndPoint;
FEndSel := StartPoint;
end;
+ {$IFDEF IP_LAZARUS}
+ if Body <> nil then begin
+ // invalidate only those blocks that need it
+ DeselectAll := (EndPoint.x<0)and(EndPoint.y<0);
+ GetSelectionBlocks(StartSelIndex,EndSelIndex);
+ for i:= 0 to RectList.Count-1 do begin
+ item := PIpHtmlRectListEntry(RectList[i]);
+ // (de)select only text elements
+ if Item.Node.ElementType<>etWord then
+ continue;
+ if DeselectAll then
+ Selected := false
+ else
+ Selected := (StartSelIndex<=i)and(i<=EndSelIndex);
+ // invalidate only changed elements
+ if Item.Node.IsSelected<>Selected then begin
+ Item.Node.IsSelected := Selected;
+ if Body.PageRectToScreen(Item^.Rect, R) then
+ InvalidateRect(R);
+ end;
+ end;
+ // also deselect remaining elements
+ if DeselectAll then
+ ElementPool.EnumerateItems(DeselectAllItems);
+ end;
+ {$ELSE}
if Body <> nil then
InvalidateRect(Body.PageRect);
+ {$ENDIF}
end;
procedure TIpHtml.SelectAll;
@@ -8428,7 +8607,7 @@ end;
constructor TIpHtmlGifQueueEntry.Create(AGraphic: TGraphic; ARect: TRect);
begin
{$IFDEF IP_LAZARUS}
- writeln('TIpHtmlGifQueueEntry.Create ToDo NOT IMPLEMENTED YET');
+ DebugLn('TIpHtmlGifQueueEntry.Create ToDo NOT IMPLEMENTED YET');
{$ELSE}
FGraphic := AGraphic;
{$ENDIF}
@@ -8799,6 +8978,11 @@ var
R : TRect;
P : TPoint;
L0 : Boolean;
+ {$IFDEF IP_LAZARUS}
+ OldBrushcolor: TColor;
+ OldFontColor: TColor;
+ OldBrushStyle: TBrushStyle;
+ {$ENDIF}
begin
L0 := Level0;
LastProp := nil;
@@ -8837,8 +9021,27 @@ begin
etWord :
begin
P := Owner.PagePtToScreen(CurWord.WordRect2.TopLeft);
+ {$IFDEF IP_LAZARUS}
+ if CurWord.IsSelected then begin
+ OldBrushColor := Owner.Target.Brush.Color;
+ OldBrushStyle := Owner.Target.Brush.Style;
+ OldFontColor := Owner.Target.Font.Color;
+ Owner.Target.Font.color := clHighlightText;
+ Owner.Target.brush.Style := bsSolid;
+ Owner.Target.brush.color := clHighLight;
+ Owner.PageRectToScreen(curWord.WordRect2, R);
+ Owner.Target.FillRect(R);
+ end else
+ {$ENDIF}
Owner.Target.Brush.Style := bsClear;
Owner.Target.TextOut(P.x, P.y, NoBreakToSpace(CurWord.AnsiWord));
+ {$IFDEF IP_LAZARUS}
+ if CurWord.IsSelected then begin
+ Owner.Target.Font.Color := OldFontColor;
+ Owner.Target.Brush.Color := OldBrushColor;
+ Owner.Target.Brush.Style := OldBrushStyle;
+ end;
+ {$ENDIF}
Owner.AddRect(CurWord.WordRect2, CurWord, Self);
end;
etObject :
@@ -8968,7 +9171,7 @@ var
SizeOfSpace := Owner.Target.TextExtent(' ');
{$IFDEF IP_LAZARUS}
if SizeOfSpace.CX=0 then begin
- writeln('TIpHtmlNodeBlock.CalcMinMaxQueueWidth Font not found "',Owner.Target.Font.Name,'" Size=',Owner.Target.Font.Size);
+ DebugLn('TIpHtmlNodeBlock.CalcMinMaxQueueWidth Font not found "',Owner.Target.Font.Name,'" Size=',dbgs(Owner.Target.Font.Size));
end;
{$ENDIF}
SizeOfHyphen := Owner.Target.TextExtent('-');
@@ -10286,6 +10489,9 @@ function TIpHtmlNodeOL.GetNumString: string;
end;
begin
+ {$IFDEF IP_LAZARUS}
+ Result := ''; // stop warning
+ {$ENDIF}
case Style of
olArabic :
str(Counter, Result);
@@ -12545,6 +12751,15 @@ begin
FHeight.Free; {!!.10}
end;
+{$IFDEF IP_LAZARUS}
+function TIpHtmlNodeIMG.GetBorder: integer;
+begin
+ if (FPicture<>nil)and(FPicture.Graphic=nil) then
+ result := 1
+ else
+ result := fBorder;
+end;
+{$ENDIF}
procedure TIpHtmlNodeIMG.Draw;
var
R : TRect;
@@ -12556,14 +12771,13 @@ begin
if (FPicture <> nil) and (FPicture.Graphic = nil) then {!!.15}
LoadImage;
-
Owner.AddRect(GrossDrawRect, Element, Block);
TopLeft := GrossDrawRect.TopLeft;
R.TopLeft := TopLeft;
Dim := GetDim(0);
R.Right := TopLeft.x + Dim.cx;
R.Bottom := TopLeft.y + Dim.cy;
-
+
if Border <> 0 then begin
if Border = 1 then begin
ScreenLine(
@@ -12620,6 +12834,13 @@ begin
InflateRect(R, -HSpace, -VSpace);
if FPicture <> nil then begin
+ {$IFDEF IP_LAZARUS}
+ if FPicture.Graphic=nil then begin
+ if PageRectToScreen(R,R) then
+ Owner.Target.TextRect(R, R.Left, R.Top, GetHint);
+ exit;
+ end;
+ {$ENDIF}
FPicture.Graphic.Transparent := True;
NetDrawRect := R;
if PageRectToScreen(R, R) then begin
@@ -12650,7 +12871,7 @@ begin
Owner.Target.StretchDraw(R, FPicture.Graphic);
end;
end;
- end;
+ end
end;
function TIpHtmlNodeIMG.GrossDrawRect : TRect;
@@ -12754,6 +12975,12 @@ begin
DimKnown := False;
if not DimKnown then begin
if (FPicture <> nil) then begin
+ {$IFDEF IP_LAZARUS}
+ if FPicture.Graphic=nil then
+ // todo: needs to return the "text size" of GetHint
+ FSize := SizeRec(100,20)
+ else
+ {$ENDIF}
if ScaleBitmaps then {!!.10}
FSize := SizeRec(round(FPicture.Width * Aspect), round(FPicture.Height * Aspect))
else
@@ -12767,10 +12994,15 @@ begin
if ScaleBitmaps then {!!.10}
FSize := SizeRec(round(FPicture.Width * Aspect), round(FPicture.Height * Aspect))
else
+ {$IFDEF IP_LAZARUS}
+ if FPicture.Graphic=nil then
+ // todo: needs to return the "text size" of GetHint
+ FSize := SizeRec(100,20)
+ else
+ {$ENDIF}
FSize := SizeRec(FPicture.Width, FPicture.Height);
- end else begin
+ end else
FSize := SizeRec(0, 0);
- end;
end;
end;
if FPicture <> nil then begin
@@ -15020,6 +15252,18 @@ var
Sc : TPoint;
begin
if HtmlPanel.ShowHints and (NewHint <> CurHint) then begin
+ {$IFDEF IP_LAZARUS}
+ if (NewHint<>'') and not HintWindow.Visible then begin
+ Tw := HintWindow.Canvas.TextWidth(NewHint);
+ Th := HintWindow.Canvas.TextHeight(NewHint);
+ Sc := ClientToScreen(Point(HintX,HintY));
+ HintWindow.ActivateHint(Rect(Sc.X - Tw div 2 - 6,
+ Sc.Y + 16 - 6,
+ Sc.X + Tw div 2 + 6,
+ Sc.Y + Th + 16 + 6),
+ NewHint);
+ end;
+ {$ELSE}
if (NewHint <> '') and not IsWindowVisible(HintWindow.Handle) then begin
Tw := HintWindow.Canvas.TextWidth(NewHint);
Th := HintWindow.Canvas.TextHeight(NewHint);
@@ -15030,6 +15274,7 @@ begin
Sc.Y + Th + 16),
NewHint);
end;
+ {$ENDIF}
CurHint := NewHint;
HintShownHere := True;
end;
@@ -15080,15 +15325,21 @@ begin
Hint := Hyper.CurElement.Owner.GetHint
else
Hint := '';
+ {$IFNDEF IP_LAZARUS}
if NewSelection then begin
ClearSelection;
SelStart := Point(X + ViewLeft, Y + ViewTop);
NewSelection := False;
HaveSelection := True;
end;
+ {$ENDIF}
inherited;
if (Hint <> CurHint) and ((abs(HintX - X) > 4) or (abs(HintY - Y) > 4)) then begin
+ {$IFDEF IP_LAZARUS}
+ if HintWindow.Visible then
+ {$ELSE}
if IsWindowVisible(HintWindow.Handle) then
+ {$ENDIF}
HideHint;
HintShownHere := False;
end;
@@ -15100,7 +15351,11 @@ end;
procedure TIpHtmlInternalPanel.HideHint;
begin
+ {$IFDEF IP_LAZARUS}
+ HintWindow.Visible := False;
+ {$ELSE}
HintWindow.ReleaseHandle;
+ {$ENDIF}
end;
procedure TIpHtmlInternalPanel.MouseDown(Button: TMouseButton; Shift: TShiftState;
@@ -15109,8 +15364,17 @@ begin
MouseDownX := X;
MouseDownY := Y;
MouseIsDown := True;
+ {$IFDEF IP_LAZARUS}
+ if (Button=mbLeft) and HtmlPanel.AllowTextSelect then begin
+ ClearSelection;
+ SelStart := Point(X + ViewLeft, Y + ViewTop);
+ NewSelection := False;
+ HaveSelection := True;
+ end;
+ {$ELSE}
NewSelection := HtmlPanel.AllowTextSelect
{TIpHtmlPanel(Parent).AllowTextSelect} and (Button = mbLeft);
+ {$ENDIF}
inherited;
end;
@@ -15128,6 +15392,18 @@ begin
end;
procedure TIpHtmlInternalPanel.Paint;
+ {$IFDEF IP_LAZARUS}
+ procedure DebugBox(R: Trect; cl:TColor; dbg:boolean=false);
+ begin
+ Canvas.Pen.Color := cl;
+ Canvas.Moveto(r.left+(r.right-r.left) div 2, r.top);
+ Canvas.Lineto(r.left+(r.right-r.left) div 2, r.bottom);
+ Canvas.MoveTo(r.Left, r.top+(r.bottom-r.top) div 2);
+ Canvas.LineTo(r.right, r.top+(r.bottom-r.top) div 2);
+ if Dbg then
+ DebugLn(dbgs(R));
+ end;
+ {$ENDIF}
var
CR : TRect;
begin
@@ -15143,13 +15419,17 @@ begin
Point(0, 0)) {!!.10}
else
Canvas.FillRect(CR);
+ {$IFDEF IP_LAZARUS}
+ //DebugBox(CR, clYellow);
+ //Debugbox(Canvas.ClipRect,clLime, true);
+ {$ENDIF}
end;
{!!.10 new}
procedure TIpHtmlInternalPanel.BeginPrint;
{$IFDEF IP_LAZARUS}
begin
- writeln('ToDo: TIpHtmlInternalPanel.BeginPrint');
+ DebugLn('ToDo: TIpHtmlInternalPanel.BeginPrint');
end;
{$ELSE}
var
@@ -15195,7 +15475,7 @@ end;
procedure TIpHtmlInternalPanel.EndPrint;
{$IFDEF IP_LAZARUS}
begin
- writeln('ToDo: TIpHtmlInternalPanel.BeginPrint');
+ DebugLn('ToDo: TIpHtmlInternalPanel.BeginPrint');
end;
{$ELSE}
begin
@@ -15214,7 +15494,7 @@ end;
procedure TIpHtmlInternalPanel.PrintPages(FromPage, ToPage: Integer);
{$IFDEF IP_LAZARUS}
begin
- writeln('ToDo: TIpHtmlInternalPanel.BeginPrint');
+ DebugLn('ToDo: TIpHtmlInternalPanel.BeginPrint');
end;
{$ELSE}
var
@@ -15762,6 +16042,9 @@ begin
FDataProvider := DataProvider;
Html := TIpHtml.Create;
Html.FixedTypeface := Viewer.FixedTypeface; {!!.10}
+ {$IFDEF IP_LAZARUS}
+ Html.DefaultTypeFace := Viewer.DefaultTypeFace;
+ {$ENDIF}
FFlagErrors := FlagErrors;
FMarginWidth := MarginWidth;
FMarginheight := MarginHeight;
@@ -15790,8 +16073,11 @@ end;
procedure TIpHtmlFrame.InvalidateRect(Sender: TIpHtml; const R: TRect);
begin
if HyperPanel <> nil then
- {$IFDEF IP_LAZARUS}LCLIntf.{$ELSE}Windows.{$ENDIF}
- InvalidateRect(HyperPanel.Handle, @R, False);
+ {$IFDEF IP_LAZARUS}
+ LCLIntf.InvalidateRect(HyperPanel.Handle, @R, False);
+ {$ELSE}
+ Windows.InvalidateRect(HyperPanel.Handle, @R, False);
+ {$ENDIF}
end;
procedure TIpHtmlFrame.InvalidateSize(Sender: TObject);
@@ -16802,6 +17088,9 @@ begin
FMarginHeight := 10;
FAllowTextSelect := True;
FixedTypeface := 'Courier New'; {!!.10}
+ {$IFDEF IP_LAZARUS}
+ DefaultTypeFace := Graphics.DefFontData.Name;
+ {$ENDIF}
FPrintSettings := TIpHtmlPrintSettings.Create; {!!.10}
end;
@@ -17196,6 +17485,18 @@ procedure TIpHtmlCustomPanel.SetVersion(const Value : string);
begin
{ Intentionally empty }
end;
+{$IFDEF IP_LAZARUS}
+procedure TIpHtmlCustomPanel.SetDefaultTypeFace(const Value: string);
+begin
+ if FDefaultTypeFace<>Value then begin
+ FDefaultTypeFace := Value;
+ if (MasterFrame<>nil)and(MasterFrame.Html<>nil) then begin
+ MasterFrame.Html.DefaultTypeFace := FDefaultTypeFace;
+ invalidate;
+ end;
+ end;
+end;
+{$ENDIF}
{ TIpHtmlCustomScanner }
diff --git a/components/turbopower_ipro/turbopoweripro.lpk b/components/turbopower_ipro/turbopoweripro.lpk
index d3384e634c..f95731a5a7 100644
--- a/components/turbopower_ipro/turbopoweripro.lpk
+++ b/components/turbopower_ipro/turbopoweripro.lpk
@@ -4,9 +4,13 @@
+
+
+
+