亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tkclipboard.c

?? linux系統下的音頻通信
?? C
?? 第 1 頁 / 共 2 頁
字號:
 *	a given type determines the format for that type.  Any successive *	appends to that type must have the same format or an error will *	be returned.  Tk_ClipboardClear must be called before a sequence *	of Tk_ClipboardAppend calls can be issued.  In order to guarantee *	atomicity, no event handling should occur between Tk_ClipboardClear *	and the following Tk_AppendToClipboard calls. * * Results: *	A standard Tcl result.  If an error is returned, an error message *	is left in interp->result. * * Side effects: * 	The specified buffer will be copied onto the end of the clipboard. *	The clipboard maintains a list of buffers which will be used to *	supply the data for a selection get request.  The first time a given *	type is appended, Tk_ClipboardAppend will register a selection * 	handler of the appropriate type. * *---------------------------------------------------------------------- */intTk_ClipboardAppend(interp, tkwin, type, format, buffer)    Tcl_Interp *interp;		/* Used for error reporting. */    Tk_Window tkwin;		/* Window that selects a display. */    Atom type;			/* The desired conversion type for this				 * clipboard item, e.g. STRING or LENGTH. */    Atom format;		/* Format in which the selection				 * information should be returned to				 * the requestor. */    char* buffer;		/* NULL terminated string containing the data				 * to be added to the clipboard. */{    TkWindow *winPtr = (TkWindow *) tkwin;    TkDisplay *dispPtr = winPtr->dispPtr;    TkClipboardTarget *targetPtr;    TkClipboardBuffer *cbPtr;    /*     * If this application doesn't already own the clipboard, clear     * the clipboard.  If we don't own the clipboard selection, claim it.     */    if (dispPtr->clipboardAppPtr != winPtr->mainPtr) {	Tk_ClipboardClear(interp, tkwin);    } else if (!dispPtr->clipboardActive) {	Tk_OwnSelection(dispPtr->clipWindow, dispPtr->clipboardAtom,		ClipboardLostSel, (ClientData) dispPtr);	dispPtr->clipboardActive = 1;    }    /*     * Check to see if the specified target is already present on the     * clipboard.  If it isn't, we need to create a new target; otherwise,     * we just append the new buffer to the clipboard list.     */    for (targetPtr = dispPtr->clipTargetPtr; targetPtr != NULL;	    targetPtr = targetPtr->nextPtr) {	if (targetPtr->type == type)	    break;    }    if (targetPtr == NULL) {	targetPtr = (TkClipboardTarget*) ckalloc(sizeof(TkClipboardTarget));	targetPtr->type = type;	targetPtr->format = format;	targetPtr->firstBufferPtr = targetPtr->lastBufferPtr = NULL;	targetPtr->nextPtr = dispPtr->clipTargetPtr;	dispPtr->clipTargetPtr = targetPtr;	Tk_CreateSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom,		type, ClipboardHandler, (ClientData) targetPtr, format);    } else if (targetPtr->format != format) {	Tcl_AppendResult(interp, "format \"", Tk_GetAtomName(tkwin, format),		"\" does not match current format \"",		Tk_GetAtomName(tkwin, targetPtr->format),"\" for ",		Tk_GetAtomName(tkwin, type), (char *) NULL);	return TCL_ERROR;    }    /*     * Append a new buffer to the buffer chain.     */    cbPtr = (TkClipboardBuffer*) ckalloc(sizeof(TkClipboardBuffer));    cbPtr->nextPtr = NULL;    if (targetPtr->lastBufferPtr != NULL) {	targetPtr->lastBufferPtr->nextPtr = cbPtr;    } else {	targetPtr->firstBufferPtr = cbPtr;    }    targetPtr->lastBufferPtr = cbPtr;    cbPtr->length = strlen(buffer);    cbPtr->buffer = (char *) ckalloc((unsigned) (cbPtr->length + 1));    strcpy(cbPtr->buffer, buffer);    TkSelUpdateClipboard((TkWindow*)(dispPtr->clipWindow), targetPtr);    return TCL_OK;}/* *---------------------------------------------------------------------- * * Tk_ClipboardCmd -- * *	This procedure is invoked to process the "clipboard" Tcl *	command.  See the user documentation for details on what *	it does. * * Results: *	A standard Tcl result. * * Side effects: *	See the user documentation. * *---------------------------------------------------------------------- */intTk_ClipboardCmd(clientData, interp, argc, argv)    ClientData clientData;	/* Main window associated with				 * interpreter. */    Tcl_Interp *interp;		/* Current interpreter. */    int argc;			/* Number of arguments. */    char **argv;		/* Argument strings. */{    Tk_Window tkwin = (Tk_Window) clientData;    char *path = NULL;    size_t length;    int count;    char c;    char **args;    if (argc < 2) {	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" option ?arg arg ...?\"", (char *) NULL);	return TCL_ERROR;    }    c = argv[1][0];    length = strlen(argv[1]);    if ((c == 'a') && (strncmp(argv[1], "append", length) == 0)) {	Atom target, format;	char *targetName = NULL;	char *formatName = NULL;	for (count = argc-2, args = argv+2; count > 1; count -= 2, args += 2) {	    if (args[0][0] != '-') {		break;	    }	    c = args[0][1];	    length = strlen(args[0]);	    if ((c == '-') && (length == 2)) {		args++;		count--;		break;	    }	    if ((c == 'd') && (strncmp(args[0], "-displayof", length) == 0)) {		path = args[1];	    } else if ((c == 'f')		    && (strncmp(args[0], "-format", length) == 0)) {		formatName = args[1];	    } else if ((c == 't')		    && (strncmp(args[0], "-type", length) == 0)) {		targetName = args[1];	    } else {		Tcl_AppendResult(interp, "unknown option \"", args[0],			"\"", (char *) NULL);		return TCL_ERROR;	    }	}	if (count != 1) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " append ?options? data\"", (char *) NULL);	    return TCL_ERROR;	}	if (path != NULL) {	    tkwin = Tk_NameToWindow(interp, path, tkwin);	}	if (tkwin == NULL) {	    return TCL_ERROR;	}	if (targetName != NULL) {	    target = Tk_InternAtom(tkwin, targetName);	} else {	    target = XA_STRING;	}	if (formatName != NULL) {	    format = Tk_InternAtom(tkwin, formatName);	} else {	    format = XA_STRING;	}	return Tk_ClipboardAppend(interp, tkwin, target, format, args[0]);    } else if ((c == 'c') && (strncmp(argv[1], "clear", length) == 0)) {	for (count = argc-2, args = argv+2; count > 0; count -= 2, args += 2) {	    if (args[0][0] != '-') {		break;	    }	    if (count < 2) {		Tcl_AppendResult(interp, "value for \"", *args,			"\" missing", (char *) NULL);		return TCL_ERROR;	    }	    c = args[0][1];	    length = strlen(args[0]);	    if ((c == 'd') && (strncmp(args[0], "-displayof", length) == 0)) {		path = args[1];	    } else {		Tcl_AppendResult(interp, "unknown option \"", args[0],			"\"", (char *) NULL);		return TCL_ERROR;	    }	}	if (count > 0) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " clear ?options?\"", (char *) NULL);	    return TCL_ERROR;	}	if (path != NULL) {	    tkwin = Tk_NameToWindow(interp, path, tkwin);	}	if (tkwin == NULL) {	    return TCL_ERROR;	}	return Tk_ClipboardClear(interp, tkwin);    } else {	sprintf(interp->result,		"bad option \"%.50s\": must be clear or append",		argv[1]);	return TCL_ERROR;    }}/* *---------------------------------------------------------------------- * * TkClipInit -- * *	This procedure is called to initialize the window for claiming *	clipboard ownership and for receiving selection get results.  This *	function is called from tkSelect.c as well as tkClipboard.c. * * Results: *	The result is a standard Tcl return value, which is normally TCL_OK. *	If an error occurs then an error message is left in interp->result *	and TCL_ERROR is returned. * * Side effects: *	Sets up the clipWindow and related data structures. * *---------------------------------------------------------------------- */intTkClipInit(interp, dispPtr)    Tcl_Interp *interp;		/* Interpreter to use for error				 * reporting. */    register TkDisplay *dispPtr;/* Display to initialize. */{    XSetWindowAttributes atts;    dispPtr->clipTargetPtr = NULL;    dispPtr->clipboardActive = 0;    dispPtr->clipboardAppPtr = NULL;        /*     * Create the window used for clipboard ownership and selection retrieval,     * and set up an event handler for it.     */    dispPtr->clipWindow = Tk_CreateWindow(interp, (Tk_Window) NULL,	    "_clip", DisplayString(dispPtr->display));    if (dispPtr->clipWindow == NULL) {	return TCL_ERROR;    }    atts.override_redirect = True;    Tk_ChangeWindowAttributes(dispPtr->clipWindow, CWOverrideRedirect, &atts);    Tk_MakeWindowExist(dispPtr->clipWindow);    if (dispPtr->multipleAtom == None) {	/*	 * Need to invoke selection initialization to make sure that	 * atoms we depend on below are defined.	 */	TkSelInit(dispPtr->clipWindow);    }    /*     * Create selection handlers for types TK_APPLICATION and TK_WINDOW     * on this window.  Can't use the default handlers for these types     * because this isn't a full-fledged window.     */    Tk_CreateSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom,	    dispPtr->applicationAtom, ClipboardAppHandler,	    (ClientData) dispPtr, XA_STRING);    Tk_CreateSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom,	    dispPtr->windowAtom, ClipboardWindowHandler,	    (ClientData) dispPtr, XA_STRING);    return TCL_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类专区欧美蜜桃臀第一页| 亚洲黄色av一区| 欧美日韩在线综合| 99re成人在线| 91在线无精精品入口| 国产精品中文字幕欧美| 久久不见久久见免费视频1| 亚洲自拍与偷拍| 亚洲国产成人av好男人在线观看| 中文字幕在线不卡一区 | 亚洲va中文字幕| 亚洲综合精品久久| 首页国产丝袜综合| 青青青爽久久午夜综合久久午夜| 性久久久久久久久久久久| 亚洲sss视频在线视频| 午夜影视日本亚洲欧洲精品| 亚洲国产毛片aaaaa无费看| 亚洲成人精品影院| 奇米影视一区二区三区| 欧美aaaaa成人免费观看视频| 久久99精品国产| 成人h动漫精品| 欧美少妇一区二区| 精品久久99ma| 亚洲欧洲性图库| 亚洲一区二区av电影| 日韩福利电影在线观看| 国产美女视频91| 99久久精品国产一区| 欧美日韩国产首页| 久久九九久久九九| 亚洲精品日韩专区silk| 免费观看久久久4p| 成人午夜在线视频| 欧美老人xxxx18| 亚洲国产精品成人综合色在线婷婷 | 亚洲精品第一国产综合野| 亚洲国产一区二区在线播放| 蜜臀久久久久久久| 成人成人成人在线视频| 91精品国产品国语在线不卡| 欧美国产日韩在线观看| 婷婷成人激情在线网| 国产精品538一区二区在线| 色88888久久久久久影院野外| 欧美一区二区三区在线观看 | 午夜欧美一区二区三区在线播放| 韩国一区二区视频| 在线一区二区三区做爰视频网站| 日韩视频永久免费| 一区二区三区四区乱视频| 国产一区二区在线看| 欧美精品丝袜中出| 综合欧美亚洲日本| 国产成人综合视频| 欧美一区二区三区影视| 亚洲宅男天堂在线观看无病毒| 国产一区二区在线视频| 日韩一级成人av| 亚洲电影中文字幕在线观看| 成人avav影音| 国产亚洲欧洲997久久综合| 男女男精品视频网| 91麻豆精品国产91久久久更新时间| 中文字幕一区二区三区精华液| 久久99精品网久久| 欧美zozo另类异族| 蜜臀国产一区二区三区在线播放| 欧美唯美清纯偷拍| 亚洲专区一二三| 欧美网站一区二区| 亚洲线精品一区二区三区| 色综合天天做天天爱| 亚洲伦理在线精品| av午夜精品一区二区三区| 中文字幕中文字幕一区| 不卡一区中文字幕| 中文字幕日本乱码精品影院| 97se亚洲国产综合自在线不卡| 国产午夜精品理论片a级大结局| 国产原创一区二区三区| wwwwxxxxx欧美| 韩日欧美一区二区三区| 国产欧美一区二区精品性色超碰| 国产精一品亚洲二区在线视频| 久久久久久久久蜜桃| 国产精品一区一区| 日本一区二区视频在线| 99视频一区二区| 亚洲激情五月婷婷| 欧美一区二区视频在线观看| 日本sm残虐另类| 久久综合久久综合九色| 成人午夜精品一区二区三区| ...xxx性欧美| 欧美人动与zoxxxx乱| 秋霞国产午夜精品免费视频| 亚洲精品一区二区三区四区高清| 国产99久久精品| 一区二区三国产精华液| 欧美日韩的一区二区| 国内外成人在线| 1024成人网| 欧美一区在线视频| 国产91在线|亚洲| 亚洲精品第一国产综合野| 日韩丝袜情趣美女图片| www.日韩av| 日韩av午夜在线观看| 国产网站一区二区| 欧美在线综合视频| 国产成人午夜高潮毛片| 亚洲成av人片一区二区三区| 国产三级欧美三级日产三级99| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美视频精品在线| 国产精品一二三在| 亚洲制服丝袜av| 国产欧美一区二区三区在线看蜜臀| 在线视频你懂得一区二区三区| 久久精品国产99国产| 国产精品久久777777| 欧美一区二区三区免费大片| 99久久精品国产一区二区三区| 麻豆91精品视频| 亚洲一区二区三区不卡国产欧美| 精品福利一二区| 欧美日韩国产大片| 91亚洲永久精品| 国产一区二区导航在线播放| 亚洲成人在线网站| 亚洲女人****多毛耸耸8| 久久蜜桃av一区二区天堂| 91 com成人网| 在线免费观看日本欧美| 国产91高潮流白浆在线麻豆| 日韩国产在线观看一区| 亚洲精品成人少妇| 国产精品久久久爽爽爽麻豆色哟哟| 欧美一区二区成人6969| 精品视频一区二区三区免费| 一本色道久久综合精品竹菊| 国产成人鲁色资源国产91色综| 看电视剧不卡顿的网站| 午夜欧美在线一二页| 一区二区三区四区中文字幕| 亚洲欧洲韩国日本视频| 国产精品每日更新在线播放网址| 日韩欧美的一区二区| 欧美一区二区三区视频免费| 欧美日韩国产高清一区二区三区| 在线精品视频一区二区三四| 色婷婷久久久亚洲一区二区三区| 成人爽a毛片一区二区免费| 国产精品亚洲人在线观看| 韩国精品久久久| 国产精品一区二区你懂的| 国产91对白在线观看九色| 国产一区在线观看麻豆| 狠狠色丁香婷婷综合| 国模一区二区三区白浆| 国产成人8x视频一区二区| 国内精品国产三级国产a久久| 精品亚洲国内自在自线福利| 激情国产一区二区| 国产激情视频一区二区三区欧美 | 日韩欧美精品在线| 精品国产乱码久久久久久图片| 精品国产一区二区三区av性色 | 粉嫩绯色av一区二区在线观看| 国产黑丝在线一区二区三区| 成人免费不卡视频| 一本大道久久a久久综合婷婷| 91高清视频在线| 日韩一区二区三区在线视频| 精品剧情v国产在线观看在线| 国产亚洲精久久久久久| 综合精品久久久| 日韩二区三区四区| 国产精品一区二区无线| 色婷婷综合久久久中文一区二区| 欧美日韩卡一卡二| 久久久久久久久一| 夜夜嗨av一区二区三区网页| 日本欧美一区二区| 成人99免费视频| 欧美欧美欧美欧美首页| 国产精品无码永久免费888| 一区二区在线观看免费视频播放| 亚洲第一福利一区| 国产精品一品二品| 欧美日韩免费一区二区三区视频| 2020国产精品| 亚洲黄一区二区三区| 狠狠色狠狠色综合日日91app| 91天堂素人约啪| 日韩你懂的电影在线观看| 亚洲天堂精品在线观看| 久久66热偷产精品|