X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/8f30d7da299d5330a6c5c362c46ac9a70941b785..1f091d0115dbcf40f1d01b14ffcdd8d76cd92a44:/gdk/gdk.lisp diff --git a/gdk/gdk.lisp b/gdk/gdk.lisp index 7e73511..168ec86 100644 --- a/gdk/gdk.lisp +++ b/gdk/gdk.lisp @@ -1,21 +1,26 @@ -;; Common Lisp bindings for GTK+ v2.0 -;; Copyright (C) 1999-2001 Espen S. Johnsen +;; Common Lisp bindings for GTK+ v2.x +;; Copyright 2000-2005 Espen S. Johnsen ;; -;; This library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public -;; License as published by the Free Software Foundation; either -;; version 2 of the License, or (at your option) any later version. +;; Permission is hereby granted, free of charge, to any person obtaining +;; a copy of this software and associated documentation files (the +;; "Software"), to deal in the Software without restriction, including +;; without limitation the rights to use, copy, modify, merge, publish, +;; distribute, sublicense, and/or sell copies of the Software, and to +;; permit persons to whom the Software is furnished to do so, subject to +;; the following conditions: ;; -;; This library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. ;; -;; You should have received a copy of the GNU Lesser General Public -;; License along with this library; if not, write to the Free Software -;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: gdk.lisp,v 1.12 2004-12-20 00:32:15 espen Exp $ +;; $Id: gdk.lisp,v 1.18 2005-11-10 09:01:36 espen Exp $ (in-package "GDK") @@ -28,17 +33,8 @@ (nil null)) -;;; Display - -(defbinding (display-manager "gdk_display_manager_get") () display-manager) - - -(defbinding (display-set-default "gdk_display_manager_set_default_display") - (display) nil - ((display-manager) display-manager) - (display display)) -(defbinding display-get-default () display) +;;; Display (defbinding %display-open () display (display-name (or null string))) @@ -49,11 +45,66 @@ (display-set-default display)) display)) +(defbinding %display-get-n-screens () int + (display display)) + +(defbinding %display-get-screen () screen + (display display) + (screen-num int)) + +(defun display-screens (&optional (display (display-get-default))) + (loop + for i from 0 below (%display-get-n-screens display) + collect (%display-get-screen display i))) + +(defbinding display-get-default-screen + (&optional (display (display-get-default))) screen + (display display)) + +(defbinding display-beep (&optional (display (display-get-default))) nil + (display display)) + +(defbinding display-sync (&optional (display (display-get-default))) nil + (display display)) + +(defbinding display-flush (&optional (display (display-get-default))) nil + (display display)) + +(defbinding display-close (&optional (display (display-get-default))) nil + (display display)) + +(defbinding display-get-event + (&optional (display (display-get-default))) event + (display display)) + +(defbinding display-peek-event + (&optional (display (display-get-default))) event + (display display)) + +(defbinding display-put-event + (event &optional (display (display-get-default))) event + (display display) + (event event)) + (defbinding (display-connection-number "clg_gdk_connection_number") (&optional (display (display-get-default))) int (display display)) + +;;; Display manager + +(defbinding display-get-default () display) + +(defbinding (display-manager "gdk_display_manager_get") () display-manager) + +(defbinding (display-set-default "gdk_display_manager_set_default_display") + (display) nil + ((display-manager) display-manager) + (display display)) + + + ;;; Events (defbinding (events-pending-p "gdk_events_pending") () boolean) @@ -73,59 +124,52 @@ (defbinding set-show-events () nil (show-events boolean)) -;;; Misc - -(defbinding set-use-xshm () nil - (use-xshm boolean)) - (defbinding get-show-events () boolean) -(defbinding get-use-xshm () boolean) - -(defbinding get-display () string) - -; (defbinding time-get () (unsigned 32)) -; (defbinding timer-get () (unsigned 32)) +;;; Miscellaneous functions -; (defbinding timer-set () nil -; (milliseconds (unsigned 32))) - -; (defbinding timer-enable () nil) - -; (defbinding timer-disable () nil) +(defbinding screen-width () int) +(defbinding screen-height () int) -; input ... +(defbinding screen-width-mm () int) +(defbinding screen-height-mm () int) -(defbinding pointer-grab () int +(defbinding pointer-grab + (window &key owner-events events confine-to cursor time) grab-status (window window) (owner-events boolean) - (event-mask event-mask) + (events event-mask) (confine-to (or null window)) (cursor (or null cursor)) - (time (unsigned 32))) + ((or time 0) (unsigned 32))) -(defbinding pointer-ungrab () nil - (time (unsigned 32))) +(defbinding (pointer-ungrab "gdk_display_pointer_ungrab") + (&optional time (display (display-get-default))) nil + (display display) + ((or time 0) (unsigned 32))) -(defbinding keyboard-grab () int +(defbinding (pointer-is-grabbed-p "gdk_display_pointer_is_grabbed") + (&optional (display (display-get-default))) boolean) + +(defbinding keyboard-grab (window &key owner-events time) grab-status (window window) (owner-events boolean) - (time (unsigned 32))) + ((or time 0) (unsigned 32))) -(defbinding keyboard-ungrab () nil - (time (unsigned 32))) +(defbinding (keyboard-ungrab "gdk_display_keyboard_ungrab") + (&optional time (display (display-get-default))) nil + (display display) + ((or time 0) (unsigned 32))) -(defbinding (pointer-is-grabbed-p "gdk_pointer_is_grabbed") () boolean) -(defbinding screen-width () int) -(defbinding screen-height () int) -(defbinding screen-width-mm () int) -(defbinding screen-height-mm () int) +(defbinding atom-intern (atom-name &optional only-if-exists) atom + ((string atom-name) string) + (only-if-exists boolean)) -(defbinding flush () nil) -(defbinding beep () nil) +(defbinding atom-name () string + (atom atom)) @@ -652,7 +696,7 @@ (defbinding keyval-to-upper () unsigned-int (keyval unsigned-int)) -(defbinding keyval-to-lower ()unsigned-int +(defbinding keyval-to-lower () unsigned-int (keyval unsigned-int)) (defbinding (keyval-is-upper-p "gdk_keyval_is_upper") () boolean @@ -661,3 +705,28 @@ (defbinding (keyval-is-lower-p "gdk_keyval_is_lower") () boolean (keyval unsigned-int)) +;;; Cairo interaction + +#+gtk2.8 +(progn + (defbinding cairo-create () cairo:context + (drawable drawable)) + + (defbinding cairo-set-source-color () nil + (cr cairo:context) + (color color)) + + (defbinding cairo-set-source-pixbuf () nil + (cr cairo:context) + (pixbuf pixbuf) + (x double-float) + (y double-float)) + + (defbinding cairo-rectangle () nil + (cr cairo:context) + (rectangle rectangle)) + +;; (defbinding cairo-region () nil +;; (cr cairo:context) +;; (region region)) +)