bool updateMouseArea(guihckContext* ctx, guihckElementId id, void* data) { SCM x = guihckElementGetProperty(ctx, id, "absolute-x"); SCM y = guihckElementGetProperty(ctx, id, "absolute-y"); SCM w = guihckElementGetProperty(ctx, id, "width"); SCM h = guihckElementGetProperty(ctx, id, "height"); float px, py, pw, ph; guihckMouseAreaGetRect(ctx, *((guihckMouseAreaId*) data), &px, &py, &pw, &ph); if(scm_to_bool(scm_real_p(x))) px = scm_to_double(x); if(scm_to_bool(scm_real_p(y))) py = scm_to_double(y); if(scm_to_bool(scm_real_p(w))) pw = scm_to_double(w); if(scm_to_bool(scm_real_p(h))) ph = scm_to_double(h); guihckMouseAreaRect(ctx, *((guihckMouseAreaId*) data), px, py, pw, ph); return false; }
/* FIXME: Is this right? */ int scm_is_rational(SCM x) { return scm_real_p(x) == SCM_BOOL_T; }