URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [insight/] [tix/] [generic/] [tixGrRC.c] - Rev 1782
Compare with Previous | Blame | View Log
/* * tixGrRC.c -- * * This module handles "size" sub-commands. * * Copyright (c) 1996, Expert Interface Technologies * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * */ #include <tixPort.h> #include <tixInt.h> #include <tixDef.h> #include <tixGrid.h> static TIX_DECLARE_SUBCMD(Tix_GrRCSize); EXTERN TIX_DECLARE_SUBCMD(Tix_GrSetSize); int Tix_GrSetSize(clientData, interp, argc, argv) ClientData clientData; Tcl_Interp *interp; /* Current interpreter. */ int argc; /* Number of arguments. */ char **argv; /* Argument strings. */ { static Tix_SubCmdInfo subCmdInfo[] = { {TIX_DEFAULT_LEN, "row", 1, TIX_VAR_ARGS, Tix_GrRCSize, "index ?option value ...?"}, {TIX_DEFAULT_LEN, "column", 1, TIX_VAR_ARGS, Tix_GrRCSize, "index ?option value ...?"}, }; static Tix_CmdInfo cmdInfo = { Tix_ArraySize(subCmdInfo), 1, TIX_VAR_ARGS, "option index ?arg ...?", }; return Tix_HandleSubCmds(&cmdInfo, subCmdInfo, clientData, interp, argc+1, argv-1); } static int Tix_GrRCSize(clientData, interp, argc, argv) ClientData clientData; Tcl_Interp *interp; /* Current interpreter. */ int argc; /* Number of arguments. */ char **argv; /* Argument strings. */ { WidgetPtr wPtr = (WidgetPtr) clientData; int which, index, code; char errorMsg[300]; int changed; if (argv[-1][0] == 'c') { which = 0; } else { which = 1; } if (Tcl_GetInt(interp, argv[0], &index) != TCL_OK) { size_t len = strlen(argv[0]); Tcl_ResetResult(interp); if (strncmp(argv[0], "default", len)!=0) { Tcl_AppendResult(interp, "unknown option \"", argv[0], "\"; must be an integer or \"default\"", NULL); return TCL_ERROR; } else { /* Setting the default sizes */ sprintf(errorMsg, "%s %s ?option value ...?", argv[-2], argv[-1]); code = Tix_GrConfigSize(interp, wPtr, argc-1, argv+1, &wPtr->defSize[which],errorMsg, &changed); /* Handling special cases */ if (code == TCL_OK) { switch (wPtr->defSize[which].sizeType) { case TIX_GR_DEFAULT: wPtr->defSize[which].sizeType = TIX_GR_DEFINED_CHAR; if (which == 0) { wPtr->defSize[which].charValue = 10.0; } else { wPtr->defSize[which].charValue = 1.1; } } switch (wPtr->defSize[which].sizeType) { case TIX_GR_DEFINED_PIXEL: wPtr->defSize[which].pixels=wPtr->defSize[which].sizeValue; break; case TIX_GR_DEFINED_CHAR: wPtr->defSize[which].pixels = (int)(wPtr->defSize[which].charValue * wPtr->fontSize[which]); break; } } } } else { sprintf(errorMsg, "%s %s ?option value ...?", argv[-2], argv[-1]); code = TixGridDataConfigRowColSize(interp, wPtr, wPtr->dataSet, which, index, argc-1, argv+1, errorMsg, &changed); } if (changed) { Tix_GrDoWhenIdle(wPtr, TIX_GR_RESIZE); } return code; }