mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 15:09:36 +01: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