mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 03:19:17 +02:00
customdrawn: Some more DPI improvements for Android
git-svn-id: trunk@33519 -
This commit is contained in:
parent
6015d7f9cc
commit
9c85b9706c
@ -25,6 +25,18 @@ type
|
|||||||
procedure CreateResources; override;
|
procedure CreateResources; override;
|
||||||
procedure LoadResources; override;
|
procedure LoadResources; override;
|
||||||
procedure FreeResources; override;
|
procedure FreeResources; override;
|
||||||
|
//procedure LoadFallbackPaletteColors; override;
|
||||||
|
function GetDrawStyle: TCDDrawStyle; override;
|
||||||
|
// General
|
||||||
|
function GetMeasures(AMeasureID: Integer): Integer; override;
|
||||||
|
{ function GetMeasuresEx(ADest: TCanvas; AMeasureID: Integer;
|
||||||
|
AState: TCDControlState; AStateEx: TCDControlStateEx): Integer; virtual; abstract;
|
||||||
|
procedure CalculatePreferredSize(ADest: TCanvas; AControlId: TCDControlID;
|
||||||
|
AState: TCDControlState; AStateEx: TCDControlStateEx;
|
||||||
|
var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean); virtual; abstract;
|
||||||
|
function GetColor(AColorID: Integer): TColor; virtual; abstract;
|
||||||
|
function GetClientArea(ADest: TCanvas; ASize: TSize; AControlId: TCDControlID;
|
||||||
|
AState: TCDControlState; AStateEx: TCDControlStateEx): TRect; virtual; abstract;}
|
||||||
// General drawing routines
|
// General drawing routines
|
||||||
{procedure DrawFocusRect(ADest: TCanvas; ADestPos: TPoint; ASize: TSize); override;
|
{procedure DrawFocusRect(ADest: TCanvas; ADestPos: TPoint; ASize: TSize); override;
|
||||||
procedure DrawRaisedFrame(ADest: TCanvas; ADestPos: TPoint; ASize: TSize); override;
|
procedure DrawRaisedFrame(ADest: TCanvas; ADestPos: TPoint; ASize: TSize); override;
|
||||||
@ -111,12 +123,8 @@ begin
|
|||||||
bmpCheckboxChecked.LoadFromLazarusResource('android_checkbox_checked');
|
bmpCheckboxChecked.LoadFromLazarusResource('android_checkbox_checked');
|
||||||
|
|
||||||
// for now hardcoded to ldpi
|
// for now hardcoded to ldpi
|
||||||
bmpCheckbox.Canvas.StretchDraw(Bounds(0, 0, 22, 22), bmpCheckbox);
|
ScaleRasterImage(bmpCheckbox, 160, 96);
|
||||||
bmpCheckbox.Width := 22;
|
ScaleRasterImage(bmpCheckboxChecked, 160, 96);
|
||||||
bmpCheckbox.Height := 22;
|
|
||||||
bmpCheckboxChecked.Canvas.StretchDraw(Bounds(0, 0, 22, 22), bmpCheckboxChecked);
|
|
||||||
bmpCheckboxChecked.Width := 22;
|
|
||||||
bmpCheckboxChecked.Height := 22;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCDDrawerAndroid.FreeResources;
|
procedure TCDDrawerAndroid.FreeResources;
|
||||||
@ -125,6 +133,45 @@ begin
|
|||||||
bmpCheckboxChecked.Free;
|
bmpCheckboxChecked.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCDDrawerAndroid.GetDrawStyle: TCDDrawStyle;
|
||||||
|
begin
|
||||||
|
Result := dsAndroid;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCDDrawerAndroid.GetMeasures(AMeasureID: Integer): Integer;
|
||||||
|
begin
|
||||||
|
case AMeasureID of
|
||||||
|
{ TCDEDIT_LEFT_TEXT_SPACING: Result := 4;
|
||||||
|
TCDEDIT_RIGHT_TEXT_SPACING: Result := 3;
|
||||||
|
TCDEDIT_TOP_TEXT_SPACING: Result := 3;
|
||||||
|
TCDEDIT_BOTTOM_TEXT_SPACING: Result := 3;}
|
||||||
|
//
|
||||||
|
TCDCHECKBOX_SQUARE_HALF_HEIGHT: Result := 9;
|
||||||
|
TCDCHECKBOX_SQUARE_HEIGHT: Result := 18;
|
||||||
|
{ //
|
||||||
|
TCDRADIOBUTTON_CIRCLE_HEIGHT: Result := 15;
|
||||||
|
//
|
||||||
|
TCDSCROLLBAR_BUTTON_WIDTH: Result := 17;
|
||||||
|
TCDSCROLLBAR_LEFT_SPACING: Result := 17;
|
||||||
|
TCDSCROLLBAR_RIGHT_SPACING: Result := 17;
|
||||||
|
TCDSCROLLBAR_LEFT_BUTTON_POS: Result := 0;
|
||||||
|
TCDSCROLLBAR_RIGHT_BUTTON_POS: Result := -17;
|
||||||
|
//
|
||||||
|
TCDTRACKBAR_LEFT_SPACING: Result := 9;
|
||||||
|
TCDTRACKBAR_RIGHT_SPACING: Result := 9;
|
||||||
|
TCDTRACKBAR_TOP_SPACING: Result := 5;
|
||||||
|
TCDTRACKBAR_FRAME_HEIGHT: Result := 17;
|
||||||
|
//
|
||||||
|
TCDLISTVIEW_COLUMN_LEFT_SPACING: Result := 10;
|
||||||
|
TCDLISTVIEW_COLUMN_RIGHT_SPACING: Result := 10;
|
||||||
|
TCDLISTVIEW_COLUMN_TEXT_LEFT_SPACING: Result := 5;
|
||||||
|
TCDLISTVIEW_LINE_TOP_SPACING: Result := 3;
|
||||||
|
TCDLISTVIEW_LINE_BOTTOM_SPACING: Result := 3;}
|
||||||
|
else
|
||||||
|
Result := inherited GetMeasures(AMeasureID);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCDDrawerAndroid.DrawTickmark(ADest: TCanvas; ADestPos: TPoint);
|
procedure TCDDrawerAndroid.DrawTickmark(ADest: TCanvas; ADestPos: TPoint);
|
||||||
begin
|
begin
|
||||||
// Don't draw anything, tickmarks are impressed into the general images
|
// Don't draw anything, tickmarks are impressed into the general images
|
||||||
|
@ -239,6 +239,7 @@ type
|
|||||||
procedure CreateResources; virtual;
|
procedure CreateResources; virtual;
|
||||||
procedure LoadResources; virtual;
|
procedure LoadResources; virtual;
|
||||||
procedure FreeResources; virtual;
|
procedure FreeResources; virtual;
|
||||||
|
procedure ScaleRasterImage(ARasterImage: TRasterImage; ASourceDPI, ADestDPI: Word);
|
||||||
procedure SetPaletteKind(APaletteKind: TCDPaletteKind);
|
procedure SetPaletteKind(APaletteKind: TCDPaletteKind);
|
||||||
procedure LoadNativePaletteColors;
|
procedure LoadNativePaletteColors;
|
||||||
procedure LoadFallbackPaletteColors; virtual;
|
procedure LoadFallbackPaletteColors; virtual;
|
||||||
@ -442,6 +443,17 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCDDrawer.ScaleRasterImage(ARasterImage: TRasterImage; ASourceDPI, ADestDPI: Word);
|
||||||
|
var
|
||||||
|
lNewWidth, lNewHeight: Int64;
|
||||||
|
begin
|
||||||
|
lNewWidth := Round(ARasterImage.Width * ADestDPI / ASourceDPI);
|
||||||
|
lNewHeight := Round(ARasterImage.Height * ADestDPI / ASourceDPI);
|
||||||
|
ARasterImage.Canvas.StretchDraw(Bounds(0, 0, lNewWidth, lNewHeight), ARasterImage);
|
||||||
|
ARasterImage.Width := lNewWidth;
|
||||||
|
ARasterImage.Height := lNewHeight;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCDDrawer.SetPaletteKind(APaletteKind: TCDPaletteKind);
|
procedure TCDDrawer.SetPaletteKind(APaletteKind: TCDPaletteKind);
|
||||||
var
|
var
|
||||||
lIsOnNativeSystem: Boolean = False;
|
lIsOnNativeSystem: Boolean = False;
|
||||||
|
Loading…
Reference in New Issue
Block a user