/*! \todo Finish function description!!! * \brief * \par Function Description * * \param [in] width * \param [in] height * \param [in] border * \return SCM_BOOL_T always. */ SCM g_rc_world_size(SCM width, SCM height, SCM border) #define FUNC_NAME "world-size" { int i_width, i_height, i_border; int init_right, init_bottom; SCM_ASSERT (SCM_NIMP (width) && SCM_REALP (width), width, SCM_ARG1, FUNC_NAME); SCM_ASSERT (SCM_NIMP (height) && SCM_REALP (height), height, SCM_ARG2, FUNC_NAME); SCM_ASSERT (SCM_NIMP (border) && SCM_REALP (border), border, SCM_ARG3, FUNC_NAME); /* yes this is legit, we are casing the resulting double to an int */ i_width = (int) (scm_to_double (width) * MILS_PER_INCH); i_height = (int) (scm_to_double (height) * MILS_PER_INCH); i_border = (int) (scm_to_double (border) * MILS_PER_INCH); PAPERSIZEtoWORLD(i_width, i_height, i_border, &init_right, &init_bottom); #if DEBUG printf("%d %d\n", i_width, i_height); printf("%d %d\n", init_right, init_bottom); #endif default_init_right = init_right; default_init_bottom = init_bottom; return SCM_BOOL_T; }
/*! \todo Finish function documentation!!! * \brief * \par Function Description * */ SCM g_rc_paper_sizes(SCM scm_papername, SCM scm_width, SCM scm_height) #define FUNC_NAME "paper-sizes" { int width; int height; char *papername; SCM ret; SCM_ASSERT (scm_is_string (scm_papername), scm_papername, SCM_ARG1, FUNC_NAME); SCM_ASSERT (SCM_NIMP (scm_width) && SCM_REALP (scm_width), scm_width, SCM_ARG2, FUNC_NAME); SCM_ASSERT (SCM_NIMP (scm_height) && SCM_REALP (scm_height), scm_height, SCM_ARG3, FUNC_NAME); papername = SCM_STRING_CHARS (scm_papername); width = (int) (SCM_NUM2DOUBLE (0, scm_width) * MILS_PER_INCH); height = (int) (SCM_NUM2DOUBLE (0, scm_height) * MILS_PER_INCH); if (!s_papersizes_uniq(papername)) { ret = SCM_BOOL_F; } else { s_papersizes_add_entry(papername, width, height); ret = SCM_BOOL_T; } return ret; }
/*! \todo Finish function documentation!!! * \brief * \par Function Description * */ SCM g_rc_paper_size(SCM width, SCM height) #define FUNC_NAME "paper-size" { SCM_ASSERT (SCM_NIMP (width) && SCM_REALP (width), width, SCM_ARG1, FUNC_NAME); SCM_ASSERT (SCM_NIMP (height) && SCM_REALP (height), height, SCM_ARG2, FUNC_NAME); /* yes this is legit, we are casting the resulting double to an int */ default_paper_width = (int) (SCM_NUM2DOUBLE (0, width) * MILS_PER_INCH); default_paper_height = (int) (SCM_NUM2DOUBLE (0, height) * MILS_PER_INCH); return SCM_BOOL_T; }
SCM g_rc_postscript_font_scale(SCM scale) { float val; SCM_ASSERT (SCM_REALP (scale), scale, SCM_ARG1, "postscript-font-scale"); val =(float)(SCM_REAL_VALUE (scale)); if (val == 0) { fprintf(stderr, _("Invalid size [%f] passed to postscript-font-scale\n"), val); val = 1.0; /* absolute default */ } default_postscript_font_scale = val; return SCM_BOOL_T; }