chiark / gitweb /
Added multi-threading support
[clg] / gtk / gtk.lisp
index 2696173c32057a5c36f61e49814b8785054f53fd..f054449cfc6652899b1605ac3862e3e509a8ca61 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: gtk.lisp,v 1.57 2006-02-26 23:38:03 espen Exp $
+;; $Id: gtk.lisp,v 1.61 2006-04-25 13:37:29 espen Exp $
 
 
 (in-package "GTK")
@@ -45,7 +45,7 @@ (defun gtk-version ()
       (format nil "Gtk+ v~A.~A.~A" major minor micro))))
 
 (defun clg-version ()
-  "clg 0.91 version")
+  "clg 0.92.1")
 
 
 ;;;; Initalization
@@ -73,6 +73,29 @@ (defun clg-init (&optional display)
       (setq *max-event-to-sec* 0)
       (setq *max-event-to-usec* 1000))))
 
+#+sbcl   
+(defun clg-init-with-threading (&optional display)
+  "Initializes the system and starts the event handling"
+  (unless (gdk:display-get-default)
+    (gdk:gdk-init)
+    (gdk:threads-set-lock-functions)
+    (unless (gtk-init)
+      (error "Initialization of GTK+ failed."))
+    (sb-thread:make-thread 
+     #'(lambda () 
+        (gdk:display-open display)
+        (gdk:with-global-lock (main)))
+     :name "gtk event loop")))
+
+
+;;; Generic functions 
+
+(defgeneric add-to-radio-group (item1 item2))
+(defgeneric activate-radio-widget (item))
+(defgeneric (setf tool-item-tip-text) (tip-text tool-item))
+(defgeneric (setf tool-item-tip-private) (tip-private tool-item))
+
+
 
 ;;; Misc