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

📄 tkwincursor.c

📁 linux系统下的音频通信
💻 C
字号:
/*  * tkWinCursor.c -- * *	This file contains Win32 specific cursor related routines. * * Copyright (c) 1995 Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkWinCursor.c 1.10 97/09/02 13:21:01 */#include "tkWinInt.h"/* * The following data structure contains the system specific data * necessary to control Windows cursors. */typedef struct {    TkCursor info;		/* Generic cursor info used by tkCursor.c */    HCURSOR winCursor;		/* Win32 cursor handle. */    int system;			/* 1 if cursor is a system cursor, else 0. */} TkWinCursor;/* * The table below is used to map from the name of a predefined cursor * to its resource identifier. */static struct CursorName {    char *name;    LPCTSTR id;} cursorNames[] = {    {"starting",		IDC_APPSTARTING},    {"arrow",			IDC_ARROW},    {"ibeam",			IDC_IBEAM},    {"icon",			IDC_ICON},    {"no",			IDC_NO},    {"size",			IDC_SIZE},    {"size_ne_sw",		IDC_SIZENESW},    {"size_ns",			IDC_SIZENS},    {"size_nw_se",		IDC_SIZENWSE},    {"size_we",			IDC_SIZEWE},    {"uparrow",			IDC_UPARROW},    {"wait",			IDC_WAIT},    {"crosshair",		IDC_CROSS},    {"fleur",			IDC_SIZE},    {"sb_v_double_arrow",	IDC_SIZENS},    {"sb_h_double_arrow",	IDC_SIZEWE},    {"center_ptr",		IDC_UPARROW},    {"watch",			IDC_WAIT},    {"xterm",			IDC_IBEAM},    {NULL,			0}};/* * The default cursor is used whenever no other cursor has been specified. */#define TK_DEFAULT_CURSOR	IDC_ARROW/* *---------------------------------------------------------------------- * * TkGetCursorByName -- * *	Retrieve a system cursor by name.   * * Results: *	Returns a new cursor, or NULL on errors.   * * Side effects: *	Allocates a new cursor. * *---------------------------------------------------------------------- */TkCursor *TkGetCursorByName(interp, tkwin, string)    Tcl_Interp *interp;		/* Interpreter to use for error reporting. */    Tk_Window tkwin;		/* Window in which cursor will be used. */    Tk_Uid string;		/* Description of cursor.  See manual entry				 * for details on legal syntax. */{    struct CursorName *namePtr;    TkWinCursor *cursorPtr;    /*     * Check for the cursor in the system cursor set.     */    for (namePtr = cursorNames; namePtr->name != NULL; namePtr++) {	if (strcmp(namePtr->name, string) == 0) {	    break;	}    }    cursorPtr = (TkWinCursor *) ckalloc(sizeof(TkWinCursor));    cursorPtr->info.cursor = (Tk_Cursor) cursorPtr;    cursorPtr->winCursor = NULL;    if (namePtr->name != NULL) {	cursorPtr->winCursor = LoadCursor(NULL, namePtr->id);	cursorPtr->system = 1;    }    if (cursorPtr->winCursor == NULL) {	cursorPtr->winCursor = LoadCursor(Tk_GetHINSTANCE(), string);	cursorPtr->system = 0;    }    if (cursorPtr->winCursor == NULL) {	ckfree((char *)cursorPtr);	Tcl_AppendResult(interp, "bad cursor spec \"", string, "\"",		(char *) NULL);	return NULL;    } else {	return (TkCursor *) cursorPtr;    }}/* *---------------------------------------------------------------------- * * TkCreateCursorFromData -- * *	Creates a cursor from the source and mask bits. * * Results: *	Returns a new cursor, or NULL on errors. * * Side effects: *	Allocates a new cursor. * *---------------------------------------------------------------------- */TkCursor *TkCreateCursorFromData(tkwin, source, mask, width, height, xHot, yHot,	fgColor, bgColor)    Tk_Window tkwin;		/* Window in which cursor will be used. */    char *source;		/* Bitmap data for cursor shape. */    char *mask;			/* Bitmap data for cursor mask. */    int width, height;		/* Dimensions of cursor. */    int xHot, yHot;		/* Location of hot-spot in cursor. */    XColor fgColor;		/* Foreground color for cursor. */    XColor bgColor;		/* Background color for cursor. */{    return NULL;}/* *---------------------------------------------------------------------- * * TkFreeCursor -- * *	This procedure is called to release a cursor allocated by *	TkGetCursorByName. * * Results: *	None. * * Side effects: *	The cursor data structure is deallocated. * *---------------------------------------------------------------------- */voidTkFreeCursor(cursorPtr)    TkCursor *cursorPtr;{    TkWinCursor *winCursorPtr = (TkWinCursor *) cursorPtr;    ckfree((char *) winCursorPtr);}/* *---------------------------------------------------------------------- * * TkpSetCursor -- * *	Set the global cursor.  If the cursor is None, then use the *	default Tk cursor. * * Results: *	None. * * Side effects: *	Changes the mouse cursor. * *---------------------------------------------------------------------- */voidTkpSetCursor(cursor)    TkpCursor cursor;{    HCURSOR hcursor;    TkWinCursor *winCursor = (TkWinCursor *) cursor;    if (winCursor == NULL || winCursor->winCursor == NULL) {	hcursor = LoadCursor(NULL, TK_DEFAULT_CURSOR);    } else {	hcursor = winCursor->winCursor;    }    if (hcursor != NULL) {	SetCursor(hcursor);    }}

⌨️ 快捷键说明

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