Chandra
view release on metacpan or search on metacpan
{
HV *hv = (HV *)SvRV(self);
(void)hv_stores(hv, "_on_close", newSVsv(handler));
RETVAL = SvREFCNT_inc(self);
}
OUTPUT:
RETVAL
# ---- assets($root, prefix => $pfx) - lazy Chandra::Assets accessor ----
SV *
assets(self, ...)
SV *self
CODE:
{
HV *hv = (HV *)SvRV(self);
SV **cached_svp = hv_fetchs(hv, "_assets", 0);
if (cached_svp && SvOK(*cached_svp)) {
RETVAL = SvREFCNT_inc(*cached_svp);
} else {
dSP;
int count;
SV *root_sv = (items > 1 && SvOK(ST(1))) ? ST(1) : NULL;
if (!root_sv) {
croak("assets() requires a root directory on first call");
}
load_module(PERL_LOADMOD_NOIMPORT,
newSVpvs("Chandra::Assets"), NULL);
ENTER; SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpvs("Chandra::Assets")));
XPUSHs(sv_2mortal(newSVpvs("root")));
XPUSHs(root_sv);
XPUSHs(sv_2mortal(newSVpvs("app")));
XPUSHs(self);
/* Forward remaining named args (prefix => 'xxx', etc.) */
{
I32 i;
for (i = 2; i < items; i++) {
XPUSHs(ST(i));
}
}
PUTBACK;
count = call_method("new", G_SCALAR);
SPAGAIN;
RETVAL = (count > 0) ? newSVsv(POPs) : newSV(0);
PUTBACK; FREETMPS; LEAVE;
(void)hv_stores(hv, "_assets", SvREFCNT_inc(RETVAL));
}
}
OUTPUT:
RETVAL
# ---- clipboard() - returns Chandra::Clipboard class for convenience ----
SV *
clipboard(self)
SV *self
CODE:
{
load_module(PERL_LOADMOD_NOIMPORT,
newSVpvs("Chandra::Clipboard"), NULL);
RETVAL = newSVpvs("Chandra::Clipboard");
}
OUTPUT:
RETVAL
# ---- drag_drop() - lazy Chandra::DragDrop accessor ----
SV *
drag_drop(self)
SV *self
CODE:
{
HV *hv = (HV *)SvRV(self);
SV **cached_svp = hv_fetchs(hv, "_dragdrop", 0);
if (cached_svp && SvOK(*cached_svp)) {
RETVAL = SvREFCNT_inc(*cached_svp);
} else {
dSP;
int count;
load_module(PERL_LOADMOD_NOIMPORT,
newSVpvs("Chandra::DragDrop"), NULL);
ENTER; SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpvs("Chandra::DragDrop")));
XPUSHs(sv_2mortal(newSVpvs("app")));
XPUSHs(self);
PUTBACK;
count = call_method("new", G_SCALAR);
SPAGAIN;
RETVAL = (count > 0) ? SvREFCNT_inc(POPs) : &PL_sv_undef;
PUTBACK; FREETMPS; LEAVE;
(void)hv_stores(hv, "_dragdrop", SvREFCNT_inc(RETVAL));
}
}
OUTPUT:
RETVAL
# ---- on_file_drop($coderef) - convenience for drag_drop->on_file_drop ----
SV *
on_file_drop(self, callback)
SV *self
SV *callback
CODE:
{
SV *dd;
dSP;
int count;
/* Get or create drag_drop instance */
ENTER; SAVETMPS;
( run in 2.827 seconds using v1.01-cache-2.11-cpan-302cb4679cc )