1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
TYPEMAP
# These are synonyms for Gtk::Gdk::Pixmap (which itself is a renamed Gtk::Gdk::Window)
Gtk::Gdk::Window T_SimpleVal
Gtk::Gdk::Bitmap T_SimpleVal
Gtk::Gdk::Window_OrNULL T_SimpleValOrNULL
Gtk::Gdk::Bitmap_OrNULL T_SimpleValOrNULL
Gtk::Gdk::Cursor T_MISCPTROBJ
Gtk::Gdk::GC T_MISCPTROBJ
Gtk::Gdk::Image T_SimpleVal
Gtk::Gdk::GCValues T_MISCPTROBJ
Gtk::Gdk::Atom T_UV
Gtk::Gdk::Image_OrNULL T_SimpleValOrNULL
Gtk::Requisition T_SimpleVal
Gtk::MenuFactory T_MISCPTROBJ
Gtk::SelectionData T_MISCPTROBJ
Gtk::Widget_Up T_GtkPTROBJUp
Gtk::Widget_Sink_Up T_GtkPTROBJSinkUp
Gtk::Widget_OrNULL_Up T_GtkPTROBJOrNULLUp
Gtk::Object_Up T_GtkPTROBJUp
Gtk::Object_Sink_Up T_GtkPTROBJSinkUp
Gtk::Object_OrNULL_Up T_GtkPTROBJOrNULLUp
Gtk::Gdk::Event T_SimpleVal
Gtk::Gdk::Region T_SimpleVal
Gtk::Gdk::Rectangle T_SimplePtr
Gtk::Gdk::Color T_SimpleVal
gfloat T_FLOAT
gdouble T_DOUBLE
gboolean T_BOOL
guint T_UV
gint T_IV
glong T_IV
gulong T_UV
guint32 T_UV
bool T_BOOL
gstring T_GSTRING
INPUT
T_BOOL
$var = (int)SvIV($arg)
T_GtkPTROBJ
do {
void * _o = SvGtkObjectRef($arg, \"${ntype}\");
if (!_o)
croak(\"$var is not of type ${ntype}\");
else
$var = Cast$type(_o);
} while(0)
T_GtkPTROBJOrNULL
$var = SvTRUE($arg) ? Cast$type(SvGtkObjectRef($arg, \"" . ($foo=$ntype,$foo=~s/_OrNULL//,$foo). "\")) : 0
T_GtkPTROBJUp
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTROBJSink
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTROBJSinkUp
$var = Cast$type(SvGtkObjectRef($arg, \"${ntype}\"))
T_GtkPTRREF
$var = Cast$type(SvGtkObjectRef($arg, 0))
T_GtkPTRREF_Up
$var = Cast$type(SvGtkObjectRef($arg, 0))
T_MISCPTROBJ
$var = ($type)SvMiscRef($arg, \"${ntype}\")
T_MISCPTRREF
$var = ($type)SvMiscRef($arg, 0);
T_REFPTROBJ
$var = ($type)SvMiscRef($arg, \"${ntype}\")
T_REFPTRREF
$var = ($type)SvMiscRef($arg, 0);
T_SimpleVal
do {
if (!$arg || !SvOK($arg))
croak(\"$var is not of type ${ntype}\");
$var = Sv" . ($foo=$ntype, $foo=~s/://g, $foo=~s/^GtkGdk/Gdk/, $foo) . "($arg);
} while (0)
T_SimpleValOrNULL
$var = ($arg && SvOK($arg)) ? Sv" . ($foo=$ntype, $foo=~s/://g, $foo=~s/^GtkGdk/Gdk/, $foo=~s/_OrNULL$//, $foo) . "($arg) : 0
T_SimplePtr
$var = Sv" . ($foo=$ntype, $foo=~s/://g, $foo=~s/^GtkGdk/Gdk/, $foo) . "($arg,0)
OUTPUT
T_BOOL
$arg = boolSV($var);
T_GSTRING
sv_setpv((SV*)$arg, $var);
g_free($var);
T_GtkPTROBJ
if (!$var) {
croak("failed to return mandatory object of type $ntype");
}
$arg = sv_2mortal(newSVGtkObjectRef(GTK_OBJECT($var), NULL));
T_GtkPTROBJSink
if (!$var) {
croak("failed to return mandatory object of type @{[grep {s/_Sink//,1} $ntype]}");
}
$arg = sv_2mortal(newSVGtkObjectRef(GTK_OBJECT($var), \"@{[grep {s/_Sink//,1} $ntype]}\"));
gtk_object_sink(GTK_OBJECT($var));
T_GtkPTROBJOrNULL
if ($var) {
$arg = sv_2mortal(newSVGtkObjectRef(GTK_OBJECT($var), NULL));
} else
$arg = newSVsv(&PL_sv_undef);
T_GtkPTROBJUp
$arg = newSVGtkObjectRef(GTK_OBJECT($var), 0);
T_GtkPTROBJOrNULLUp
if ($var) {
$arg = newSVGtkObjectRef(GTK_OBJECT($var), 0);
} else
$arg = newSVsv(&PL_sv_undef);
T_GtkPTROBJSinkUp
$arg = newSVGtkObjectRef(GTK_OBJECT($var), 0);
gtk_object_sink(GTK_OBJECT($var));
T_MISCPTROBJ
$arg = newSVMiscRef((void*)$var, \"${ntype}\", 0);
T_REFPTROBJ
{
int n;
$arg = newSVMiscRef((void*)$var, \"${ntype}\", &n);
if (n)
@{[grep {s/://g, s/^GtkGdk/Gdk/, s/([a-z])([A-Z]+)/$1_$2/g, tr/A-Z/a-z/, 1} $ntype]}_ref($var);
}
T_SimpleVal
/*if (!$var) { Oh, right smart that one, sheesh... For my next trick...
croak("failed to return mandatory object of type @{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}");
} else*/
$arg = sv_2mortal(newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}($var));
/*sv_setsv($arg, newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}($var));*/
T_SimpleValOrNULL
$arg = $var ? newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,s/_OrNULL$//,1} $ntype]}($var) : newSVsv(&PL_sv_undef);
T_SimplePtr
$arg = newSV@{[grep {s/://g,s/^GtkGdk/Gdk/,1} $ntype]}($var);
|