diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:13:18 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-12-21 22:13:18 (GMT) |
commit | 07e464099b99459d0a37757771791598ef3395d9 (patch) | |
tree | 4ba7d8aad13735e52f59bdce7ca5ba3151ebd7e3 /tk8.6/unix/tkUnix.c | |
parent | deb3650e37f26f651f280e480c4df3d7dde87bae (diff) | |
download | blt-07e464099b99459d0a37757771791598ef3395d9.zip blt-07e464099b99459d0a37757771791598ef3395d9.tar.gz blt-07e464099b99459d0a37757771791598ef3395d9.tar.bz2 |
new subtree for tcl/tk
Diffstat (limited to 'tk8.6/unix/tkUnix.c')
-rw-r--r-- | tk8.6/unix/tkUnix.c | 265 |
1 files changed, 0 insertions, 265 deletions
diff --git a/tk8.6/unix/tkUnix.c b/tk8.6/unix/tkUnix.c deleted file mode 100644 index c6fff82..0000000 --- a/tk8.6/unix/tkUnix.c +++ /dev/null @@ -1,265 +0,0 @@ -/* - * tkUnix.c -- - * - * This file contains procedures that are UNIX/X-specific, and will - * probably have to be written differently for Windows or Macintosh - * platforms. - * - * 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. - */ - -#include "tkInt.h" -#ifdef HAVE_XSS -# include <X11/extensions/scrnsaver.h> -# ifdef __APPLE__ -/* Support for weak-linked libXss. */ -# define HaveXSSLibrary() (XScreenSaverQueryInfo != NULL) -# else -/* Other platforms always link libXss. */ -# define HaveXSSLibrary() (1) -# endif -#endif - -/* - *---------------------------------------------------------------------- - * - * TkGetServerInfo -- - * - * Given a window, this procedure returns information about the window - * server for that window. This procedure provides the guts of the "winfo - * server" command. - * - * Results: - * Sets the interpreter result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkGetServerInfo( - Tcl_Interp *interp, /* The server information is returned in this - * interpreter's result. */ - Tk_Window tkwin) /* Token for window; this selects a particular - * display and server. */ -{ - Tcl_SetObjResult(interp, Tcl_ObjPrintf("X%dR%d %s %d", - ProtocolVersion(Tk_Display(tkwin)), - ProtocolRevision(Tk_Display(tkwin)), - ServerVendor(Tk_Display(tkwin)), - VendorRelease(Tk_Display(tkwin)))); -} - -/* - *---------------------------------------------------------------------- - * - * TkGetDefaultScreenName -- - * - * Returns the name of the screen that Tk should use during - * initialization. - * - * Results: - * Returns the argument or a string that should not be freed by the - * caller. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -const char * -TkGetDefaultScreenName( - Tcl_Interp *interp, /* Interp used to find environment - * variables. */ - const char *screenName) /* Screen name from command line, or NULL. */ -{ - if ((screenName == NULL) || (screenName[0] == '\0')) { - screenName = Tcl_GetVar2(interp, "env", "DISPLAY", TCL_GLOBAL_ONLY); - } - return screenName; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_UpdatePointer -- - * - * Unused function in UNIX - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -Tk_UpdatePointer( - Tk_Window tkwin, /* Window to which pointer event is reported. - * May be NULL. */ - int x, int y, /* Pointer location in root coords. */ - int state) /* Modifier state mask. */ -{ - /* - * This function intentionally left blank - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpBuildRegionFromAlphaData -- - * - * Set up a rectangle of the given region based on the supplied alpha - * data. - * - * Results: - * None - * - * Side effects: - * The region is updated, with extra pixels added to it. - * - *---------------------------------------------------------------------- - */ - -void -TkpBuildRegionFromAlphaData( - TkRegion region, /* Region to be updated. */ - unsigned x, unsigned y, /* Where in region to update. */ - unsigned width, unsigned height, - /* Size of rectangle to update. */ - unsigned char *dataPtr, /* Data to read from. */ - unsigned pixelStride, /* Num bytes from one piece of alpha data to - * the next in the line. */ - unsigned lineStride) /* Num bytes from one line of alpha data to - * the next line. */ -{ - unsigned char *lineDataPtr; - unsigned int x1, y1, end; - XRectangle rect; - - for (y1 = 0; y1 < height; y1++) { - lineDataPtr = dataPtr; - for (x1 = 0; x1 < width; x1 = end) { - /* - * Search for first non-transparent pixel. - */ - - while ((x1 < width) && !*lineDataPtr) { - x1++; - lineDataPtr += pixelStride; - } - end = x1; - - /* - * Search for first transparent pixel. - */ - - while ((end < width) && *lineDataPtr) { - end++; - lineDataPtr += pixelStride; - } - if (end > x1) { - rect.x = x + x1; - rect.y = y + y1; - rect.width = end - x1; - rect.height = 1; - TkUnionRectWithRegion(&rect, region, region); - } - } - dataPtr += lineStride; - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetUserInactiveTime -- - * - * Return the number of milliseconds the user was inactive. - * - * Results: - * The number of milliseconds since the user's latest interaction with - * the system on the given display, or -1 if the XScreenSaver extension - * is not supported by the client libraries or the X server - * implementation. - * - * Side effects: - * None. - *---------------------------------------------------------------------- - */ - -long -Tk_GetUserInactiveTime( - Display *dpy) /* The display for which to query the inactive - * time. */ -{ - long inactiveTime = -1; -#ifdef HAVE_XSS - int eventBase, errorBase, major, minor; - - /* - * Calling XScreenSaverQueryVersion seems to be needed to prevent a crash - * on some buggy versions of XFree86. - */ - - if (HaveXSSLibrary() - && XScreenSaverQueryExtension(dpy, &eventBase, &errorBase) - && XScreenSaverQueryVersion(dpy, &major, &minor)) { - XScreenSaverInfo *info = XScreenSaverAllocInfo(); - - if (info == NULL) { - /* - * We are out of memory. - */ - - Tcl_Panic("Out of memory: XScreenSaverAllocInfo failed in Tk_GetUserInactiveTime"); - } - if (XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), info)) { - inactiveTime = info->idle; - } - XFree(info); - } -#endif /* HAVE_XSS */ - return inactiveTime; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_ResetUserInactiveTime -- - * - * Reset the user inactivity timer - * - * Results: - * none - * - * Side effects: - * The user inactivity timer of the underlaying windowing system is reset - * to zero. - * - *---------------------------------------------------------------------- - */ - -void -Tk_ResetUserInactiveTime( - Display *dpy) -{ - XResetScreenSaver(dpy); -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ |