104 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2010 Anton Gorenko.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: alien alien.c-types alien.destructors alien.libraries
 | 
						|
alien.syntax cairo.ffi classes.struct combinators
 | 
						|
gobject-introspection gobject-introspection.standard-types
 | 
						|
kernel system vocabs vocabs.loader ;
 | 
						|
IN: gdk.ffi
 | 
						|
 | 
						|
<<
 | 
						|
"pango.ffi" require
 | 
						|
"gdk.pixbuf.ffi" require
 | 
						|
>>
 | 
						|
 | 
						|
LIBRARY: gdk
 | 
						|
 | 
						|
<<
 | 
						|
"gdk" {
 | 
						|
    { [ os windows? ] [ "libgdk-win32-2.0-0.dll" cdecl add-library ] }
 | 
						|
    { [ os unix? ] [ drop ] }
 | 
						|
} cond
 | 
						|
>>
 | 
						|
 | 
						|
! <workaround these types are from cairo 1.10
 | 
						|
STRUCT: cairo_rectangle_int_t
 | 
						|
    { x int } { y int } { width int } { height int } ;
 | 
						|
 | 
						|
C-TYPE: cairo_region_t
 | 
						|
! workaround>
 | 
						|
 | 
						|
FOREIGN-RECORD-TYPE: cairo.RectangleInt cairo_rectangle_int_t
 | 
						|
FOREIGN-RECORD-TYPE: cairo.Region cairo_region_t
 | 
						|
FOREIGN-RECORD-TYPE: cairo.FontOptions cairo_font_options_t
 | 
						|
FOREIGN-RECORD-TYPE: cairo.Surface cairo_surface_t
 | 
						|
FOREIGN-RECORD-TYPE: cairo.Pattern cairo_pattern_t
 | 
						|
FOREIGN-RECORD-TYPE: cairo.Context cairo_t
 | 
						|
FOREIGN-ENUM-TYPE: cairo.Content cairo_content_t
 | 
						|
 | 
						|
GIR: vocab:gdk/Gdk-3.0.gir
 | 
						|
 | 
						|
DESTRUCTOR: gdk_cursor_unref
 | 
						|
 | 
						|
STRUCT: GdkEventButton
 | 
						|
    { type GdkEventType }
 | 
						|
    { window GdkWindow* }
 | 
						|
    { send_event gint8 }
 | 
						|
    { time guint32 }
 | 
						|
    { x gdouble }
 | 
						|
    { y gdouble }
 | 
						|
    { axes gdouble* }
 | 
						|
    { state guint }
 | 
						|
    { button guint }
 | 
						|
    { device GdkDevice* }
 | 
						|
    { x_root gdouble }
 | 
						|
    { y_root gdouble } ;
 | 
						|
 | 
						|
STRUCT: GdkEventConfigure
 | 
						|
    { type GdkEventType }
 | 
						|
    { window GdkWindow* }
 | 
						|
    { send_event gint8 }
 | 
						|
    { x gint }
 | 
						|
    { y gint }
 | 
						|
    { width gint }
 | 
						|
    { height gint } ;
 | 
						|
 | 
						|
STRUCT: GdkEventKey
 | 
						|
    { type GdkEventType }
 | 
						|
    { window GdkWindow* }
 | 
						|
    { send_event gint8 }
 | 
						|
    { time guint32 }
 | 
						|
    { state guint }
 | 
						|
    { keyval guint }
 | 
						|
    { length gint }
 | 
						|
    { string gchar* }
 | 
						|
    { hardware_keycode guint16 }
 | 
						|
    { group guint8 }
 | 
						|
    { is_modifier uint bits: 1 } ;
 | 
						|
 | 
						|
STRUCT: GdkEventMotion
 | 
						|
    { type GdkEventType }
 | 
						|
    { window GdkWindow* }
 | 
						|
    { send_event gint8 }
 | 
						|
    { time guint32 }
 | 
						|
    { x gdouble }
 | 
						|
    { y gdouble }
 | 
						|
    { axes gdouble* }
 | 
						|
    { state guint }
 | 
						|
    { is_hint gint16 }
 | 
						|
    { device GdkDevice* }
 | 
						|
    { x_root gdouble }
 | 
						|
    { y_root gdouble } ;
 | 
						|
 | 
						|
STRUCT: GdkEventScroll
 | 
						|
    { type GdkEventType }
 | 
						|
    { window GdkWindow* }
 | 
						|
    { send_event gint8 }
 | 
						|
    { time guint32 }
 | 
						|
    { x gdouble }
 | 
						|
    { y gdouble }
 | 
						|
    { state guint }
 | 
						|
    { direction GdkScrollDirection }
 | 
						|
    { device GdkDevice* }
 | 
						|
    { x_root gdouble }
 | 
						|
    { y_root gdouble } ;
 |