X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/0c5f20d91888de36d1ec15806e46f1afd5938b8b..18b84c8043e09adb90c047fd5dfe6860e26b27e8:/gtk/gtk.lisp diff --git a/gtk/gtk.lisp b/gtk/gtk.lisp index 6b8b049..f054449 100644 --- a/gtk/gtk.lisp +++ b/gtk/gtk.lisp @@ -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.56 2006-02-26 21:19:02 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 @@ -2295,16 +2318,64 @@ (defbinding tooltips-get-info-from-tip-window () boolean ;;; Resource Files -(defbinding rc-add-default-file (filename) nil - ((namestring (truename filename)) string)) +(defbinding rc-get-style () style + (widget widget)) + +(defbinding rc-get-style-by-paths (&key path class-path class) style + (path (or null string)) + (class-path (or null string)) + (class gtype)) -(defbinding rc-parse (filename) nil - ((namestring (truename filename)) string)) +(defbinding rc-parse () nil + (filename pathname)) (defbinding rc-parse-string () nil (rc-string string)) -(defbinding rc-reparse-all () nil) +(defbinding %rc-reparse-all () boolean) -(defbinding rc-get-style () style - (widget widget)) +(defbinding %rc-reparse-all-for-settings () boolean + (settings settings) + (force-load-p boolean)) + +(defun rc-reparse-all (&optional setting force-load-p) + (if setting + (%rc-reparse-all-for-settings setting force-load-p) + (%rc-reparse-all))) + +(defbinding rc-reset-styles () nil + (settings settings)) + +(defbinding rc-add-default-file () nil + (filename pathname)) + +(defbinding rc-get-default-files () + (copy-of (null-terminated-vector (copy-of string)))) + +(defbinding rc-get-module-dir () string) + +(defbinding rc-get-im-module-path () string) + +(defbinding rc-get-im-module-file () string) + +(defbinding rc-get-theme-dir () string) + + +;;; Settings + +(defbinding (settings-get "gtk_settings_get_for_screen") + (&optional (screen (gdk:display-get-default-screen))) settings + (screen gdk:screen)) + + +;;; Plug and Socket + +(defbinding socket-add-id () nil + (socket socket) + (id gdk:native-window)) + +(defbinding %plug-new () pointer + (id gdk:native-window)) + +(defmethod allocate-foreign ((plug plug) &key id) + (%plug-new (or id 0)))