From c0803831e6220c31c0c6c918f81817d0b01e4cb1 Mon Sep 17 00:00:00 2001 From: trustable-code Date: Sat, 31 Aug 2019 12:30:14 +0200 Subject: Rework error handling, related to #48 --- src/nigui/private/gtk3/gtk3.nim | 2 +- src/nigui/private/gtk3/platform_impl.nim | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src/nigui/private/gtk3') diff --git a/src/nigui/private/gtk3/gtk3.nim b/src/nigui/private/gtk3/gtk3.nim index e23c941..d7d9a1c 100755 --- a/src/nigui/private/gtk3/gtk3.nim +++ b/src/nigui/private/gtk3/gtk3.nim @@ -240,7 +240,7 @@ proc gtk_window_resize_to_geometry*(window: pointer, width, height: cint) {.impo proc gtk_window_get_size*(window: pointer, width, height: var cint) {.importc: "gtk_window_get_size", libgtk3.} proc gtk_window_get_position*(window: pointer, x, y: var cint) {.importc: "gtk_window_get_position", libgtk3.} proc gtk_window_move*(window: pointer, x, y: cint) {.importc: "gtk_window_move", libgtk3.} -proc gtk_window_set_icon_from_file*(window: pointer, filename: cstring, err: pointer) {.importc: "gtk_window_set_icon_from_file", libgtk3.} +proc gtk_window_set_icon_from_file*(window: pointer, filename: cstring, err: pointer): bool {.importc: "gtk_window_set_icon_from_file", libgtk3.} proc gtk_window_iconify*(window: pointer) {.importc: "gtk_window_iconify", libgtk3.} proc gtk_window_deiconify*(window: pointer) {.importc: "gtk_window_deiconify", libgtk3.} proc gtk_window_present*(window: pointer) {.importc: "gtk_window_present", libgtk3.} diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index e8a2649..4014047 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -27,7 +27,7 @@ var pClipboardTextIsSet: bool proc pRaiseGError(error: ptr GError) = if error == nil: raiseError("Unkown error") - raiseError($error.message, false) + raiseError($error.message) proc pColorToGdkRGBA(color: Color, rgba: var GdkRGBA) = rgba.red = color.red.float / 255 @@ -811,7 +811,11 @@ method `control=`(window: WindowImpl, control: Control) = method `iconPath=`(window: WindowImpl, iconPath: string) = procCall window.Window.`iconPath=`(iconPath) - gtk_window_set_icon_from_file(window.fHandle, iconPath, nil) + if not gtk_window_set_icon_from_file(window.fHandle, iconPath, nil): + if not fileExists(iconPath): + raiseError("Faild to load image from file '" & iconPath & "': File does not exist") + else: + raiseError("Faild to load image from file '" & iconPath & "'") # ---------------------------------------------------------------------------------------- -- cgit v1.2.3