mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 04:29:25 +02:00
QT: correction in DrawText with DT_CALCRECT
git-svn-id: trunk@11532 -
This commit is contained in:
parent
3e9d95ad12
commit
0d3a0d3d89
@ -52,7 +52,6 @@ type
|
||||
procedure DrawElement(DC: HDC; Details: TThemedElementDetails; const R: TRect; ClipRect: PRect); override;
|
||||
procedure DrawEdge(DC: HDC; Details: TThemedElementDetails; const R: TRect; Edge, Flags: Cardinal; AContentRect: PRect); override;
|
||||
procedure DrawIcon(DC: HDC; Details: TThemedElementDetails; const R: TRect; himl: HIMAGELIST; Index: Integer); override;
|
||||
procedure DrawText(ACanvas: TPersistent; Details: TThemedElementDetails; const S: WideString; R: TRect; Flags, Flags2: Cardinal); override;
|
||||
|
||||
function ContentRect(DC: HDC; Details: TThemedElementDetails; BoundingRect: TRect): TRect; override;
|
||||
function HasTransparentParts(Details: TThemedElementDetails): Boolean; override;
|
||||
@ -163,19 +162,6 @@ begin
|
||||
|
||||
end;
|
||||
|
||||
procedure TQtThemeServices.DrawText(ACanvas: TPersistent;
|
||||
Details: TThemedElementDetails; const S: WideString; R: TRect; Flags,
|
||||
Flags2: Cardinal);
|
||||
begin
|
||||
with TCanvas(ACanvas) do
|
||||
begin
|
||||
WidgetSet.SetBkMode(Handle, TRANSPARENT);
|
||||
WidgetSet.DrawText(Handle, PChar(String(S)), Length(S), R, Flags);
|
||||
if Brush.Style = bsSolid then;
|
||||
WidgetSet.SetBkMode(Handle, OPAQUE);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TQtThemeServices.HasTransparentParts(Details: TThemedElementDetails): Boolean;
|
||||
begin
|
||||
Result := True;
|
||||
|
@ -739,7 +739,7 @@ end;
|
||||
* The result will the height of the text.
|
||||
------------------------------------------------------------------------------}
|
||||
function TQtWidgetSet.DrawText(DC: HDC; Str: PChar; Count: Integer;
|
||||
var Rect: TRect; Flags: Cardinal): Integer;
|
||||
var ARect: TRect; Flags: Cardinal): Integer;
|
||||
var
|
||||
WideStr: WideString;
|
||||
QtFontMetrics: TQtFontMetrics;
|
||||
@ -792,7 +792,7 @@ begin
|
||||
if Flags and DT_NOPREFIX = 0 then
|
||||
F := F or $800;{QTTextShowMnemonic;}
|
||||
|
||||
QFontMetrics_BoundingRect(QtFontMetrics.Widget, @R, @Rect, F, @WideStr);
|
||||
QFontMetrics_BoundingRect(QtFontMetrics.Widget, @R, @ARect, F, @WideStr);
|
||||
|
||||
|
||||
//TODO: result should be different when DT_VCENTER or DT_BOTTOM is set
|
||||
@ -807,11 +807,12 @@ begin
|
||||
{$ifdef VerboseQtWinAPI}
|
||||
WriteLn('[WinAPI DrawText] Rect=', dbgs(Rect));
|
||||
{$endif}
|
||||
Rect := R;
|
||||
ARect.Right := ARect.Left + R.Right - R.Left;
|
||||
ARect.Bottom := ARect.Top + R.Bottom - R.Top;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
with Rect do
|
||||
with ARect do
|
||||
QtDC.DrawText(left, Top, Right-Left, Bottom-Top, F, @WideStr);
|
||||
|
||||
end;
|
||||
|
@ -49,7 +49,7 @@ procedure DeleteCriticalSection(var CritSection: TCriticalSection); override;
|
||||
function DeleteObject(GDIObject: HGDIOBJ): Boolean; override;
|
||||
function DestroyCaret(Handle : HWND): Boolean; override;
|
||||
function DestroyCursor(Handle: hCursor): Boolean; override;
|
||||
function DrawText(DC: HDC; Str: PChar; Count: Integer; var Rect: TRect; Flags: Cardinal): Integer; override;
|
||||
function DrawText(DC: HDC; Str: PChar; Count: Integer; var ARect: TRect; Flags: Cardinal): Integer; override;
|
||||
|
||||
function Ellipse(DC: HDC; x1, y1, x2, y2: Integer): Boolean; override;
|
||||
function EndPaint(Handle: hwnd; var PS: TPaintStruct): Integer; override;
|
||||
|
Loading…
Reference in New Issue
Block a user