# -------------------------------------------------------------------------------- # X XID T_X_ID Window T_X_ID Drawable T_X_ID Font T_X_ID Pixmap T_X_ID Cursor T_X_ID Colormap T_X_ID GContext T_X_ID KeySym T_X_ID EventMask T_X_ID Atom T_X_ID VisualID T_X_ID Time T_X_ID KeyCode T_X_ID XContext T_X_ID Pixel T_X_ID XrmQuark T_X_ID XrmName T_X_ID XrmClass T_X_ID XrmRepresentation T_X_ID XrmString T_X_PTR XrmDatabase T_X_PTR XrmOptionDescRec * T_X_PTR XrmValue * T_X_PTR XrmValuePtr T_X_PTR Cardinal T_IV Dimension T_IV Position T_IV String T_PV # these are all structure pointers (used as input) Display * T_X_PTR GC T_X_PTR Screen * T_X_PTR Visual * T_X_PTR XColor * T_X_PTR XGCValues * T_X_PTR XHostAddress * T_X_PTR XImage * T_X_PTR XArc * T_X_PTR XChar2b * T_X_PTR XCharStruct * T_X_PTR XFontSet T_X_PTR XFontSetExtents * T_X_PTR XFontStruct * T_X_PTR XKeyboardControl * T_X_PTR XKeyboardState * T_X_PTR XModifierKeymap * T_X_PTR XPixmapFormatValues * T_X_PTR XPoint * T_X_PTR XRectangle * T_X_PTR XSegment * T_X_PTR XSetWindowAttributes * T_X_PTR XTextItem * T_X_PTR XTextItem16 * T_X_PTR XTimeCoord * T_X_PTR XWindowAttributes * T_X_PTR XWindowChanges * T_X_PTR Region T_X_PTR XClassHint * T_X_PTR XComposeStatus * T_X_PTR XIconSize * T_X_PTR XSizeHints * T_X_PTR XStandardColormap * T_X_PTR XTextProperty * T_X_PTR XVisualInfo * T_X_PTR XWMHints * T_X_PTR XEvent * T_X_EVENT_PTR XKeyEvent * T_X_PTR XMappingEvent * T_X_PTR XButtonPressedEvent * T_X_PTR XSelectionRequestEvent * T_X_PTR # these are all structure pointers (used as input/output) XrmDatabase * T_DUMMY # This next section contains (all? mostly?) output types. They # will certainly require special handling. They way they're # defined right now will probably cause a core dump if used. Atom * T_DUMMY Atom ** T_DUMMY Colormap * T_DUMMY KeySym * T_DUMMY Pixmap * T_DUMMY Window * T_DUMMY Window ** T_DUMMY XFontStruct ** T_DUMMY XFontStruct *** T_DUMMY XStandardColormap ** T_DUMMY XIconSize ** T_DUMMY XPointer * T_DUMMY XrmBindingList T_DUMMY XrmClassList T_DUMMY XrmNameList T_DUMMY XrmOptionDescList T_DUMMY XrmQuarkList T_DUMMY XrmRepresentation * T_DUMMY char ** T_DUMMY char *** T_DUMMY int * T_DUMMY long * T_DUMMY unsigned char ** T_DUMMY unsigned int * T_DUMMY int ** T_DUMMY unsigned short * T_DUMMY # -------------------------------------------------------------------------------- # Xt XtAppContext T_X_PTR WidgetClass T_X_PTR Widget T_X_PTR XtInArg T_X_PTR XtOutArg T_X_PTR Modifiers T_X_ID XtAccelerators T_X_PTR XtTranslations T_X_PTR XtWidgetGeometry * T_X_PTR XtActionHookId T_X_ID XtInputId T_X_ID XtIntervalId T_X_ID XtRequestId T_X_ID XtWorkProcId T_X_ID XtGCMask T_IV XtValueMask T_IV XtListPosition T_IV XtInputMask T_IV XtCallbackStatus T_IV XtGeometryResult T_IV XtGrabKind T_IV XtCacheType T_IV XtPointer T_DUMMY XtResourceList T_DUMMY XtActionList T_DUMMY XtConvertArgList T_DUMMY XtCallbackList T_DUMMY KeyCode * T_DUMMY XtActionHookProc T_DUMMY XtActionProc T_DUMMY XtCallbackProc T_DUMMY XtCancelConvertSelectionProc T_DUMMY XtCaseProc T_DUMMY XtConvertSelectionIncrProc T_DUMMY XtConvertSelectionProc T_DUMMY XtDestructor T_DUMMY XtErrorHandler T_DUMMY XtErrorMsgHandler T_DUMMY XtEventHandler T_DUMMY XtFilePredicate T_DUMMY XtInputCallbackProc T_DUMMY XtKeyProc T_DUMMY XtLanguageProc T_DUMMY XtLoseSelectionIncrProc T_DUMMY XtLoseSelectionProc T_DUMMY XtSelectionCallbackProc T_DUMMY XtSelectionDoneIncrProc T_DUMMY XtSelectionDoneProc T_DUMMY XtTimerCallbackProc T_DUMMY XtTypeConverter T_DUMMY XtWorkProc T_DUMMY XtCacheRef * T_DUMMY XtAppContext * T_DUMMY Boolean * T_DUMMY Cardinal * T_DUMMY Dimension * T_DUMMY Dimension ** T_DUMMY KeyCode ** T_DUMMY Modifiers * T_DUMMY Pixel * T_DUMMY Position * T_DUMMY String * T_DUMMY Substitution T_DUMMY Time * T_DUMMY Widget * T_DUMMY WidgetList T_DUMMY XtPointer * T_DUMMY # -------------------------------------------------------------------------------- # Motif XmString T_XMSTRING_PTR XmFontList T_X_PTR XmAnyCallbackStruct * T_X_PTR XmArrowButtonCallbackStruct * T_X_PTR XmDrawingAreaCallbackStruct * T_X_PTR XmDrawnButtonCallbackStruct * T_X_PTR XmPushButtonCallbackStruct * T_X_PTR XmRowColumnCallbackStruct * T_X_PTR XmScrollBarCallbackStruct * T_X_PTR XmToggleButtonCallbackStruct * T_X_PTR XmListCallbackStruct * T_X_PTR XmSelectionBoxCallbackStruct * T_X_PTR XmCommandCallbackStruct * T_X_PTR XmFileSelectionBoxCallbackStruct * T_X_PTR XmScaleCallbackStruct * T_X_PTR XmTextVerifyCallbackStruct * T_X_PTR XmTraverseObscuredCallbackStruct * T_X_PTR XmFontContext T_X_PTR XmFontListEntry T_X_PTR XmFontType T_X_PTR XmStringCharSet T_X_PTR XmTextSource T_X_PTR XmStringContext T_X_PTR # the handling of wide strings is totally screwed up # right now. there ought to be automatic casting to/from # perl strings. most of the X/Xt implementation of # multi-byte character sets and locales has also been # removed. hopefully we'll add this stuff in some time # soon, but I'm in a tough position to test it because # I only work with ISO latin fonts. (The standard # Perl typemap for wchar_t is also screwed up.) wchar_t * T_X_PTR XmStringComponentType T_IV XmHighlightMode T_IV XmTextDirection T_IV XmTextPosition T_IV XmTraversalDirection T_IV XmVisibility T_IV XmColorProc T_DUMMY XmFontContext * T_DUMMY XmFontListEntry * T_DUMMY XmFontType * T_DUMMY XmOffsetPtr * T_DUMMY XmSecondaryResourceData ** T_DUMMY XmString * T_DUMMY XmStringCharSet * T_DUMMY XmStringComponentType * T_DUMMY XmStringContext * T_DUMMY XmStringDirection * T_DUMMY XmTextPosition * T_DUMMY # -------------------------------------------------------------------------------- # Xbae XbaeAnyCallbackStruct * T_X_PTR XbaeRowColumnCallbackStruct * T_X_PTR XbaeMatrixDefaultActionCallbackStruct * T_X_PTR XbaeMatrixEnterCellCallbackStruct * T_X_PTR XbaeMatrixLeaveCellCallbackStruct * T_X_PTR # -------------------------------------------------------------------------------- # XRT XrtTextHandle T_X_PTR XrtDataHandle T_X_PTR XrtAnyCallbackStruct * T_X_PTR XrtAnyGearCallbackStruct * T_X_PTR XrtGenericContainerCallbackStruct * T_X_PTR XrtGearNodeFolderStateCallbackStruct * T_X_PTR XrtGearSelectCallbackStruct * T_X_PTR XrtGearNodeActivateCallbackStruct * T_X_PTR Xrt_perl_GearString T_X_PTR Xrt_perl_GearList T_X_PTR Xrt_perl_DataStyle T_X_PTR Xrt_perl_DataStyles T_X_PTR Xrt_perl_Strings T_X_PTR Xrt_perl_Float T_X_PTR # ================================================================================ # The input/output type conversions follow. The converters should # be quite generic and widely useful, even for non-X data types. # ================================================================================ OUTPUT T_X_ID sv_setref_iv($arg, ${ntype}_Package, (IV)$var); T_X_PTR sv_setref_pv($arg, ${ntype}_Package, (void *)$var); T_XMSTRING_PTR sv_setref_pv($arg, XmString_Package, (void *)$var); T_DUMMY sv_setref_pv($arg, \"DUMMY_${ntype}\", (void *)$var); T_X_EVENT_PTR sv_setref_pv($arg, XEventPtr_Package($var->type), (void *)$var); INPUT T_X_ID if (sv_derived_from($arg, ${ntype}_Package)) { $var = ($type)SvIV((SV*)SvRV($arg)); } else croak(\"$var is not of type %s\", ${ntype}_Package) T_X_PTR if (sv_derived_from($arg, ${ntype}_Package)) { IV tmp_ = SvIV((SV*)SvRV($arg)); $var = ($type)tmp_; } else croak(\"$var is not of type %s\", ${ntype}_Package) T_XMSTRING_PTR if (sv_derived_from($arg, XmString_Package)) { IV tmp_ = SvIV((SV*)SvRV($arg)); $var = (XmString)tmp_; } else { SV *tmp_ = sv_newmortal(); $var = XmStringCreateSimple(SvPV($arg, na)); sv_setref_pv(tmp_, XmString_Package, (void *)$var); } T_DUMMY if (sv_derived_from($arg, \"DUMMY_${ntype}\")) { IV tmp_ = SvIV((SV*)SvRV($arg)); $var = ($type)tmp_; } else croak(\"$var is not of type %s\", \"DUMMY_${ntype}\") T_X_EVENT_PTR if (sv_derived_from($arg, \"X::Event\")) { IV tmp_ = SvIV((SV*)SvRV($arg)); $var = ($type)tmp_; } else croak(\"$var is not of type X::Event\")