Etk_Accumulator					T_PTROBJ
Etk_Selection_Type				T_IV
Etk_Selection_Content_Type			T_IV
Etk_Selection_Content				T_IV
Etk_Alignment *					T_PTROBJ_ETK
Etk_Argument *					T_PTROBJ_ETK
Etk_Bin *					T_PTROBJ_ETK
Etk_Bool					T_IV
Etk_Bool *					T_PV
Etk_Box *					T_PTROBJ_ETK
Etk_Box_Group					T_IV
Etk_Box_Fill_Policy				T_IV
Etk_HBox *					T_PTROBJ_ETK
Etk_VBox *					T_PTROBJ_ETK
Etk_Button *					T_PTROBJ_ETK
Etk_Button_Style				T_IV
Etk_Check_Button *				T_PTROBJ_ETK
Etk_Canvas *					T_PTROBJ_ETK
Etk_Color					T_COLOR
Etk_Colorpicker *				T_PTROBJ_ETK
Etk_Colorpicker_Mode				T_IV
Etk_Combobox *					T_PTROBJ_ETK
Etk_Combobox_Column_Type			T_IV
Etk_Combobox_Item *				T_PTROBJ_ETK
Etk_Constructor   				T_PTROBJ
Etk_Container *					T_PTROBJ_ETK
Etk_Destructor 					T_PTROBJ
Etk_Dialog *					T_PTROBJ_ETK
Etk_Drag *					T_PTROBJ_ETK
Etk_Entry *					T_PTROBJ_ETK
Etk_Entry_Image_Position			T_IV
Etk_Event_Selection_Request *			T_PTROBJ
Etk_Filechooser_Widget *			T_PTROBJ_ETK
Etk_Table_Fill_Policy				T_IV
Etk_Frame *					T_PTROBJ_ETK
Etk_Fixed *					T_PTROBJ_ETK
Etk_Geometry					T_GEOMETRY
Etk_Geometry *					T_GEOMETRY_PTR
Etk_Iconbox *					T_PTROBJ_ETK
Etk_Iconbox_Icon *				T_PTROBJ_ETK
Etk_Iconbox_Model *				T_PTROBJ_ETK
Etk_Image *					T_PTROBJ_ETK
Etk_Image_Source				T_IV
Etk_Label *					T_PTROBJ_ETK
Etk_Marshaller					T_PTROBJ
Etk_Menu *					T_PTROBJ_ETK
Etk_Menu_Bar *					T_PTROBJ_ETK
Etk_Menu_Item *					T_PTROBJ_ETK
Etk_Menu_Item_Check *				T_PTROBJ_ETK
Etk_Menu_Item_Image *				T_PTROBJ_ETK
Etk_Menu_Item_Radio *				T_PTROBJ_ETK
Etk_Menu_Item_Separator *				T_PTROBJ_ETK
Etk_Menu_Shell *				T_PTROBJ_ETK
Etk_Message_Dialog *				T_PTROBJ_ETK
Etk_Message_Dialog_Buttons			T_IV
Etk_Message_Dialog_Type				T_IV
Etk_Notebook *					T_PTROBJ_ETK
Etk_Object *					T_PTROBJ_ETK
Etk_Paned *					T_PTROBJ_ETK
Etk_HPaned *					T_PTROBJ_ETK
Etk_VPaned *					T_PTROBJ_ETK
Etk_Pointer_Type				T_OPAQUE_STRUCT
Etk_Popup_Window *				T_PTROBJ_ETK
Etk_Popup_Direction				T_IV
Etk_Progress_Bar *				T_PTROBJ_ETK
Etk_Progress_Bar_Direction			T_IV
Etk_Property *					T_PTROBJ
Etk_Property **					T_PTROBJ
Etk_Property_Flags				T_PTROBJ
Etk_Property_Type				T_PTROBJ
Etk_Property_Value *				T_PTROBJ
Etk_Radio_Button *				T_PTROBJ_ETK
Etk_Range *					T_PTROBJ_ETK
Etk_Scrolled_View *				T_PTROBJ_ETK
Etk_Scrolled_View_Policy			T_IV
Etk_Scrolled_View_Policy *			T_PTROBJ
Etk_Signal *					T_PTROBJ
Etk_Signal_Callback *				T_PTROBJ
Etk_Signal_Callback_Function			T_CALLBACK
Etk_Size *					T_SIZE
Etk_Statusbar *					T_PTROBJ_ETK
Etk_Separator *					T_PTROBJ_ETK
Etk_HSeparator *				T_PTROBJ_ETK
Etk_VSeparator *				T_PTROBJ_ETK
Etk_Slider *					T_PTROBJ_ETK
Etk_HSlider *					T_PTROBJ_ETK
Etk_VSlider *					T_PTROBJ_ETK
Etk_HScrollbar *				T_PTROBJ_ETK
Etk_VScrollbar *				T_PTROBJ_ETK
Etk_Stock_Id					T_IV
Etk_Stock_Id *					T_PTROBJ
Etk_Stock_Size					T_IV
Etk_Stock_Size *				T_PTROBJ
Etk_String *					T_PTROBJ
Etk_Spinner *					T_PTROBJ_ETK
Etk_Widget_Swallow_Error			T_IV
Etk_Table *					T_PTROBJ_ETK
Etk_Text_View *					T_PTROBJ_ETK
Etk_Textblock *					T_PTROBJ_ETK
Etk_Textblock_Iter *				T_PTROBJ_ETK
Etk_Textblock_Gravity				T_IV
Etk_Toggle_Button *				T_PTROBJ_ETK
Etk_Toplevel *					T_PTROBJ_ETK
Etk_Toolbar *					T_PTROBJ_ETK
Etk_Tool_Button *				T_PTROBJ_ETK
Etk_Tool_Toggle_Button *			T_PTROBJ_ETK
Etk_Toolbar_Style				T_IV
Etk_Toolbar_Orientation				T_IV
Etk_Tree *					T_PTROBJ_ETK
Etk_Tree_Col *					T_PTROBJ_ETK
Etk_Tree_Mode					T_IV
Etk_Tree_Model *				T_PTROBJ_ETK
Etk_Tree_Model_Image_Type			T_IV
Etk_Tree_Row *					T_PTROBJ_ETK
Etk_Type *					T_PTROBJ
Etk_Type **					T_PTROBJ
Etk_Widget *					T_PTR_WIDGET
Etk_Window *					T_PTROBJ_ETK
Etk_Window_Stacking				T_IV
Evas *						T_PTROBJ
Evas_List *					T_PTROBJ_EVAS_LIST
Evas_List **					T_PTROBJ
Evas_Object *					T_PTROBJ
Etk_Shadow *					T_PTROBJ_ETK
Etk_Shadow_Type					T_IV
Etk_Shadow_Edges				T_IV
const Etk_String *				T_PTROBJ
char *						T_PV
const char *					T_PV
char **						T_PTROBJ
const char **					T_PTROBJ
void *						T_PTROBJ
float *						T_PTROBJ
Ecore_Timer *                                   T_PTROBJ_ETK
int ( * ) ( Etk_Tree * tree, Etk_Tree_Row * row1, Etk_Tree_Row * row2, Etk_Tree_Col * col, void * data )	T_PTROBJ
int *						T_PTROBJ
va_list						T_PTROBJ
va_list *					T_PTROBJ
void ( * ) ( Etk_Object * object, char * property_name, void * data )	T_PTROBJ
void ( * ) ( Etk_Widget * child )	   	T_PTROBJ
void ( * ) ( Etk_Widget * child, void * data )	T_PTROBJ
void ( * ) ( void * data )		     	T_PTROBJ
void **						T_PTROBJ
#############################################################################
INPUT
T_OPAQUE_STRUCT
	if (sv_derived_from($arg, \"${ntype}\")) {
	    STRLEN len;
	    char  *s = SvPV((SV*)SvRV($arg), len);

	    if (len != sizeof($var))
		croak(\"Size %d of packed data != expected %d\",
			len, sizeof($var));
	    $var = *($type *)s;
	}
	else
	    croak(\"$var is not of type ${ntype}\")

T_PTROBJ_ETK
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvObj($arg, getClass(\"". ($foo=$ntype, $foo=~s/Ptr//,$foo). "\"));

T_PTR_WIDGET
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvObj($arg, getClass(\"Etk_Widget\"));

T_COLOR
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvColor($arg);

T_GEOMETRY
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvGeometry($arg);

T_GEOMETRY_PTR
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvGeometryPtr($arg);

T_SIZE
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvSizePtr($arg);

T_TROBJ_EVAS_LIST
	if (!$arg || !SvOK($arg))
		croak(\"$var is not of type ${ntype}\");
	$var = SvEvasList($arg);
	

#############################################################################
OUTPUT
T_OPAQUE_STRUCT
	sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var));

T_PTROBJ_ETK
	do { /* hack to redefine the stack and delete class */
	$arg = sv_2mortal(newSVObj($var, getClass(\"@{[grep {s/Ptr//,1} $ntype]}\")));
	} while (0);

T_PTR_WIDGET
	do { /* hack to redefine the stack and delete class */
	$arg = sv_2mortal(newSVObject($var));
	} while (0);

T_COLOR
	do {
	$arg = sv_2mortal(newSVColor($var));
	} while(0);

T_GEOMETRY
	do {
	$arg = sv_2mortal(newSVGeometry($var));
	} while(0);

T_GEOMETRY_PTR
	do {
	$arg = sv_2mortal(newSVGeometryPtr($var));
	} while(0);
T_SIZE
	do {
	$arg = sv_2mortal(newSVSizePtr($var));
	} while(0);
	
T_PTROBJ_EVAS_LIST
	do {
	$arg = sv_2mortal(newSVEvasList($var));
	} while(0);

