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

📄 tkselect.h

📁 linux系统下的音频通信
💻 H
字号:
/* * tkSelect.h -- * *	Declarations of types shared among the files that implement *	selection support. * * 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: @(#) tkSelect.h 1.4 95/11/03 13:22:41 */#ifndef _TKSELECT#define _TKSELECT/* * When a selection is owned by a window on a given display, one of the * following structures is present on a list of current selections in the * display structure.  The structure is used to record the current owner of * a selection for use in later retrieval requests.  There is a list of * such structures because a display can have multiple different selections * active at the same time. */typedef struct TkSelectionInfo {    Atom selection;		/* Selection name, e.g. XA_PRIMARY. */    Tk_Window owner;		/* Current owner of this selection. */    int serial;			/* Serial number of last XSelectionSetOwner				 * request made to server for this				 * selection (used to filter out redundant				 * SelectionClear events). */    Time time;			/* Timestamp used to acquire selection. */    Tk_LostSelProc *clearProc;	/* Procedure to call when owner loses				 * selection. */    ClientData clearData;	/* Info to pass to clearProc. */    struct TkSelectionInfo *nextPtr;				/* Next in list of current selections on                                 * this display.  NULL means end of list */} TkSelectionInfo;/* * One of the following structures exists for each selection handler * created for a window by calling Tk_CreateSelHandler.  The handlers * are linked in a list rooted in the TkWindow structure. */typedef struct TkSelHandler {    Atom selection;		/* Selection name, e.g. XA_PRIMARY */    Atom target;		/* Target type for selection				 * conversion, such as TARGETS or				 * STRING. */    Atom format;		/* Format in which selection				 * info will be returned, such				 * as STRING or ATOM. */    Tk_SelectionProc *proc;	/* Procedure to generate selection				 * in this format. */    ClientData clientData;	/* Argument to pass to proc. */    int size;			/* Size of units returned by proc				 * (8 for STRING, 32 for almost				 * anything else). */    struct TkSelHandler *nextPtr;				/* Next selection handler associated				 * with same window (NULL for end of				 * list). */} TkSelHandler;/* * When the selection is being retrieved, one of the following * structures is present on a list of pending selection retrievals. * The structure is used to communicate between the background * procedure that requests the selection and the foreground * event handler that processes the events in which the selection * is returned.  There is a list of such structures so that there * can be multiple simultaneous selection retrievals (e.g. on * different displays). */typedef struct TkSelRetrievalInfo {    Tcl_Interp *interp;		/* Interpreter for error reporting. */    TkWindow *winPtr;		/* Window used as requestor for				 * selection. */    Atom selection;		/* Selection being requested. */    Atom property;		/* Property where selection will appear. */    Atom target;		/* Desired form for selection. */    int (*proc) _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp,	char *portion));	/* Procedure to call to handle pieces				 * of selection. */    ClientData clientData;	/* Argument for proc. */    int result;			/* Initially -1.  Set to a Tcl				 * return value once the selection				 * has been retrieved. */    Tcl_TimerToken timeout;	/* Token for current timeout procedure. */    int idleTime;		/* Number of seconds that have gone by				 * without hearing anything from the				 * selection owner. */    struct TkSelRetrievalInfo *nextPtr;				/* Next in list of all pending				 * selection retrievals.  NULL means				 * end of list. */} TkSelRetrievalInfo;/* * The clipboard contains a list of buffers of various types and formats. * All of the buffers of a given type will be returned in sequence when the * CLIPBOARD selection is retrieved.  All buffers of a given type on the * same clipboard must have the same format.  The TkClipboardTarget structure * is used to record the information about a chain of buffers of the same * type. */typedef struct TkClipboardBuffer {    char *buffer;			/* Null terminated data buffer. */    long length;			/* Length of string in buffer. */    struct TkClipboardBuffer *nextPtr;	/* Next in list of buffers.  NULL					 * means end of list . */} TkClipboardBuffer;typedef struct TkClipboardTarget {    Atom type;				/* Type conversion supported. */    Atom format;			/* Representation used for data. */    TkClipboardBuffer *firstBufferPtr;	/* First in list of data buffers. */    TkClipboardBuffer *lastBufferPtr;	/* Last in list of clipboard buffers.					 * Used to speed up appends. */    struct TkClipboardTarget *nextPtr;	/* Next in list of targets on					 * clipboard.  NULL means end of					 * list. */} TkClipboardTarget;/* * It is possible for a Tk_SelectionProc to delete the handler that it * represents.  If this happens, the code that is retrieving the selection * needs to know about it so it doesn't use the now-defunct handler * structure.  One structure of the following form is created for each * retrieval in progress, so that the retriever can find out if its * handler is deleted.  All of the pending retrievals (if there are more * than one) are linked into a list. */typedef struct TkSelInProgress {    TkSelHandler *selPtr;	/* Handler being executed.  If this handler				 * is deleted, the field is set to NULL. */    struct TkSelInProgress *nextPtr;				/* Next higher nested search. */} TkSelInProgress;/* * Declarations for variables shared among the selection-related files: */extern TkSelInProgress *pendingPtr;				/* Topmost search in progress, or				 * NULL if none. *//* * Chunk size for retrieving selection.  It's defined both in * words and in bytes;  the word size is used to allocate * buffer space that's guaranteed to be word-aligned and that * has an extra character for the terminating NULL. */#define TK_SEL_BYTES_AT_ONCE 4000#define TK_SEL_WORDS_AT_ONCE 1001/* * Declarations for procedures that are used by the selection-related files * but shouldn't be used anywhere else in Tk (or by Tk clients): */extern void		TkSelClearSelection _ANSI_ARGS_((Tk_Window tkwin,			    XEvent *eventPtr));extern int		TkSelDefaultSelection _ANSI_ARGS_((			    TkSelectionInfo *infoPtr, Atom target,			    char *buffer, int maxBytes, Atom *typePtr));extern int		TkSelGetSelection _ANSI_ARGS_((Tcl_Interp *interp,			    Tk_Window tkwin, Atom selection, Atom target,			    Tk_GetSelProc *proc, ClientData clientData));#ifndef TkSelUpdateClipboardextern void		TkSelUpdateClipboard _ANSI_ARGS_((TkWindow *winPtr,			    TkClipboardTarget *targetPtr));#endif#endif /* _TKSELECT */

⌨️ 快捷键说明

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