changeset 4:705abf5135fe

Added GObject#signal_connect
author unexist
date Sun, 13 Dec 2009 04:30:39 +0100
parents c86049015094
children 37ddd775df8a
files subtly/glib.rb
diffstat 1 files changed, 33 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/subtly/glib.rb	Sun Dec 13 04:30:12 2009 +0100
+++ b/subtly/glib.rb	Sun Dec 13 04:30:39 2009 +0100
@@ -11,19 +11,49 @@
 require "ffi"
 
 module Subtly
-  module Glib
+  module GThread
     extend FFI::Library
 
     ffi_lib("libgthread-2.0")
 
-    ## thread_init
+    ## ffi_init
     # Init thread system
     #
     # @param  [Pointer, #read]  Just don't use, #GThreadFunctions
     ##
 
-    attach_function(:thread_init,
+    attach_function(:ffi_init,
       :g_thread_init, [ :pointer ], :void
     )
   end
+
+  module GObject
+    extend FFI::Library
+
+    ffi_lib("libgobject-2.0")
+
+    # Callback type
+    callback :g_callback2, [ :pointer, :pointer ], :void
+    callback :g_callback3, [ :pointer, :int, :pointer ], :void
+    callback :g_callback4, [ :pointer, :string, :string, :pointer ], :void
+
+    ## ffi_signal_connect
+    # Add signal callback
+    #
+    # @param  [Pointer, #read]  Widget to attach callback
+    # @param  [String,  #read]  Signal name
+    # @param  [Pointer, #read]  Callback function
+    # @param  [Pointer, #read]  Callback data
+    ##
+
+    attach_function(:ffi_signal_connect2,
+      :g_signal_connect_data, [ :pointer, :string, :g_callback2, :pointer, :pointer, :int ], :ulong
+    )
+    attach_function(:ffi_signal_connect3,
+      :g_signal_connect_data, [ :pointer, :string, :g_callback3, :pointer, :pointer, :int ], :ulong
+    )
+    attach_function(:ffi_signal_connect4,
+      :g_signal_connect_data, [ :pointer, :string, :g_callback4, :pointer, :pointer, :int ], :ulong
+    )
+  end
 end