⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkget.c

📁 linux系统下的音频通信
💻 C
📖 第 1 页 / 共 2 页
字号:
    c = string[0];    length = strlen(string);    if ((c == 'b') && (strncmp(string, "bevel", length) == 0)) {	*joinPtr = JoinBevel;	return TCL_OK;    }    if ((c == 'm') && (strncmp(string, "miter", length) == 0)) {	*joinPtr = JoinMiter;	return TCL_OK;    }    if ((c == 'r') && (strncmp(string, "round", length) == 0)) {	*joinPtr = JoinRound;	return TCL_OK;    }    Tcl_AppendResult(interp, "bad join style \"", string,	    "\": must be bevel, miter, or round",	    (char *) NULL);    return TCL_ERROR;}/* *-------------------------------------------------------------- * * Tk_NameOfJoinStyle -- * *	Given a Tk_JoinStyle, return the string that corresponds *	to it. * * Results: *	None. * * Side effects: *	None. * *-------------------------------------------------------------- */char *Tk_NameOfJoinStyle(join)    int join;			/* Join style for which identifying string				 * is desired. */{    switch (join) {	case JoinBevel: return "bevel";	case JoinMiter: return "miter";	case JoinRound: return "round";    }    return "unknown join style";}/* *-------------------------------------------------------------- * * Tk_GetCapStyle -- * *	Given a string, return the corresponding Tk_CapStyle. * * Results: *	The return value is a standard Tcl return result.  If *	TCL_OK is returned, then everything went well and the *	justification is stored at *capPtr;  otherwise *	TCL_ERROR is returned and an error message is left in *	interp->result. * * Side effects: *	None. * *-------------------------------------------------------------- */intTk_GetCapStyle(interp, string, capPtr)    Tcl_Interp *interp;		/* Use this for error reporting. */    char *string;		/* String describing a justification style. */    int *capPtr;		/* Where to store cap style corresponding				 * to string. */{    int c;    size_t length;    c = string[0];    length = strlen(string);    if ((c == 'b') && (strncmp(string, "butt", length) == 0)) {	*capPtr = CapButt;	return TCL_OK;    }    if ((c == 'p') && (strncmp(string, "projecting", length) == 0)) {	*capPtr = CapProjecting;	return TCL_OK;    }    if ((c == 'r') && (strncmp(string, "round", length) == 0)) {	*capPtr = CapRound;	return TCL_OK;    }    Tcl_AppendResult(interp, "bad cap style \"", string,	    "\": must be butt, projecting, or round",	    (char *) NULL);    return TCL_ERROR;}/* *-------------------------------------------------------------- * * Tk_NameOfCapStyle -- * *	Given a Tk_CapStyle, return the string that corresponds *	to it. * * Results: *	None. * * Side effects: *	None. * *-------------------------------------------------------------- */char *Tk_NameOfCapStyle(cap)    int cap;			/* Cap style for which identifying string				 * is desired. */{    switch (cap) {	case CapButt: return "butt";	case CapProjecting: return "projecting";	case CapRound: return "round";    }    return "unknown cap style";}/* *-------------------------------------------------------------- * * Tk_GetJustify -- * *	Given a string, return the corresponding Tk_Justify. * * Results: *	The return value is a standard Tcl return result.  If *	TCL_OK is returned, then everything went well and the *	justification is stored at *justifyPtr;  otherwise *	TCL_ERROR is returned and an error message is left in *	interp->result. * * Side effects: *	None. * *-------------------------------------------------------------- */intTk_GetJustify(interp, string, justifyPtr)    Tcl_Interp *interp;		/* Use this for error reporting. */    char *string;		/* String describing a justification style. */    Tk_Justify *justifyPtr;	/* Where to store Tk_Justify corresponding				 * to string. */{    int c;    size_t length;    c = string[0];    length = strlen(string);    if ((c == 'l') && (strncmp(string, "left", length) == 0)) {	*justifyPtr = TK_JUSTIFY_LEFT;	return TCL_OK;    }    if ((c == 'r') && (strncmp(string, "right", length) == 0)) {	*justifyPtr = TK_JUSTIFY_RIGHT;	return TCL_OK;    }    if ((c == 'c') && (strncmp(string, "center", length) == 0)) {	*justifyPtr = TK_JUSTIFY_CENTER;	return TCL_OK;    }    Tcl_AppendResult(interp, "bad justification \"", string,	    "\": must be left, right, or center",	    (char *) NULL);    return TCL_ERROR;}/* *-------------------------------------------------------------- * * Tk_NameOfJustify -- * *	Given a Tk_Justify, return the string that corresponds *	to it. * * Results: *	None. * * Side effects: *	None. * *-------------------------------------------------------------- */char *Tk_NameOfJustify(justify)    Tk_Justify justify;		/* Justification style for which				 * identifying string is desired. */{    switch (justify) {	case TK_JUSTIFY_LEFT: return "left";	case TK_JUSTIFY_RIGHT: return "right";	case TK_JUSTIFY_CENTER: return "center";    }    return "unknown justification style";}/* *---------------------------------------------------------------------- * * Tk_GetUid -- * *	Given a string, this procedure returns a unique identifier *	for the string. * * Results: *	This procedure returns a Tk_Uid corresponding to the "string" *	argument.  The Tk_Uid has a string value identical to string *	(strcmp will return 0), but it's guaranteed that any other *	calls to this procedure with a string equal to "string" will *	return exactly the same result (i.e. can compare Tk_Uid *	*values* directly, without having to call strcmp on what they *	point to). * * Side effects: *	New information may be entered into the identifier table. * *---------------------------------------------------------------------- */Tk_UidTk_GetUid(string)    CONST char *string;		/* String to convert. */{    int dummy;    if (!initialized) {	Tcl_InitHashTable(&uidTable, TCL_STRING_KEYS);	initialized = 1;    }    return (Tk_Uid) Tcl_GetHashKey(&uidTable,	    Tcl_CreateHashEntry(&uidTable, string, &dummy));}/* *-------------------------------------------------------------- * * Tk_GetScreenMM -- * *	Given a string, returns the number of screen millimeters *	corresponding to that string. * * Results: *	The return value is a standard Tcl return result.  If *	TCL_OK is returned, then everything went well and the *	screen distance is stored at *doublePtr;  otherwise *	TCL_ERROR is returned and an error message is left in *	interp->result. * * Side effects: *	None. * *-------------------------------------------------------------- */intTk_GetScreenMM(interp, tkwin, string, doublePtr)    Tcl_Interp *interp;		/* Use this for error reporting. */    Tk_Window tkwin;		/* Window whose screen determines conversion				 * from centimeters and other absolute				 * units. */    char *string;		/* String describing a screen distance. */    double *doublePtr;		/* Place to store converted result. */{    char *end;    double d;    d = mystrtod((CONST char*)string, &end);    if (end == string) {	error:	Tcl_AppendResult(interp, "bad screen distance \"", string,		"\"", (char *) NULL);	return TCL_ERROR;    }    while ((*end != '\0') && isspace(UCHAR(*end))) {	end++;    }    switch (*end) {	case 0:	    d /= WidthOfScreen(Tk_Screen(tkwin));	    d *= WidthMMOfScreen(Tk_Screen(tkwin));	    break;	case 'c':	    d *= 10;	    end++;	    break;	case 'i':	    d *= 25.4;	    end++;	    break;	case 'm':	    end++;	    break;	case 'p':	    d *= 25.4/72.0;	    end++;	    break;	default:	    goto error;    }    while ((*end != '\0') && isspace(UCHAR(*end))) {	end++;    }    if (*end != 0) {	goto error;    }    *doublePtr = d;    return TCL_OK;}/* *-------------------------------------------------------------- * * Tk_GetPixels -- * *	Given a string, returns the number of pixels corresponding *	to that string. * * Results: *	The return value is a standard Tcl return result.  If *	TCL_OK is returned, then everything went well and the *	rounded pixel distance is stored at *intPtr;  otherwise *	TCL_ERROR is returned and an error message is left in *	interp->result. * * Side effects: *	None. * *-------------------------------------------------------------- */intTk_GetPixels(interp, tkwin, string, intPtr)    Tcl_Interp *interp;		/* Use this for error reporting. */    Tk_Window tkwin;		/* Window whose screen determines conversion				 * from centimeters and other absolute				 * units. */    char *string;		/* String describing a justification style. */    int *intPtr;		/* Place to store converted result. */{    char *end;    double d;    d = strtod(string, &end);    if (end == string) {	error:	Tcl_AppendResult(interp, "bad screen distance \"", string,		"\"", (char *) NULL);	return TCL_ERROR;    }    while ((*end != '\0') && isspace(UCHAR(*end))) {	end++;    }    switch (*end) {	case 0:	    break;	case 'c':	    d *= 10*WidthOfScreen(Tk_Screen(tkwin));	    d /= WidthMMOfScreen(Tk_Screen(tkwin));	    end++;	    break;	case 'i':	    d *= 25.4*WidthOfScreen(Tk_Screen(tkwin));	    d /= WidthMMOfScreen(Tk_Screen(tkwin));	    end++;	    break;	case 'm':	    d *= WidthOfScreen(Tk_Screen(tkwin));	    d /= WidthMMOfScreen(Tk_Screen(tkwin));	    end++;	    break;	case 'p':	    d *= (25.4/72.0)*WidthOfScreen(Tk_Screen(tkwin));	    d /= WidthMMOfScreen(Tk_Screen(tkwin));	    end++;	    break;	default:	    goto error;    }    while ((*end != '\0') && isspace(UCHAR(*end))) {	end++;    }    if (*end != 0) {	goto error;    }    if (d < 0) {	*intPtr = (int) (d - 0.5);    } else {	*intPtr = (int) (d + 0.5);    }    return TCL_OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -