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')
-rwxr-xr-xlib/wrappers/gtk/libglade2.nim111
1 files changed, 111 insertions, 0 deletions
diff --git a/lib/wrappers/gtk/libglade2.nim b/lib/wrappers/gtk/libglade2.nim
new file mode 100755
index 000000000..c3ddb111a
--- /dev/null
+++ b/lib/wrappers/gtk/libglade2.nim
@@ -0,0 +1,111 @@
+{.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 init*(){.cdecl, dynlib: LibGladeLib, importc: "glade_init".}
+proc require*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
+                                    importc: "glade_require".}
+proc provide*(TheLibrary: cstring){.cdecl, dynlib: LibGladeLib, 
+                                    importc: "glade_provide".}
+type 
+  PXMLPrivate* = pointer
+  PXML* = ptr TXML
+  TXML* = object of TGObject
+    filename*: cstring
+    priv*: PXMLPrivate
+
+  PXMLClass* = ptr TXMLClass
+  TXMLClass* = object of TGObjectClass
+  TXMLConnectFunc* = proc (handler_name: cstring, anObject: PGObject, 
+                           signal_name: cstring, signal_data: cstring, 
+                           connect_object: PGObject, after: gboolean, 
+                           user_data: gpointer){.cdecl.}
+
+proc TYPE_XML*(): GType
+proc XML*(obj: pointer): PXML
+proc XML_CLASS*(klass: pointer): PXMLClass
+proc IS_XML*(obj: pointer): gboolean
+proc IS_XML_CLASS*(klass: pointer): gboolean
+proc XML_GET_CLASS*(obj: pointer): PXMLClass
+proc xml_get_type*(): GType{.cdecl, dynlib: LibGladeLib, 
+                             importc: "glade_xml_get_type".}
+proc xml_new*(fname: cstring, root: cstring, domain: cstring): PXML{.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_new".}
+proc xml_new_from_buffer*(buffer: cstring, size: int32, root: cstring, 
+                          domain: cstring): PXML{.cdecl, dynlib: LibGladeLib, 
+    importc: "glade_xml_new_from_buffer".}
+proc construct*(self: PXML, fname: cstring, root: cstring, domain: cstring): gboolean{.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_construct".}
+proc signal_connect*(self: PXML, handlername: cstring, func: TGCallback){.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect".}
+proc signal_connect_data*(self: PXML, handlername: cstring, 
+                              func: TGCallback, user_data: gpointer){.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_signal_connect_data".}
+proc signal_autoconnect*(self: PXML){.cdecl, dynlib: LibGladeLib, 
+    importc: "glade_xml_signal_autoconnect".}
+proc signal_connect_full*(self: PXML, handler_name: cstring, 
+                              func: TXMLConnectFunc, user_data: gpointer){.
+    cdecl, dynlib: LibGladeLib, importc: "glade_xml_signal_connect_full".}
+proc signal_autoconnect_full*(self: PXML, func: TXMLConnectFunc, 
+                                  user_data: gpointer){.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_signal_autoconnect_full".}
+proc get_widget*(self: PXML, name: cstring): gtk2.PWidget{.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_get_widget".}
+proc get_widget_prefix*(self: PXML, name: cstring): PGList{.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_get_widget_prefix".}
+proc relative_file*(self: PXML, filename: cstring): cstring{.cdecl, 
+    dynlib: LibGladeLib, importc: "glade_xml_relative_file".}
+proc get_widget_name*(widget: gtk2.PWidget): cstring{.cdecl, dynlib: LibGladeLib, 
+    importc: "glade_get_widget_name".}
+proc get_widget_tree*(widget: gtk2.PWidget): PXML{.cdecl, dynlib: LibGladeLib, 
+    importc: "glade_get_widget_tree".}
+type 
+  PXMLCustomWidgetHandler* = ptr TXMLCustomWidgetHandler
+  TXMLCustomWidgetHandler* = gtk2.TWidget
+
+proc set_custom_handler*(handler: TXMLCustomWidgetHandler, user_data: gpointer){.
+    cdecl, dynlib: LibGladeLib, importc: "glade_set_custom_handler".}
+proc gnome_init*() = 
+  init()
+
+proc bonobo_init*() = 
+  init()
+
+proc xml_new*(fname: cstring, root: cstring, domain: cstring): PXML = 
+  result = xml_new(fname, root, domain)
+
+proc xml_new_from_memory*(buffer: cstring, size: int32, root: cstring, 
+                          domain: cstring): PXML = 
+  result = xml_new_from_buffer(buffer, size, root, domain)
+
+proc TYPE_XML*(): GType = 
+  result = xml_get_type()
+
+proc XML*(obj: pointer): PXML = 
+  result = cast[PXML](G_TYPE_CHECK_INSTANCE_CAST(obj, TYPE_XML()))
+
+proc XML_CLASS*(klass: pointer): PXMLClass = 
+  result = cast[PXMLClass](G_TYPE_CHECK_CLASS_CAST(klass, TYPE_XML()))
+
+proc IS_XML*(obj: pointer): gboolean = 
+  result = G_TYPE_CHECK_INSTANCE_TYPE(obj, TYPE_XML())
+
+proc IS_XML_CLASS*(klass: pointer): gboolean = 
+  result = G_TYPE_CHECK_CLASS_TYPE(klass, TYPE_XML())
+
+proc XML_GET_CLASS*(obj: pointer): PXMLClass = 
+  result = cast[PXMLClass](G_TYPE_INSTANCE_GET_CLASS(obj, TYPE_XML()))