{.passL: "`pkg-config gtk+-3.0 webkit2gtk-4.1 gtksourceview-4 pango --libs`".} when defined(useFuthark) or defined(useFutharkForGtk): import futhark import strutils, os proc renameCallback(name, kind: string, partOf = ""): string = result = name if name.startsWith("gtk_"): result = name[4..^1] importc: path "/usr/include/gtksourceview-4/" path "/usr/include/webkitgtk-4.1/webkit" path "/usr/include/webkitgtk-4.1/webkit2" path "/usr/include/webkitgtk-4.1/webkitdom" path "/usr/include/webkitgtk-4.1/JavaScriptCore" path "/usr/include/webkitgtk-4.1/jsc" path "/usr/include/gtk-3.0" path "/usr/include/gio-2.0" path "/usr/include/glib-2.0" path "/usr/include/pango-1.0" compilerarg "`pkg-config gtk+-3.0 webkit2gtk-4.1 gtksourceview-4 pango --cflags`" renameCallback renameCallback "gtk/gtk.h" "glib.h" "gobject/gsignal.h" "webkit2/webkit2.h" "webkitdom/webkitdom.h" "JavaScriptCore/JavaScript.h" "jsc/jsc.h" "gio/gcontenttype.h" "gtksourceview/gtksource.h" "pango/pango.h" outputPath currentSourcePath.parentDir / "futhark_gtk.nim" else: include "futhark_gtk.nim" converter cstringToPtrGchar*(str: cstring): ptr gchar = cast[ptr gchar](str) converter toWidget*(p: ptr WebkitWebView): ptr GtkWidget = cast[ptr GtkWidget](p) converter toGboolean*(b: bool): gboolean = b.gboolean proc widget*(x: any): ptr GtkWidget = cast[ptr GtkWidget](x) # {.importc: "GTK_WIDGET".} proc container*(x: any): ptr GtkContainer = cast[ptr GtkContainer](x) # {.importc: "GTK_WIDGET".} let G_TYPE_INVALID* = GType(0 shl 2) G_TYPE_NONE* {.importc.}: GType #G_TYPE_INTERFACE* {.importc.}: GType G_TYPE_CHAR* {.importc.}: GType G_TYPE_UCHAR* {.importc.}: GType G_TYPE_BOOLEAN* {.importc.}: GType G_TYPE_INT* {.importc.}: GType G_TYPE_UINT* {.importc.}: GType G_TYPE_LONG* {.importc.}: GType G_TYPE_ULONG* {.importc.}: GType G_TYPE_INT64* {.importc.}: GType G_TYPE_UINT64* {.importc.}: GType G_TYPE_ENUM* {.importc.}: GType #G_TYPE_FLAGS* {.importc.}: GType G_TYPE_FLOAT* {.importc.}: GType G_TYPE_DOUBLE* {.importc.}: GType G_TYPE_STRING* = GType(16 shl 2) G_TYPE_POINTER* {.importc.}: GType G_TYPE_BOXED* {.importc.}: GType G_TYPE_PARAM* {.importc.}: GType G_TYPE_OBJECT* {.importc.}: GType