Tk
view release on metacpan or search on metacpan
pTk/mTk/generic/tkImgPhoto.c view on Meta::CPAN
Tcl_AppendResult(interp, "or ", (char *) NULL);
}
}
Tcl_AppendResult(interp, *listPtr, (char *) NULL);
}
bit <<= 1;
}
return TCL_ERROR;
}
/*
* For the -from, -to, -zoom and -subsample options,
* parse the values given. Report an error if too few
* or too many values are given.
*/
if (bit == OPT_BACKGROUND) {
/*
* The -background option takes a single XColor value.
*/
if (index + 1 < objc) {
*optIndexPtr = ++index;
optPtr->background = Tk_GetColor(interp, Tk_MainWindow(interp),
Tk_GetUid(Tcl_GetString(objv[index])));
if (!optPtr->background) {
return TCL_ERROR;
}
} else {
Tcl_AppendResult(interp, "the \"-background\" option ",
"requires a value", (char *) NULL);
return TCL_ERROR;
}
} else if (bit == OPT_FORMAT) {
/*
* The -format option takes a single string value. Note
* that parsing this is outside the scope of this
* function.
*/
if (index + 1 < objc) {
*optIndexPtr = ++index;
optPtr->format = objv[index];
} else {
Tcl_AppendResult(interp, "the \"-format\" option ",
"requires a value", (char *) NULL);
return TCL_ERROR;
}
} else if (bit == OPT_COMPOSITE) {
/*
* The -compositingrule option takes a single value from
* a well-known set.
*/
if (index + 1 < objc) {
/*
* Note that these must match the TK_PHOTO_COMPOSITE_*
* constants.
*/
static CONST char *compositingRules[] = {
"overlay", "set",
NULL
};
index++;
if (Tcl_GetIndexFromObj(interp, objv[index], compositingRules,
"compositing rule", 0, &optPtr->compositingRule)
!= TCL_OK) {
return TCL_ERROR;
}
*optIndexPtr = index;
} else {
Tcl_AppendResult(interp, "the \"-compositingrule\" option ",
"requires a value", (char *) NULL);
return TCL_ERROR;
}
} else if ((bit != OPT_SHRINK) && (bit != OPT_GRAYSCALE)) {
char *val;
maxValues = ((bit == OPT_FROM) || (bit == OPT_TO))? 4: 2;
argIndex = index + 1;
for (numValues = 0; numValues < maxValues; ++numValues) {
if (argIndex >= objc) {
break;
}
val = Tcl_GetString(objv[argIndex]);
if ((argIndex < objc) && (isdigit(UCHAR(val[0]))
|| ((val[0] == '-') && isdigit(UCHAR(val[1]))))) {
if (Tcl_GetIntFromObj(interp, objv[argIndex], &values[numValues])
!= TCL_OK) {
return TCL_ERROR;
}
} else {
break;
}
++argIndex;
}
if (numValues == 0) {
Tcl_AppendResult(interp, "the \"", option, "\" option ",
"requires one ", maxValues == 2? "or two": "to four",
" integer values", (char *) NULL);
return TCL_ERROR;
}
*optIndexPtr = (index += numValues);
/*
* Y values default to the corresponding X value if not specified.
*/
if (numValues == 1) {
values[1] = values[0];
}
if (numValues == 3) {
values[3] = values[2];
}
/*
* Check the values given and put them in the appropriate
* field of the SubcommandOptions structure.
*/
( run in 0.550 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )