summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim2
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim6
-rwxr-xr-xsrc/nigui/private/windows/windows.nim12
3 files changed, 12 insertions, 8 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index fbb7b45..32473bf 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -568,6 +568,8 @@ method loadFromFile(image: Image, filePath: string) =
let canvas = cast[CanvasImpl](image.fCanvas)
if canvas.fSurface != nil:
cairo_surface_destroy(canvas.fSurface)
+ image.canvas.fWidth = 0
+ image.canvas.fHeight = 0
var error: ptr GError
var pixbuf = gdk_pixbuf_new_from_file(filePath, error.addr)
if pixbuf == nil:
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim
index 401eb1e..536a21b 100755
--- a/src/nigui/private/windows/platform_impl.nim
+++ b/src/nigui/private/windows/platform_impl.nim
@@ -133,13 +133,13 @@ proc pGetWindowLongPtr(hWnd: pointer, nIndex: int32): pointer =
result = GetWindowLongPtrW(hWnd, nIndex)
else:
result = GetWindowLongW(hWnd, nIndex)
-
+
proc pSetWindowLongPtr(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer =
when defined(cpu64):
result = SetWindowLongPtrW(hWnd, nIndex, dwNewLong)
else:
result = SetWindowLongW(hWnd, nIndex, dwNewLong)
-
+
# proc pGetStockObject(fnObject: int32): pointer =
# result = GetStockObject(fnObject)
# if result == nil: pRaiseLastOSError()
@@ -694,6 +694,8 @@ method loadFromFile(image: Image, filePath: string) =
pCheckGdiplusStatus(GdipDeleteGraphics(canvas.fGraphics))
canvas.fBitmap = nil
canvas.fGraphics = nil
+ image.canvas.fWidth = 0
+ image.canvas.fHeight = 0
pCheckGdiplusStatus(GdipCreateBitmapFromFile(filePath.pUtf8ToUtf16(), canvas.fBitmap), false)
pCheckGdiplusStatus(GdipGetImageGraphicsContext(canvas.fBitmap, canvas.fGraphics))
var width, height: int32
diff --git a/src/nigui/private/windows/windows.nim b/src/nigui/private/windows/windows.nim
index 8c1aa72..4eb2ffa 100755
--- a/src/nigui/private/windows/windows.nim
+++ b/src/nigui/private/windows/windows.nim
@@ -369,16 +369,16 @@ proc FillRect*(hDC: pointer, lprc: var Rect, hbr: pointer): int32 {.importc: "Fi
proc FrameRect*(hDC: pointer, lprc: var Rect, hbr: pointer): int32 {.importc: "FrameRect", libUser32.}
proc GetKeyState*(nVirtKey: int32): int16 {.importc: "GetKeyState", libUser32.}
-proc GetWindowLongW*(hWnd: pointer, nIndex: int32): pointer {.importc: "GetWindowLongW", libUser32.}
-proc SetWindowLongW*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetWindowLongW", libUser32.}
-# proc SetClassLongA*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetClassLongA", libUser32.}
-
when defined(cpu64):
# Only available on 64-bit Windows:
proc GetWindowLongPtrW*(hWnd: pointer, nIndex: int32): pointer {.importc: "GetWindowLongPtrW", libUser32.}
proc SetWindowLongPtrW*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetWindowLongPtrW", libUser32.}
# proc SetClassLongPtrA*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetClassLongPtrA", libUser32.}
-
+else:
+ # Should only be used on 32-bit Windows:
+ proc GetWindowLongW*(hWnd: pointer, nIndex: int32): pointer {.importc: "GetWindowLongW", libUser32.}
+ proc SetWindowLongW*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetWindowLongW", libUser32.}
+ # proc SetClassLongA*(hWnd: pointer, nIndex: int32, dwNewLong: pointer): pointer {.importc: "SetClassLongA", libUser32.}
# ----------------------------------------------------------------------------------------
@@ -431,7 +431,7 @@ proc GdipDrawRectangleI*(graphics, pen: pointer, x, y, width, height: int32): in
proc GdipDrawLineI*(graphics, pen: pointer, x1, y1, x2, y2: int32): int32 {.importc: "GdipDrawLineI", libGdiplus.}
proc GdipCreateSolidFill*(color: ARGB, brush: var pointer): int32 {.importc: "GdipCreateSolidFill", libGdiplus.}
proc GdipDeleteBrush*(brush: pointer): int32 {.importc: "GdipDeleteBrush", libGdiplus.}
-proc GdipCreatePen1*(color: ARGB, width: float, unit: int32, pen: var pointer): int32 {.importc: "GdipCreatePen1", libGdiplus.}
+proc GdipCreatePen1*(color: ARGB, width: cfloat, unit: int32, pen: var pointer): int32 {.importc: "GdipCreatePen1", libGdiplus.}
proc GdipDeletePen*(pen: pointer): int32 {.importc: "GdipDeletePen", libGdiplus.}
proc GdipDrawString*(graphics: pointer, `string`: cstring, length: int32, font: pointer, layoutRect: var RectF, stringFormat, brush: pointer): int32 {.importc: "GdipDrawString", libGdiplus.}
proc GdipMeasureString*(graphics: pointer, `string`: cstring, length: int32, font: pointer, layoutRect: var RectF, stringFormat: pointer, boundingBox: var RectF, codepointsFitted, linesFilled: pointer): int32 {.importc: "GdipMeasureString", libGdiplus.}