Ejemplo n.º 1
0
/*
 * Generic interface for framebuffer object routines.
 * Usage:
 * procname cmd ?args?
 *
 * Returns: result of FB command.
 */
HIDDEN int
fbo_cmd(ClientData clientData, Tcl_Interp *UNUSED(interp), int argc, const char **argv)
{
    int ret;

    static struct bu_cmdtab fbo_cmds[] = {
	{"cell",	fbo_cell_tcl},
	{"clear",	fbo_clear_tcl},
	{"close",	fbo_close_tcl},
	{"configure",	fbo_configure_tcl},
	{"cursor",	fbo_cursor_tcl},
	{"pixel",	fbo_pixel_tcl},
	{"flush",	fbo_flush_tcl},
	{"getcursor",	fbo_getcursor_tcl},
	{"getheight",	fbo_getheight_tcl},
	{"getsize",	fbo_getsize_tcl},
	{"getwidth",	fbo_getwidth_tcl},
	{"listen",	fbo_listen_tcl},
	{"rect",	fbo_rect_tcl},
	{"refresh",	fbo_refresh_tcl},
	{(const char *)NULL, BU_CMD_NULL}
    };

    if (bu_cmd(fbo_cmds, argc, argv, 1, clientData, &ret) == BRLCAD_OK)
	return ret;

    bu_log("ERROR: '%s' command not found\n", argv[1]);
    return BRLCAD_ERROR;
}
Ejemplo n.º 2
0
HIDDEN int
cho_cmd(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv)
{
    int ret;

    static struct bu_cmdtab cho_cmds[] = {
	{"add",		bu_cmdhist_add},
	{"curr",	bu_cmdhist_curr},
	{"history",	bu_cmdhist_history},
	{"next",	bu_cmdhist_next},
	{"prev",	bu_cmdhist_prev},
	{(char *)NULL,	BU_CMD_NULL}
    };

    if (bu_cmd(cho_cmds, argc, argv, 1, clientData, &ret) == BRLCAD_OK) {
	if (ret == BRLCAD_OK)
	    Tcl_AppendResult(interp, bu_vls_addr(&((struct bu_cmdhist_obj *)clientData)->cho_curr->h_command), NULL);
	return ret;
    }

    bu_log("ERROR: '%s' command not found\n", argv[1]);
    return BRLCAD_ERROR;
}
Ejemplo n.º 3
0
/*
 *			F B O _ C M D
 *
 * Generic interface for framebuffer object routines.
 * Usage:
 *        procname cmd ?args?
 *
 * Returns: result of FB command.
 */
HIDDEN int
fbo_cmd(ClientData clientData, Tcl_Interp *interp, int argc, char **argv)
{
    return bu_cmd(clientData, interp, argc, argv, fbo_cmds, 1);
}
int
ged_constraint(struct ged *gedp, int argc, const char *argv[])
{
    /* Potential constraint attributes:
     *
     * attr set c1 cad:description "this keeps our car on the ground"
     * attr set c1 cad:plot 0|1
     * attr set c1 cad:reference 0|1
     * attr set c1 cad:format value|name|expression (name=value)
     * attr set c1 cad:disabled 0|1
     */

    static struct bu_cmdtab pc_cmds[] = {
	{"set", constraint_set},
	{"get", constraint_get},
	{"show", constraint_show},
	{"eval", constraint_eval},
	{"help", constraint_help},
	{(const char *)NULL, BU_CMD_NULL}
    };

    int ret;
    int cmdret;

    /* initialize result */
    bu_vls_trunc(gedp->ged_result_str, 0);

    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);

    if (argc < 2) {
	/* must be wanting help */
	constraint_usage(gedp->ged_result_str, argv[0]);
	return GED_HELP;
    }
    if (BU_STR_EQUIV(argv[1], "help")) {
        constraint_help(gedp, argc, argv);
	return GED_OK;
    }

    if (argc < 3) {
	/* must be confused */
	constraint_usage(gedp->ged_result_str, argv[0]);
	return GED_HELP;
    }

    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);

    /* this is only valid for v5 databases */
    if (db_version(gedp->ged_wdbp->dbip) < 5) {
	bu_vls_printf(gedp->ged_result_str, "Attributes are not available for this database format.\nPlease upgrade your database format using \"dbupgrade\" to enable attributes.");
	return GED_ERROR;
    }

    /* run our command */
    ret = bu_cmd(pc_cmds, argc, argv, 1, gedp, &cmdret);
    if (ret != BRLCAD_OK) {
	constraint_usage(gedp->ged_result_str, argv[0]);
	return GED_ERROR;
    }
    if (cmdret != BRLCAD_OK)
	return GED_ERROR;

    return GED_OK;
}