summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2018-12-06 19:35:45 +0100
committertrustable-code <krauter.simon@arcor.de>2018-12-06 19:35:45 +0100
commit3a3d374837dc04ab6c67794fe09798489beea9c4 (patch)
tree36f32d74518daac9179c9eeccf8448fb257df5a1
parentd5b65cdbe3aba910badc1adf2358447c4ee0e0c7 (diff)
downloadNiGui-3a3d374837dc04ab6c67794fe09798489beea9c4.tar.gz
NiGui-3a3d374837dc04ab6c67794fe09798489beea9c4.zip
Add Canvas lineWidth property
-rwxr-xr-xsrc/nigui.nim9
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim3
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim4
3 files changed, 13 insertions, 3 deletions
diff --git a/src/nigui.nim b/src/nigui.nim
index 500eb89..e8878f7 100755
--- a/src/nigui.nim
+++ b/src/nigui.nim
@@ -210,6 +210,7 @@ type
fFontSize: float
fTextColor: Color
fLineColor: Color
+ fLineWidth: float
fAreaColor: Color
Image* = ref object of RootObj
@@ -446,6 +447,9 @@ method `textColor=`*(canvas: Canvas, color: Color)
method lineColor*(canvas: Canvas): Color
method `lineColor=`*(canvas: Canvas, color: Color)
+method lineWidth*(canvas: Canvas): float
+method `lineWidth=`*(canvas: Canvas, width: float)
+
method areaColor*(canvas: Canvas): Color
method `areaColor=`*(canvas: Canvas, color: Color)
@@ -1066,6 +1070,7 @@ proc internalAllKeysUp() =
proc newCanvas(control: Control = nil): CanvasImpl =
result = new CanvasImpl
result.fLineColor = rgb(0, 0, 0)
+ result.fLineWidth = 1
result.fAreaColor = rgb(0, 0, 0)
if control == nil:
result.fFontFamily = app.defaultFontFamily
@@ -1101,6 +1106,10 @@ method lineColor(canvas: Canvas): Color = canvas.fLineColor
method `lineColor=`(canvas: Canvas, color: Color) = canvas.fLineColor = color
+method lineWidth(canvas: Canvas): float = canvas.fLineWidth
+
+method `lineWidth=`(canvas: Canvas, width: float) = canvas.fLineWidth = width
+
method areaColor(canvas: Canvas): Color = canvas.fAreaColor
method `areaColor=`(canvas: Canvas, color: Color) = canvas.fAreaColor = color
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index 239ce59..1a94e70 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -451,6 +451,7 @@ method drawLine(canvas: Canvas, x1, y1, x2, y2: int) =
gdk_cairo_set_source_rgba(cr, rgba)
cairo_move_to(cr, x1.float, y1.float)
cairo_line_to(cr, x2.float, y2.float)
+ cairo_set_line_width(cr, canvas.lineWidth)
cairo_stroke(cr)
method drawRectArea(canvas: Canvas, x, y, width, height: int) =
@@ -471,7 +472,7 @@ method drawRectOutline(canvas: Canvas, x, y, width, height: int) =
canvas.lineColor.pColorToGdkRGBA(rgba)
gdk_cairo_set_source_rgba(cr, rgba)
cairo_rectangle(cr, x.float, y.float, width.float, height.float)
- cairo_set_line_width(cr, 1)
+ cairo_set_line_width(cr, canvas.lineWidth)
cairo_stroke(cr)
method drawImage(canvas: Canvas, image: Image, x, y = 0, width, height = -1) =
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim
index 4b60e1e..6a051c1 100755
--- a/src/nigui/private/windows/platform_impl.nim
+++ b/src/nigui/private/windows/platform_impl.nim
@@ -600,7 +600,7 @@ method drawLine(canvas: Canvas, x1, y1, x2, y2: int) =
if canvasImpl.fGraphics == nil:
raiseError("Canvas is not in drawing state.")
if canvasImpl.fLinePen == nil:
- pCheckGdiplusStatus(GdipCreatePen1(canvas.lineColor.pColorToARGB(), 1, UnitPixel, canvasImpl.fLinePen))
+ pCheckGdiplusStatus(GdipCreatePen1(canvas.lineColor.pColorToARGB(), canvasImpl.lineWidth, UnitPixel, canvasImpl.fLinePen))
pCheckGdiplusStatus(GdipDrawLineI(canvasImpl.fGraphics, canvasImpl.fLinePen, x1.int32, y1.int32, x2.int32, y2.int32))
method drawRectArea(canvas: Canvas, x, y, width, height: int) =
@@ -616,7 +616,7 @@ method drawRectOutline(canvas: Canvas, x, y, width, height: int) =
if canvasImpl.fGraphics == nil:
raiseError("Canvas is not in drawing state.")
var pen: pointer
- pCheckGdiplusStatus(GdipCreatePen1(canvas.lineColor.pColorToARGB(), 1, UnitPixel, pen))
+ pCheckGdiplusStatus(GdipCreatePen1(canvas.lineColor.pColorToARGB(), canvasImpl.lineWidth, UnitPixel, pen))
pCheckGdiplusStatus(GdipDrawRectangleI(canvasImpl.fGraphics, pen, x.int32, y.int32, width.int32, height.int32))
method drawImage(canvas: Canvas, image: Image, x, y = 0, width, height = -1) =