mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 00:09:15 +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 LoadResources; 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
|
||||
{procedure DrawFocusRect(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');
|
||||
|
||||
// for now hardcoded to ldpi
|
||||
bmpCheckbox.Canvas.StretchDraw(Bounds(0, 0, 22, 22), bmpCheckbox);
|
||||
bmpCheckbox.Width := 22;
|
||||
bmpCheckbox.Height := 22;
|
||||
bmpCheckboxChecked.Canvas.StretchDraw(Bounds(0, 0, 22, 22), bmpCheckboxChecked);
|
||||
bmpCheckboxChecked.Width := 22;
|
||||
bmpCheckboxChecked.Height := 22;
|
||||
ScaleRasterImage(bmpCheckbox, 160, 96);
|
||||
ScaleRasterImage(bmpCheckboxChecked, 160, 96);
|
||||
end;
|
||||
|
||||
procedure TCDDrawerAndroid.FreeResources;
|
||||
@ -125,6 +133,45 @@ begin
|
||||
bmpCheckboxChecked.Free;
|
||||
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);
|
||||
begin
|
||||
// Don't draw anything, tickmarks are impressed into the general images
|
||||
|
@ -239,6 +239,7 @@ type
|
||||
procedure CreateResources; virtual;
|
||||
procedure LoadResources; virtual;
|
||||
procedure FreeResources; virtual;
|
||||
procedure ScaleRasterImage(ARasterImage: TRasterImage; ASourceDPI, ADestDPI: Word);
|
||||
procedure SetPaletteKind(APaletteKind: TCDPaletteKind);
|
||||
procedure LoadNativePaletteColors;
|
||||
procedure LoadFallbackPaletteColors; virtual;
|
||||
@ -442,6 +443,17 @@ begin
|
||||
|
||||
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);
|
||||
var
|
||||
lIsOnNativeSystem: Boolean = False;
|
||||
|
Loading…
Reference in New Issue
Block a user