TYPEMAP Display * O_X11_Xlib DisplayOrNull O_X11_XlibOrNull Screen * O_X11_Xlib_Screen ScreenNumber O_X11_Xlib_ScreenNumber Visual * O_X11_Xlib_OpaqueDisplayMember VisualOrNull O_X11_Xlib_OpaqueDisplayMemberOrNull GC O_X11_Xlib_OpaqueDisplayMember XEvent * O_X11_Xlib_Struct XVisualInfo * O_X11_Xlib_Struct XWindowChanges * O_X11_Xlib_Struct XWindowAttributes * O_X11_Xlib_Struct XSetWindowAttributes* O_X11_Xlib_Struct XSizeHints * O_X11_Xlib_Struct XRectangle * O_X11_Xlib_Struct XRenderPictFormat * O_X11_Xlib_Struct Window O_X11_Xlib_XID Pixmap O_X11_Xlib_XID Cursor O_X11_Xlib_XID Colormap O_X11_Xlib_XID Drawable O_X11_Xlib_XID VisualID O_X11_Xlib_XID XserverRegion O_X11_Xlib_XID Glyph O_X11_Xlib_XID GlyphSet O_X11_Xlib_XID Picture O_X11_Xlib_XID PictFormat O_X11_Xlib_XID Atom T_UV Time T_UV Bool T_BOOL KeyCode T_IV KeySym T_IV INPUT O_X11_Xlib $var = PerlXlib_display_objref_get_pointer($arg, PerlXlib_OR_DIE); OUTPUT O_X11_Xlib $arg = PerlXlib_get_display_objref($var, PerlXlib_OR_UNDEF); INPUT O_X11_XlibOrNull $var = PerlXlib_display_objref_get_pointer($arg, PerlXlib_OR_NULL); OUTPUT O_X11_XlibOrNull $arg = PerlXlib_get_display_objref($var, PerlXlib_OR_UNDEF); INPUT O_X11_Xlib_ScreenNumber if (!SvOK($arg)) $var = DefaultScreen(dpy); else if (SvROK($arg)) { SV **fp; if (SvTYPE(SvRV($arg)) == SVt_PVHV && (fp= hv_fetch((HV*)SvRV($arg), \"screen_number\", 13, 0)) && fp) { $var= SvIV(*fp); } else croak(\"Invalid object passed as Screen number\"); } else { $var= SvIV($arg); if ($var == -1) $var= DefaultScreen(dpy); } INPUT O_X11_Xlib_Screen $var = PerlXlib_sv_to_screen($arg, 1); OUTPUT O_X11_Xlib_Screen $arg = PerlXlib_obj_for_screen($var, 0); INPUT O_X11_Xlib_XID $var = PerlXlib_sv_to_xid($arg); OUTPUT O_X11_Xlib_XID // Always return unsigned integer. X11::Xlib::* can override this as needed. sv_setuv( $arg, $var ); INPUT O_X11_Xlib_Struct $var= ( $type ) PerlXlib_get_struct_ptr( $arg, 0, \"X11::Xlib::@{[ $type =~ /(\w+)/ ]}\", sizeof(@{[ $type =~ /(\w+)/ ]}), (PerlXlib_struct_pack_fn*) &PerlXlib_@{[ $type =~ /(\w+)/ ]}_pack ); INPUT O_X11_Xlib_Opaque $var= ($type) PerlXlib_objref_get_pointer($arg, \"@{[ $type =~ /(\w+)/ ]}\", PerlXlib_OR_DIE); INPUT O_X11_Xlib_OpaqueDisplayMember $var= ($type) PerlXlib_objref_get_pointer($arg, \"@{[ $type =~ /(\w+)/ ]}\", PerlXlib_OR_DIE); INPUT O_X11_Xlib_OpaqueOrNull $var= ($type) PerlXlib_objref_get_pointer($arg, \"@{[ $type =~ /(\w+?)OrNull/ ]}\", PerlXlib_OR_NULL); INPUT O_X11_Xlib_OpaqueDisplayMemberOrNull $var= ($type) PerlXlib_objref_get_pointer($arg, \"@{[ $type =~ /(\w+?)OrNull/ ]}\", PerlXlib_OR_NULL); OUTPUT O_X11_Xlib_Opaque sv_setsv($arg, PerlXlib_get_objref($var, PerlXlib_AUTOCREATE, \"@{[ $type =~ /(\w+)/ ]}\", SVt_PVHV, \"X11::Xlib::@{[ $type =~ /(\w+)/ ]}\", NULL)); OUTPUT O_X11_Xlib_OpaqueDisplayMember sv_setsv($arg, PerlXlib_get_objref($var, PerlXlib_AUTOCREATE, \"@{[ $type =~ /(\w+)/ ]}\", SVt_PVHV, \"X11::Xlib::@{[ $type =~ /(\w+)/ ]}\", dpy)); OUTPUT O_X11_Xlib_OpaqueOrNull sv_setsv($arg, PerlXlib_get_objref($var, PerlXlib_AUTOCREATE, \"@{[ $type =~ /(\w+?)OrNull/ ]}\", SVt_PVHV, \"X11::Xlib::@{[ $type =~ /(\w+?)OrNull/ ]}\", NULL)); OUTPUT O_X11_Xlib_OpaqueDisplayMemberOrNull sv_setsv($arg, PerlXlib_get_objref($var, PerlXlib_AUTOCREATE, \"@{[ $type =~ /(\w+?)OrNull/ ]}\", SVt_PVHV, \"X11::Xlib::@{[ $type =~ /(\w+?)OrNull/ ]}\", dpy));