summary refs log tree commit diff stats
path: root/lib/wrappers/gtk/libglade2.nim
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wrappers/gtk/libglade2.nim')
-rw-r--r--lib/wrappers/gtk/libglade2.nim118
1 files changed, 118 insertions, 0 deletions
diff --git a/lib/wrappers/gtk/libglade2.nim b/lib/wrappers/gtk/libglade2.nim
new file mode 100644
index 000000000..5e323680e
--- /dev/null
+++ b/lib/wrappers/gtk/libglade2.nim
@@ -0,0 +1,118 @@
+{.deadCodeElim: on.}
+
+import
+  glib2, gtk2
+
+when defined(win32):
+  const
+    LibGladeLib = "libglade-2.0-0.dll"
+else:
+  const
+    LibGladeLib = "libglade-2.0.so"
+type
+  PLongint* = ptr int32
+  PSmallInt* = ptr int16
+  PByte* = ptr int8
+  PWord* = ptr int16
+  PDWord* = ptr int32
+  PDouble* = ptr float64
+
+proc glade_init*(){.cdecl, dynlib: LibGladeLib, importc: "glade_init".}
+proc glade_require*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib,
+    importc: "glade_require".}
+proc glade_provide*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib,
+    importc: "glade_provide".}
+type
+  PGladeXMLPrivate* = pointer
+  PGladeXML* = ptr TGladeXML
+  TGladeXML* = object of TGObject
+    filename*: cstring
+    priv*: PGladeXMLPrivate
+
+  PGladeXMLClass* = ptr TGladeXMLClass
+  TGladeXMLClass* = object of TGObjectClass
+
+  TGladeXMLConnectFunc* = proc (handler_name: cstring, anObject: PGObject,
+                                signal_name: cstring, signal_data: cstring,
+                                connect_object: PGObject, after: gboolean,
+                                user_data: gpointer){.cdecl.}
+
+proc GLADE_TYPE_XML*(): GType
+proc GLADE_XML*(obj: pointer): PGladeXML
+proc GLADE_XML_CLASS*(klass: pointer): PGladeXMLClass
+proc GLADE_IS_XML*(obj: pointer): gboolean
+proc GLADE_IS_XML_CLASS*(klass: pointer): gboolean
+proc GLADE_XML_GET_CLASS*(obj: pointer): PGladeXMLClass
+proc glade_xml_get_type*(): GType{.cdecl, dynlib: LibGladeLib,
+                                   importc: "glade_xml_get_type".}
+proc glade_xml_new*(fname: cstring, root: cstring, domain: cstring): PGladeXML{.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_new".}
+proc glade_xml_new_from_buffer*(buffer: cstring, size: int32, root: cstring,
+                                domain: cstring): PGladeXML{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_new_from_buffer".}
+proc glade_xml_construct*(self: PGladeXML, fname: cstring, root: cstring,
+                          domain: cstring): gboolean{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_construct".}
+proc glade_xml_signal_connect*(self: PGladeXML, handlername: cstring,
+                               func: TGCallback){.cdecl, dynlib: LibGladeLib,
+    importc: "glade_xml_signal_connect".}
+proc glade_xml_signal_connect_data*(self: PGladeXML, handlername: cstring,
+                                    func: TGCallback, user_data: gpointer){.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect_data".}
+proc glade_xml_signal_autoconnect*(self: PGladeXML){.cdecl, dynlib: LibGladeLib,
+    importc: "glade_xml_signal_autoconnect".}
+proc glade_xml_signal_connect_full*(self: PGladeXML, handler_name: cstring,
+                                    func: TGladeXMLConnectFunc,
+                                    user_data: gpointer){.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_signal_connect_full".}
+proc glade_xml_signal_autoconnect_full*(self: PGladeXML,
+                                        func: TGladeXMLConnectFunc,
+                                        user_data: gpointer){.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_signal_autoconnect_full".}
+proc glade_xml_get_widget*(self: PGladeXML, name: cstring): PGtkWidget{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_get_widget".}
+proc glade_xml_get_widget_prefix*(self: PGladeXML, name: cstring): PGList{.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_get_widget_prefix".}
+proc glade_xml_relative_file*(self: PGladeXML, filename: cstring): cstring{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_xml_relative_file".}
+proc glade_get_widget_name*(widget: PGtkWidget): cstring{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_get_widget_name".}
+proc glade_get_widget_tree*(widget: PGtkWidget): PGladeXML{.cdecl,
+    dynlib: LibGladeLib, importc: "glade_get_widget_tree".}
+type
+  PGladeXMLCustomWidgetHandler* = ptr TGladeXMLCustomWidgetHandler
+  TGladeXMLCustomWidgetHandler* = TGtkWidget
+
+proc glade_set_custom_handler*(handler: TGladeXMLCustomWidgetHandler,
+                               user_data: gpointer){.cdecl, dynlib: LibGladeLib,
+    importc: "glade_set_custom_handler".}
+proc glade_gnome_init*() =
+  glade_init()
+
+proc glade_bonobo_init*() =
+  glade_init()
+
+proc glade_xml_new_with_domain*(fname: cstring, root: cstring, domain: cstring): PGladeXML =
+  result = glade_xml_new(fname, root, domain)
+
+proc glade_xml_new_from_memory*(buffer: cstring, size: int32, root: cstring,
+                                domain: cstring): PGladeXML =
+  result = glade_xml_new_from_buffer(buffer, size, root, domain)
+
+proc GLADE_TYPE_XML*(): GType =
+  result = glade_xml_get_type()
+
+proc GLADE_XML*(obj: pointer): PGladeXML =
+  result = cast[PGladeXML](G_TYPE_CHECK_INSTANCE_CAST(obj, GLADE_TYPE_XML()))
+
+proc GLADE_XML_CLASS*(klass: pointer): PGladeXMLClass =
+  result = cast[PGladeXMLClass](G_TYPE_CHECK_CLASS_CAST(klass, GLADE_TYPE_XML()))
+
+proc GLADE_IS_XML*(obj: pointer): gboolean =
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, GLADE_TYPE_XML())
+
+proc GLADE_IS_XML_CLASS*(klass: pointer): gboolean =
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, GLADE_TYPE_XML())
+
+proc GLADE_XML_GET_CLASS*(obj: pointer): PGladeXMLClass =
+  result = cast[PGladeXMLClass](G_TYPE_INSTANCE_GET_CLASS(obj, GLADE_TYPE_XML()))