From: Dmitry Kalyanov Date: Sat, 22 Aug 2009 21:20:29 +0000 (+0400) Subject: Added GdkScreen mapping X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=f4d84c3f9348f078ce0b7dbfc07a605b58fae832;p=cl-gtk2.git Added GdkScreen mapping --- diff --git a/gdk/cl-gtk2-gdk.asd b/gdk/cl-gtk2-gdk.asd index 84d79fb..06af81f 100644 --- a/gdk/cl-gtk2-gdk.asd +++ b/gdk/cl-gtk2-gdk.asd @@ -5,5 +5,6 @@ :serial t :components ((:file "gdk.package") (:file "gdk.objects") - (:file "gdk.functions")) + (:file "gdk.functions") + (:file "gdk.general")) :depends-on (:cl-gtk2-glib :cffi)) \ No newline at end of file diff --git a/gdk/gdk.functions.lisp b/gdk/gdk.functions.lisp index 4acadaf..eefbe6c 100644 --- a/gdk/gdk.functions.lisp +++ b/gdk/gdk.functions.lisp @@ -1,5 +1,8 @@ (in-package :gdk) +(defcfun (default-screen "gdk_screen_get_default") (g-object gdk-window)) +(export 'default-screen) + (defcfun gdk-window-get-events event-mask (window (g-object gdk-window))) diff --git a/gdk/gdk.general.lisp b/gdk/gdk.general.lisp new file mode 100644 index 0000000..ce270ef --- /dev/null +++ b/gdk/gdk.general.lisp @@ -0,0 +1,62 @@ +(in-package :gdk) + +(defcfun gdk-notify-startup-complete :void) +(defcfun gdk-notify-startup-complete-with-id :void + (startup-id :string)) + +(defun notify-startup-complete (&optional startup-id) + (if startup-id + (gdk-notify-startup-complete-with-id startup-id) + (gdk-notify-startup-complete))) + +(export 'notify-startup-complete) + +(defcfun gdk-get-program-class (:string :free-from-foreign nil)) +(defcfun gdk-set-program-class :void + (program-class (:string :free-to-foreign t))) +(defun program-class () (gdk-get-program-class)) +(defun (setf program-class) (new-value) (gdk-set-program-class new-value)) +(export 'program-class) + +(defcfun (get-display "gdk_get_display") (:string :free-from-foreign nil)) +(export 'get-display) + +(defcfun gdk-flush :void) +(export 'gdk-flush) + +(defcfun (pointer-grab "gdk_pointer_grab") grab-status + (window (g-object gdk-window)) + (owner-events :boolean) + (event-mask event-mask) + (confine-to (g-object gdk-window)) + (cursor (g-boxed-foreign cursor)) + (time :uint32)) + +(export 'pointer-grab) + +(defcfun (pointer-ungrab "gdk_pointer_ungrab") :void + (time :uint32)) + +(export 'pointer-ungrab) + +(defcfun (pointer-grabbed-p "gdk_pointer_is_grabbed") :boolean) + +(export 'pointer-grabbed-p) + +(defcfun (keyboard-grab "gdk_keyboard_grab") grab-status + (window (g-object gdk-window)) + (owner-events :boolean) + (time :uint32)) + +(export 'keyboard-grab) + +(defcfun (keyboard-ungrab "gdk_keyboard_ungrab") :void + (time :uint32)) + +(export 'keyboard-ungrab) + +(defcfun gdk-beep :void) + +(export 'gdk-beep) + + diff --git a/gdk/gdk.objects.lisp b/gdk/gdk.objects.lisp index 187d4f1..aec7927 100644 --- a/gdk/gdk.objects.lisp +++ b/gdk/gdk.objects.lisp @@ -13,9 +13,71 @@ (define-g-object-class "GdkDisplayManager" display-manager () ((default-display display-manager-default-display "default-display" "GdkDisplay" t t))) +(define-g-object-class "GdkVisual" visual () ()) + +(define-g-object-class "GdkColormap" gdk-colormap + (:superclass g-object :export t :interfaces + nil :type-initializer + "gdk_colormap_get_type") + nil) + (define-g-object-class "GdkScreen" screen () ((font-options screen-font-options "font-options" "gpointer" t t) - (resolution screen-resolution "resolution" "gdouble" t t))) + (resolution screen-resolution "resolution" "gdouble" t t) + (:cffi default-colormap screen-default-colormap (g-object colormap) + "gdk_screen_get_default_colormap" "gdk_screen_set_default_colormap") + (:cffi system-colormap screen-system-colormap (g-object colormap) + "gdk_screen_get_system_colormap" nil) + (:cffi system-visual screen-system-visual (g-object visual) + "gdk_screen_get_system_visual" nil) + (:cffi rgb-colormap screen-rgb-colormap (g-object colormap) + "gdk_screen_get_rgb_colormap" nil) + (:cffi rgb-visual screen-visual (g-object visual) + "gdk_screen_get_rgb_visual" nil) + (:cffi rgba-colormap screen-rgba-colormap (g-object colormap) + "gdk_screen_get_rgba_colormap" nil) + (:cffi rgba-visual screen-rgba-visual (g-object visual) + "gdk_screen_get_rgba_visual" nil) + (:cffi composited-p screen-composited-p :boolean + "gdk_screen_is_composited" nil) + (:cffi root-window screen-root-window (g-object gdk-window) + "gdk_screen_get_root_window" nil) + (:cffi display screen-display (g-object display) + "gdk_screen_get_display" nil) + (:cffi number screen-number :int + "gdk_screen_get_number" nil) + (:cffi width screen-widget :int + "gdk_screen_get_width" nil) + (:cffi height screen-height :int + "gdk_screen_get_height" nil) + (:cffi width-mm screen-width-mm :int + "gdk_screen_get_width_mm" nil) + (:cffi height-mm screen-height-mm :int + "gdk_screen_get_height_mm" nil) + (:cffi visuals screen-visuals (glib:glist (g-object visual) :free-from-foreign t) + "gdk_screen_list_visuals" nil) + (:cffi toplevel-windows screen-toplevel-windows (glib:glist (g-object gdk-window) :free-from-foreign t) + "gdk_screen_get_toplevel_windows" nil) + (:cffi display-name screen-display-name (glib:g-string :free-from-foreign t) + "gdk_screen_make_display_name" nil) + (:cffi n-monitors screen-n-monitors :int + "gdk_screen_get_n_monitors" nil) + (:cffi active-window screen-active-window (g-object gdk-window) + "gdk_screen_get_active_window" nil) + (:cffi window-stack screen-window-stack (glib:glist (g-object gdk-window) :free-from-foreign t) + "gdk_screen_get_window_stack" nil))) + +;gdk_screen_get_monitor_geometry +;gdk_screen_get_monitor_at_point +;gdk_screen_get_monitor_at_window +;gdk_screen_get_monitor_height_mm +;gdk_screen_get_monitor_width_mm +;gdk_screen_get_monitor_plug_name +;gdk_screen_broadcast_client_message +;gdk_screen_get_setting +;gdk_spawn_on_screen +;gdk_spawn_on_screen_with_pipes +;gdk_spawn_command_line_on_screen (define-g-object-class "GdkGC" graphics-context () ()) @@ -168,6 +230,46 @@ (export (boxed-related-symbols 'geometry)) +(glib:at-init () (foreign-funcall-pointer (foreign-symbol-pointer "gdk_cursor_get_type") () :int)) + +(gobject:define-g-enum "GdkCursorType" cursor-type (:export t :type-initializer "gdk_cursor_type_get_type") + (:x-cursor 0) (:arrow 2) (:based-arrow-down 4) + (:based-arrow-up 6) (:boat 8) (:bogosity 10) + (:bottom-left-corner 12) (:bottom-right-corner 14) + (:bottom-side 16) (:bottom-tee 18) (:box-spiral 20) + (:center-ptr 22) (:circle 24) (:clock 26) + (:coffee-mug 28) (:cross 30) (:cross-reverse 32) + (:crosshair 34) (:diamond-cross 36) (:dot 38) + (:dotbox 40) (:double-arrow 42) (:draft-large 44) + (:draft-small 46) (:draped-box 48) (:exchange 50) + (:fleur 52) (:gobbler 54) (:gumby 56) (:hand1 58) + (:hand2 60) (:heart 62) (:icon 64) (:iron-cross 66) + (:left-ptr 68) (:left-side 70) (:left-tee 72) + (:leftbutton 74) (:ll-angle 76) (:lr-angle 78) + (:man 80) (:middlebutton 82) (:mouse 84) + (:pencil 86) (:pirate 88) (:plus 90) + (:question-arrow 92) (:right-ptr 94) + (:right-side 96) (:right-tee 98) (:rightbutton 100) + (:rtl-logo 102) (:sailboat 104) + (:sb-down-arrow 106) (:sb-h-double-arrow 108) + (:sb-left-arrow 110) (:sb-right-arrow 112) + (:sb-up-arrow 114) (:sb-v-double-arrow 116) + (:shuttle 118) (:sizing 120) (:spider 122) + (:spraycan 124) (:star 126) (:target 128) + (:tcross 130) (:top-left-arrow 132) + (:top-left-corner 134) (:top-right-corner 136) + (:top-side 138) (:top-tee 140) (:trek 142) + (:ul-angle 144) (:umbrella 146) (:ur-angle 148) + (:watch 150) (:xterm 152) (:last-cursor 153) + (:blank-cursor -2) (:cursor-is-pixmap -1)) + +(export 'cursor-type) + +(define-g-boxed-cstruct cursor "GdkCursor" + (type cursor-type)) + +(export (boxed-related-symbols 'cursor)) + (defctype gdk-atom :pointer) (define-foreign-type gdk-atom-as-string-type ()