diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 2 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim | 6 | ||||
| -rwxr-xr-x | src/nigui/private/windows/windows.nim | 12 |
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.} |
