;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-;; $Id: gdk.lisp,v 1.9 2004/10/28 09:37:27 espen Exp $
+;; $Id: gdk.lisp,v 1.11 2004/11/06 21:39:58 espen Exp $
(in-package "GDK")
+;;; Initialization
+
+(defbinding (gdk-init "gdk_parse_args") () nil
+ "Initializes the library without opening the display."
+ (nil null)
+ (nil null))
-;;; Events
-(defbinding connection-number () int)
+;;; 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)
+
+(defbinding %display-open () display
+ (display-name (or null string)))
+
+(defun display-open (&optional display-name)
+ (let ((display (%display-open display-name)))
+ (unless (display-get-default)
+ (display-set-default display))
+ display))
+
+(defbinding (display-connection-number "clg_gdk_connection_number")
+ (&optional (display (display-get-default))) int
+ (display display))
+
+
+;;; Events
(defbinding (events-pending-p "gdk_events_pending") () boolean)
;;; Cursor
-(deftype-method alien-ref cursor (type-spec)
- (declare (ignore type-spec))
- '%cursor-ref)
-
-(deftype-method alien-unref cursor (type-spec)
- (declare (ignore type-spec))
- '%cursor-unref)
-
-
(defbinding cursor-new () cursor
(cursor-type cursor-type))
(x int) (y int))
(defbinding %cursor-ref () pointer
- (cursor (or cursor pointer)))
+ (location pointer))
(defbinding %cursor-unref () nil
- (cursor (or cursor pointer)))
+ (location pointer))
+
+(defmethod reference-foreign ((class (eql (find-class 'cursor))) location)
+ (declare (ignore class))
+ (%cursor-ref location))
+
+(defmethod unreference-foreign ((class (eql (find-class 'cursor))) location)
+ (declare (ignore class))
+ (%cursor-unref location))
+