mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 22:36:17 +02:00
LCL-GTK3: Implement Canvas.Pixels[]. Issue #36472, patch from CudaText man.
git-svn-id: trunk@62472 -
This commit is contained in:
parent
2bc8095d8d
commit
593915c4b3
@ -609,22 +609,10 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TGtk3WidgetSet.DCSetPixel(CanvasHandle: HDC; X, Y: integer;
|
||||
AColor: TGraphicsColor);
|
||||
var
|
||||
ASavedPenColor: TColor;
|
||||
cr: PCairo_t;
|
||||
procedure TGtk3WidgetSet.DCSetPixel(CanvasHandle: HDC; X, Y: Integer; AColor: TGraphicsColor);
|
||||
begin
|
||||
if IsValidDC(CanvasHandle) then
|
||||
begin
|
||||
cr := TGtk3DeviceContext(CanvasHandle).Widget;
|
||||
ASavedPenColor := TGtk3DeviceContext(CanvasHandle).CurrentPen.Color;
|
||||
TGtk3DeviceContext(CanvasHandle).CurrentPen.Color := AColor;
|
||||
cairo_move_to(cr, X, Y);
|
||||
cairo_line_to(cr, X, Y);
|
||||
cairo_stroke(cr);
|
||||
TGtk3DeviceContext(CanvasHandle).CurrentPen.Color := ASavedPenColor;
|
||||
end;
|
||||
TGtk3DeviceContext(CanvasHandle).drawPixel(X, Y, AColor);
|
||||
end;
|
||||
|
||||
procedure TGtk3WidgetSet.DCRedraw(CanvasHandle: HDC);
|
||||
|
@ -212,7 +212,7 @@ type
|
||||
procedure CreateObjects;
|
||||
procedure DeleteObjects;
|
||||
public
|
||||
procedure drawPoint(x1: Integer; y1: Integer);
|
||||
procedure drawPixel(x, y: Integer; AColor: TColor);
|
||||
procedure drawRect(x1, y1, w, h: Integer; const AFill, ABorder: Boolean);
|
||||
procedure drawRoundRect(x, y, w, h, rx, ry: Integer);
|
||||
procedure drawText(x: Integer; y: Integer; const s: String); overload;
|
||||
@ -1211,11 +1211,13 @@ begin
|
||||
FreeAndNil(FvImage);
|
||||
end;
|
||||
|
||||
procedure TGtk3DeviceContext.drawPoint(x1: Integer; y1: Integer);
|
||||
procedure TGtk3DeviceContext.drawPixel(x, y: Integer; AColor: TColor);
|
||||
// Seems that painting line from (a-1, b-1) to (a,b) gives one pixel
|
||||
begin
|
||||
applyPen;
|
||||
cairo_move_to(Widget , x1, y1);
|
||||
cairo_line_to(Widget, x1, y1);
|
||||
SetSourceColor(AColor);
|
||||
cairo_set_line_width(Widget, 1);
|
||||
cairo_move_to(Widget, x - PixelOffset, y - PixelOffset);
|
||||
cairo_line_to(Widget, x + PixelOffset, y + PixelOffset);
|
||||
cairo_stroke(Widget);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user