mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 17:59:16 +02:00
implemented gtk GetTextExtentPoint for UTF8
git-svn-id: trunk@6454 -
This commit is contained in:
parent
0b6defabbf
commit
3ed44e9dd9
@ -104,7 +104,7 @@ var
|
||||
CurToken:=copy(AKey,TokenStart,TokenEnd-TokenStart);
|
||||
ACanvas.TextOut(x+1, y, CurToken);
|
||||
x := x + ACanvas.TextWidth(CurToken);
|
||||
//debugln('Paint A Text="',CurToken,'" x=',dbgs(x),' y=',dbgs(y),' "',ACanvas.Font.Name,'" ',dbgs(ACanvas.Font.Height));
|
||||
//debugln('Paint A Text="',CurToken,'" x=',dbgs(x),' y=',dbgs(y),' "',ACanvas.Font.Name,'" ',dbgs(ACanvas.Font.Height),' ',dbgs(ACanvas.TextWidth(CurToken)));
|
||||
TokenStart:=0;
|
||||
end;
|
||||
end;
|
||||
|
@ -132,8 +132,8 @@ function GetSystemPaletteEntries(DC: HDC; StartIndex, NumEntries: UINT;
|
||||
function GetSystemMetrics(nIndex: Integer): Integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextColor(DC: HDC) : TColorRef; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextExtentExPoint(DC: HDC; Str: PChar; Count, MaxWidth: Integer; MaxCount, PartialWidths: PInteger; var Size: TSize): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer; var Size: TSize): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextExtentPoint32(DC: HDC; Str: PChar; Count: Integer; var Size: TSize): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer; var Size: LCLType.TSize): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextExtentPoint32(DC: HDC; Str: PChar; Count: Integer; var Size: LCLType.TSize): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetTextMetrics(DC: HDC; var TM: TTextMetric): Boolean; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetWindowLong(Handle : hwnd; int : Integer): Longint; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
function GetWindowRect(Handle : hwnd; var Rect : TRect): Integer; {$IFDEF IF_BASE_MEMBER}virtual;{$ENDIF}
|
||||
@ -295,6 +295,9 @@ function RGB(R, G, B : Byte) : TColorRef;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.101 2005/01/01 20:17:30 mattias
|
||||
implemented gtk GetTextExtentPoint for UTF8
|
||||
|
||||
Revision 1.100 2004/04/10 17:58:57 mattias
|
||||
implemented mainunit hints for include files
|
||||
|
||||
|
@ -5409,6 +5409,8 @@ var
|
||||
lbearing, rbearing, width, ascent,descent: LongInt;
|
||||
UseFont : PGDKFont;
|
||||
UnRef : Boolean;
|
||||
IsDBCSFont: Boolean;
|
||||
NewCount: Integer;
|
||||
begin
|
||||
Result := IsValidDC(DC);
|
||||
if Result
|
||||
@ -5427,10 +5429,23 @@ begin
|
||||
DebugLn('WARNING: [TGtkWidgetSet.GetTextExtentPoint] Missing font')
|
||||
else begin
|
||||
descent:=0;
|
||||
gdk_text_extents(UseFont, Str, Count,
|
||||
@lbearing, @rBearing, @width, @ascent, @descent);
|
||||
UpdateDCTextMetric(TDeviceContext(DC));
|
||||
IsDBCSFont:=TDeviceContext(DC).DCTextMetric.IsDoubleByteChar;
|
||||
if IsDBCSFont then begin
|
||||
NewCount:=Count*2;
|
||||
if FExtUTF8OutCacheSize<NewCount then begin
|
||||
ReAllocMem(FExtUTF8OutCache,NewCount);
|
||||
FExtUTF8OutCacheSize:=NewCount;
|
||||
end;
|
||||
NewCount:=UTF8ToDoubleByte(Str,Count,FExtUTF8OutCache)*2;
|
||||
gdk_text_extents(UseFont, FExtUTF8OutCache, NewCount,
|
||||
@lbearing, @rBearing, @width, @ascent, @descent);
|
||||
end else begin
|
||||
gdk_text_extents(UseFont, Str, Count,
|
||||
@lbearing, @rBearing, @width, @ascent, @descent);
|
||||
end;
|
||||
Size.cX := Width;
|
||||
//I THINK this is accurate...
|
||||
// I THINK this is accurate...
|
||||
Size.cY := GDK_String_Height(UseFont, Str)
|
||||
{$IfNDef Win32} + descent div 2{$EndIf};
|
||||
If UnRef then
|
||||
@ -8811,6 +8826,9 @@ end;
|
||||
{ =============================================================================
|
||||
|
||||
$Log$
|
||||
Revision 1.382 2005/01/01 20:17:32 mattias
|
||||
implemented gtk GetTextExtentPoint for UTF8
|
||||
|
||||
Revision 1.381 2005/01/01 16:04:13 mattias
|
||||
implemented CodeExplorer auto update on switching source editor page
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user