summaryrefslogtreecommitdiffstats
path: root/carbon/tkMacOSXXStubs.c
diff options
context:
space:
mode:
authorKevin Walzer <kw@codebykevin.com>2012-10-09 14:26:36 (GMT)
committerKevin Walzer <kw@codebykevin.com>2012-10-09 14:26:36 (GMT)
commitd7812baa10d6790f5fecf3219af1647ad79fb60a (patch)
tree35b72485231a94363bb56f6b8abe92e33638a8f7 /carbon/tkMacOSXXStubs.c
parent711080e8a1b746797b174282a24044f88fc649c1 (diff)
downloadtk-d7812baa10d6790f5fecf3219af1647ad79fb60a.zip
tk-d7812baa10d6790f5fecf3219af1647ad79fb60a.tar.gz
tk-d7812baa10d6790f5fecf3219af1647ad79fb60a.tar.bz2
Remove Carbon directory from source tree
Diffstat (limited to 'carbon/tkMacOSXXStubs.c')
-rw-r--r--carbon/tkMacOSXXStubs.c1285
1 files changed, 0 insertions, 1285 deletions
diff --git a/carbon/tkMacOSXXStubs.c b/carbon/tkMacOSXXStubs.c
deleted file mode 100644
index d88b419..0000000
--- a/carbon/tkMacOSXXStubs.c
+++ /dev/null
@@ -1,1285 +0,0 @@
-/*
- * tkMacOSXXStubs.c --
- *
- * This file contains most of the X calls called by Tk. Many of these
- * calls are just stubs and either don't make sense on the Macintosh or
- * their implamentation just doesn't do anything. Other calls will
- * eventually be moved into other files.
- *
- * Copyright (c) 1995-1997 Sun Microsystems, Inc.
- * Copyright 2001, Apple Computer, Inc.
- * Copyright (c) 2005-2007 Daniel A. Steffen <das@users.sourceforge.net>
- *
- * See the file "license.terms" for information on usage and redistribution of
- * this file, and for a DISCLAIMER OF ALL WARRANTIES.
- */
-
-#include "tkMacOSXPrivate.h"
-#include "tkMacOSXEvent.h"
-
-#include <IOKit/IOKitLib.h>
-
-/*
- * Because this file is still under major development Debugger statements are
- * used through out this file. The define TCL_DEBUG will decide whether the
- * debugger statements actually call the debugger or not.
- */
-
-#ifndef TCL_DEBUG
-# define Debugger()
-#endif
-
-#define ROOT_ID 10
-
-/*
- * Declarations of static variables used in this file.
- */
-
-static TkDisplay *gMacDisplay = NULL;
- /* Macintosh display. */
-static const char *macScreenName = ":0";
- /* Default name of macintosh display. */
-
-/*
- * Forward declarations of procedures used in this file.
- */
-
-static XID MacXIdAlloc(Display *display);
-static int DefaultErrorHandler(Display *display,
- XErrorEvent *err_evt);
-
-/*
- * Other declarations
- */
-
-static int DestroyImage(XImage *image);
-static unsigned long ImageGetPixel(XImage *image, int x, int y);
-static int PutPixel(XImage *image, int x, int y,
- unsigned long pixel);
-#if 0
-static XImage * SubImage(XImage *image, int x, int y,
- unsigned int width, unsigned int height);
-static int AddPixel(XImage *image, long value);
-#endif
-
-/*
- *----------------------------------------------------------------------
- *
- * TkMacOSXDisplayChanged --
- *
- * Called to set up initial screen info or when an event indicated
- * display (screen) change.
- *
- * Results:
- * None.
- *
- * Side effects:
- * May change info regarding the screen.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TkMacOSXDisplayChanged(
- Display *display)
-{
- GDHandle graphicsDevice;
- Screen *screen;
- Rect bounds = {0, 0, 0, 0}, *maxBounds;
-
- if (display == NULL || display->screens == NULL) {
- return;
- }
- screen = display->screens;
-
- graphicsDevice = GetMainDevice();
- screen->root_depth = (*(*graphicsDevice)->gdPMap)->cmpSize *
- (*(*graphicsDevice)->gdPMap)->cmpCount;
- screen->height = (*graphicsDevice)->gdRect.bottom -
- (*graphicsDevice)->gdRect.top;
- screen->width = (*graphicsDevice)->gdRect.right -
- (*graphicsDevice)->gdRect.left;
-
- screen->mwidth = (screen->width * 254 + 360) / 720;
- screen->mheight = (screen->height * 254 + 360) / 720;
-
- maxBounds = (Rect *) screen->ext_data;
- *maxBounds = bounds;
- graphicsDevice = GetDeviceList();
- while (graphicsDevice) {
- OSStatus err;
-
- err = ChkErr(GetAvailableWindowPositioningBounds, graphicsDevice,
- &bounds);
- if (err == noErr) {
- UnionRect(&bounds, maxBounds, maxBounds);
- }
- graphicsDevice = GetNextDevice(graphicsDevice);
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TkpOpenDisplay --
- *
- * Create the Display structure and fill it with device specific
- * information.
- *
- * Results:
- * Returns a Display structure on success or NULL on failure.
- *
- * Side effects:
- * Allocates a new Display structure.
- *
- *----------------------------------------------------------------------
- */
-
-TkDisplay *
-TkpOpenDisplay(
- const char *display_name)
-{
- Display *display;
- Screen *screen;
- int fd = 0;
- static Rect maxBounds = {0, 0, 0, 0};
-
- if (gMacDisplay != NULL) {
- if (strcmp(gMacDisplay->display->display_name, display_name) == 0) {
- return gMacDisplay;
- } else {
- return NULL;
- }
- }
-
- display = ckalloc(sizeof(Display));
- screen = ckalloc(sizeof(Screen));
- bzero(display, sizeof(Display));
- bzero(screen, sizeof(Screen));
-
- display->resource_alloc = MacXIdAlloc;
- display->request = 0;
- display->qlen = 0;
- display->fd = fd;
- display->screens = screen;
- display->nscreens = 1;
- display->default_screen = 0;
- display->display_name = (char *) macScreenName;
-
- Gestalt(gestaltQuickdrawVersion, (long *) &display->proto_minor_version);
- display->proto_major_version = 10;
- display->proto_minor_version -= gestaltMacOSXQD;
- display->vendor = (char*) "Apple";
- Gestalt(gestaltSystemVersion, (long *) &display->release);
-
- /*
- * These screen bits never change
- */
- screen->root = ROOT_ID;
- screen->display = display;
- screen->black_pixel = 0x00000000 | PIXEL_MAGIC << 24;
- screen->white_pixel = 0x00FFFFFF | PIXEL_MAGIC << 24;
- screen->ext_data = (XExtData *) &maxBounds;
-
- screen->root_visual = ckalloc(sizeof(Visual));
- screen->root_visual->visualid = 0;
- screen->root_visual->class = TrueColor;
- screen->root_visual->red_mask = 0x00FF0000;
- screen->root_visual->green_mask = 0x0000FF00;
- screen->root_visual->blue_mask = 0x000000FF;
- screen->root_visual->bits_per_rgb = 24;
- screen->root_visual->map_entries = 256;
-
- /*
- * Initialize screen bits that may change
- */
-
- TkMacOSXDisplayChanged(display);
-
- gMacDisplay = ckalloc(sizeof(TkDisplay));
-
- /*
- * This is the quickest way to make sure that all the *Init flags get
- * properly initialized
- */
-
- bzero(gMacDisplay, sizeof(TkDisplay));
- gMacDisplay->display = display;
- return gMacDisplay;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TkpCloseDisplay --
- *
- * Deallocates a display structure created by TkpOpenDisplay.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Frees memory.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TkpCloseDisplay(
- TkDisplay *displayPtr)
-{
- Display *display = displayPtr->display;
-
- if (gMacDisplay != displayPtr) {
- Tcl_Panic("TkpCloseDisplay: tried to call TkpCloseDisplay on bad display");
- }
-
- gMacDisplay = NULL;
- if (display->screens != NULL) {
- if (display->screens->root_visual != NULL) {
- ckfree(display->screens->root_visual);
- }
- ckfree(display->screens);
- }
- ckfree(display);
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TkClipCleanup --
- *
- * This procedure is called to cleanup resources associated with claiming
- * clipboard ownership and for receiving selection get results. This
- * function is called in tkWindow.c. This has to be called by the display
- * cleanup function because we still need the access display elements.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Resources are freed - the clipboard may no longer be used.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TkClipCleanup(
- TkDisplay *dispPtr) /* display associated with clipboard */
-{
- /*
- * Make sure that the local scrap is transfered to the global scrap if
- * needed.
- */
-
- TkSuspendClipboard();
-
- if (dispPtr->clipWindow != NULL) {
- Tk_DeleteSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom,
- dispPtr->applicationAtom);
- Tk_DeleteSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom,
- dispPtr->windowAtom);
-
- Tk_DestroyWindow(dispPtr->clipWindow);
- Tcl_Release(dispPtr->clipWindow);
- dispPtr->clipWindow = NULL;
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * MacXIdAlloc --
- *
- * This procedure is invoked by Xlib as the resource allocator for a
- * display.
- *
- * Results:
- * The return value is an X resource identifier that isn't currently in
- * use.
- *
- * Side effects:
- * The identifier is removed from the stack of free identifiers, if it
- * was previously on the stack.
- *
- *----------------------------------------------------------------------
- */
-
-static XID
-MacXIdAlloc(
- Display *display) /* Display for which to allocate. */
-{
- static long int cur_id = 100;
- /*
- * Some special XIds are reserved
- * - this is why we start at 100
- */
-
- return ++cur_id;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * DefaultErrorHandler --
- *
- * This procedure is the default X error handler. Tk uses it's own error
- * handler so this call should never be called.
- *
- * Results:
- * None.
- *
- * Side effects:
- * This function will call panic and exit.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-DefaultErrorHandler(
- Display* display,
- XErrorEvent* err_evt)
-{
- /*
- * This call should never be called. Tk replaces it with its own error
- * handler.
- */
-
- Tcl_Panic("Warning hit bogus error handler!");
- return 0;
-}
-
-char *
-XGetAtomName(
- Display * display,
- Atom atom)
-{
- display->request++;
- return NULL;
-}
-
-int
-_XInitImageFuncPtrs(
- XImage *image)
-{
- return 0;
-}
-
-XErrorHandler
-XSetErrorHandler(
- XErrorHandler handler)
-{
- return DefaultErrorHandler;
-}
-
-Window
-XRootWindow(
- Display *display,
- int screen_number)
-{
- display->request++;
- return ROOT_ID;
-}
-
-int
-XGetGeometry(
- Display *display,
- Drawable d,
- Window *root_return,
- int *x_return,
- int *y_return,
- unsigned int *width_return,
- unsigned int *height_return,
- unsigned int *border_width_return,
- unsigned int *depth_return)
-{
- TkWindow *winPtr = ((MacDrawable *) d)->winPtr;
-
- display->request++;
- *root_return = ROOT_ID;
- if (winPtr) {
- *x_return = Tk_X(winPtr);
- *y_return = Tk_Y(winPtr);
- *width_return = Tk_Width(winPtr);
- *height_return = Tk_Height(winPtr);
- *border_width_return = winPtr->changes.border_width;
- *depth_return = Tk_Depth(winPtr);
- } else {
- Rect boundsRect;
- CGrafPtr destPort = TkMacOSXGetDrawablePort(d);
-
- GetPortBounds(destPort, &boundsRect);
- *x_return = boundsRect.left;
- *y_return = boundsRect.top;
- *width_return = boundsRect.right - boundsRect.left;
- *height_return = boundsRect.bottom - boundsRect.top;
- *border_width_return = 0;
- *depth_return = 32;
- }
- return 1;
-}
-
-void
-XChangeProperty(
- Display* display,
- Window w,
- Atom property,
- Atom type,
- int format,
- int mode,
- _Xconst unsigned char* data,
- int nelements)
-{
- Debugger();
-}
-
-void
-XSelectInput(
- Display* display,
- Window w,
- long event_mask)
-{
- Debugger();
-}
-
-int
-XBell(
- Display* display,
- int percent)
-{
- SysBeep(percent);
- return Success;
-}
-
-#if 0
-void
-XSetWMNormalHints(
- Display* display,
- Window w,
- XSizeHints* hints)
-{
- /*
- * Do nothing. Shouldn't even be called.
- */
-}
-
-XSizeHints *
-XAllocSizeHints(void)
-{
- /*
- * Always return NULL. Tk code checks to see if NULL is returned & does
- * nothing if it is.
- */
-
- return NULL;
-}
-#endif
-
-GContext
-XGContextFromGC(
- GC gc)
-{
- /*
- * TODO: currently a no-op
- */
-
- return 0;
-}
-
-Status
-XSendEvent(
- Display* display,
- Window w,
- Bool propagate,
- long event_mask,
- XEvent* event_send)
-{
- Debugger();
- return 0;
-}
-
-void
-XClearWindow(
- Display* display,
- Window w)
-{
-}
-
-/*
-void
-XDrawPoint(
- Display* display,
- Drawable d,
- GC gc,
- int x,
- int y)
-{
-}
-
-void
-XDrawPoints(
- Display* display,
- Drawable d,
- GC gc,
- XPoint* points,
- int npoints,
- int mode)
-{
-}
-*/
-
-int
-XWarpPointer(
- Display* display,
- Window src_w,
- Window dest_w,
- int src_x,
- int src_y,
- unsigned int src_width,
- unsigned int src_height,
- int dest_x,
- int dest_y)
-{
- return Success;
-}
-
-void
-XQueryColor(
- Display* display,
- Colormap colormap,
- XColor* def_in_out)
-{
- unsigned long p;
- unsigned char r, g, b;
- XColor *d = def_in_out;
-
- p = d->pixel;
- r = (p & 0x00FF0000) >> 16;
- g = (p & 0x0000FF00) >> 8;
- b = (p & 0x000000FF);
- d->red = (r << 8) | r;
- d->green = (g << 8) | g;
- d->blue = (b << 8) | b;
- d->flags = DoRed|DoGreen|DoBlue;
- d->pad = 0;
-}
-
-void
-XQueryColors(
- Display* display,
- Colormap colormap,
- XColor* defs_in_out,
- int ncolors)
-{
- int i;
- unsigned long p;
- unsigned char r, g, b;
- XColor *d = defs_in_out;
-
- for (i = 0; i < ncolors; i++, d++) {
- p = d->pixel;
- r = (p & 0x00FF0000) >> 16;
- g = (p & 0x0000FF00) >> 8;
- b = (p & 0x000000FF);
- d->red = (r << 8) | r;
- d->green = (g << 8) | g;
- d->blue = (b << 8) | b;
- d->flags = DoRed|DoGreen|DoBlue;
- d->pad = 0;
- }
-}
-
-int
-XQueryTree(display, w, root_return, parent_return, children_return,
- nchildren_return)
- Display* display;
- Window w;
- Window* root_return;
- Window* parent_return;
- Window** children_return;
- unsigned int* nchildren_return;
-{
- return 0;
-}
-
-
-int
-XGetWindowProperty(
- Display *display,
- Window w,
- Atom property,
- long long_offset,
- long long_length,
- Bool delete,
- Atom req_type,
- Atom *actual_type_return,
- int *actual_format_return,
- unsigned long *nitems_return,
- unsigned long *bytes_after_return,
- unsigned char ** prop_return)
-{
- display->request++;
- *actual_type_return = None;
- *actual_format_return = *bytes_after_return = 0;
- *nitems_return = 0;
- return 0;
-}
-
-void
-XRefreshKeyboardMapping(
- XMappingEvent *x)
-{
- /* used by tkXEvent.c */
- Debugger();
-}
-
-void
-XSetIconName(
- Display* display,
- Window w,
- const char *icon_name)
-{
- /*
- * This is a no-op, no icon name for Macs.
- */
- display->request++;
-}
-
-void
-XForceScreenSaver(
- Display* display,
- int mode)
-{
- /*
- * This function is just a no-op. It is defined to reset the screen saver.
- * However, there is no real way to do this on a Mac. Let me know if there
- * is!
- */
-
- display->request++;
-}
-
-void
-Tk_FreeXId(
- Display *display,
- XID xid)
-{
- /* no-op function needed for stubs implementation. */
-}
-
-int
-XSync(
- Display *display,
- Bool flag)
-{
- TkMacOSXFlushWindows();
- display->request++;
- return 0;
-}
-
-#if 0
-int
-XSetClipRectangles(
- Display *d,
- GC gc,
- int clip_x_origin,
- int clip_y_origin,
- XRectangle* rectangles,
- int n,
- int ordering)
-{
- TkRegion clipRgn = TkCreateRegion();
-
- while (n--) {
- XRectangle rect = *rectangles;
-
- rect.x += clip_x_origin;
- rect.y += clip_y_origin;
- TkUnionRectWithRegion(&rect, clipRgn, clipRgn);
- rectangles++;
- }
- TkSetRegion(d, gc, clipRgn);
- TkDestroyRegion(clipRgn);
- return 1;
-}
-#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:
- * None.
- *
- * 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. */
-{
- char buffer[8 + TCL_INTEGER_SPACE * 2];
- char buffer2[TCL_INTEGER_SPACE];
-
- sprintf(buffer, "QD%dR%x ", ProtocolVersion(Tk_Display(tkwin)),
- ProtocolRevision(Tk_Display(tkwin)));
- sprintf(buffer2, " %x", VendorRelease(Tk_Display(tkwin)));
- Tcl_AppendResult(interp, buffer, ServerVendor(Tk_Display(tkwin)),
- buffer2, NULL);
-}
-
-#pragma mark XImage handling
-/*
- *----------------------------------------------------------------------
- *
- * XCreateImage --
- *
- * Allocates storage for a new XImage.
- *
- * Results:
- * Returns a newly allocated XImage.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-XImage *
-XCreateImage(
- Display* display,
- Visual* visual,
- unsigned int depth,
- int format,
- int offset,
- char* data,
- unsigned int width,
- unsigned int height,
- int bitmap_pad,
- int bytes_per_line)
-{
- XImage *ximage;
-
- display->request++;
- ximage = ckalloc(sizeof(XImage));
-
- ximage->height = height;
- ximage->width = width;
- ximage->depth = depth;
- ximage->xoffset = offset;
- ximage->format = format;
- ximage->data = data;
-
- if (format == ZPixmap) {
- ximage->bits_per_pixel = 32;
- ximage->bitmap_unit = 32;
- } else {
- ximage->bits_per_pixel = 1;
- ximage->bitmap_unit = 8;
- }
- if (bitmap_pad) {
- ximage->bitmap_pad = bitmap_pad;
- } else {
- /* Use 16 byte alignment for best Quartz perfomance */
- ximage->bitmap_pad = 128;
- }
- if (bytes_per_line) {
- ximage->bytes_per_line = bytes_per_line;
- } else {
- ximage->bytes_per_line = ((width * ximage->bits_per_pixel +
- (ximage->bitmap_pad - 1)) >> 3) &
- ~((ximage->bitmap_pad >> 3) - 1);
- }
-#ifdef WORDS_BIGENDIAN
- ximage->byte_order = MSBFirst;
- ximage->bitmap_bit_order = MSBFirst;
-#else
- ximage->byte_order = LSBFirst;
- ximage->bitmap_bit_order = LSBFirst;
-#endif
- ximage->red_mask = 0x00FF0000;
- ximage->green_mask = 0x0000FF00;
- ximage->blue_mask = 0x000000FF;
- ximage->obdata = NULL;
- ximage->f.create_image = NULL;
- ximage->f.destroy_image = DestroyImage;
- ximage->f.get_pixel = ImageGetPixel;
- ximage->f.put_pixel = PutPixel;
- ximage->f.sub_image = NULL;
- ximage->f.add_pixel = NULL;
-
- return ximage;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * XGetImage --
- *
- * This function copies data from a pixmap or window into an XImage.
- *
- * Results:
- * Returns a newly allocated image containing the data from the given
- * rectangle of the given drawable.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-XImage *
-XGetImage(
- Display *display,
- Drawable d,
- int x,
- int y,
- unsigned int width,
- unsigned int height,
- unsigned long plane_mask,
- int format)
-{
- XImage * imagePtr = NULL;
- Pixmap pixmap = (Pixmap) NULL;
- Tk_Window win = (Tk_Window) ((MacDrawable *) d)->winPtr;
- GC gc;
- int depth = 32;
- int offset = 0;
- int bitmap_pad = 32;
- int bytes_per_line = 0;
-
- if (TkMacOSXGetDrawablePort(d)) {
- if (format == ZPixmap) {
- if (width > 0 && height > 0) {
- /*
- * Tk_GetPixmap fails for zero width or height.
- */
-
- pixmap = Tk_GetPixmap(display, d, width, height, depth);
- }
- if (win) {
- XGCValues values;
-
- gc = Tk_GetGC(win, 0, &values);
- } else {
- gc = XCreateGC(display, pixmap, 0, NULL);
- }
- if (pixmap) {
- XCopyArea(display, d, pixmap, gc, x, y, width, height, 0, 0);
- }
- imagePtr = XCreateImage(display, NULL, depth, format, offset,
- (char *) TkMacOSXGetDrawablePort(pixmap),
- width, height, bitmap_pad, bytes_per_line);
-
- /*
- * Track Pixmap underlying the XImage in the unused obdata field
- * so that we can treat XImages coming from XGetImage specially.
- */
-
- imagePtr->obdata = (XPointer) pixmap;
- if (!win) {
- XFreeGC(display, gc);
- }
- } else {
- TkpDisplayWarning(
- "XGetImage: only ZPixmap types are implemented",
- "XGetImage Failure");
- }
- }
- return imagePtr;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * DestroyImage --
- *
- * Destroys storage associated with an image.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Deallocates the image.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-DestroyImage(
- XImage *image)
-{
- if (image) {
- if (image->obdata) {
- Tk_FreePixmap((Display*) gMacDisplay, (Pixmap) image->obdata);
- } else if (image->data) {
- ckfree(image->data);
- }
- ckfree(image);
- }
- return 0;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * ImageGetPixel --
- *
- * Get a single pixel from an image.
- *
- * Results:
- * Returns the 32 bit pixel value.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-static unsigned long
-ImageGetPixel(
- XImage *image,
- int x,
- int y)
-{
- CGrafPtr destPort, savePort;
- Boolean portChanged;
- RGBColor cPix;
- unsigned long r, g, b, c;
-
- destPort = (CGrafPtr) image->data;
- portChanged = QDSwapPort(destPort, &savePort);
- GetCPixel(x, y, &cPix);
- if (image->obdata) {
- /*
- * Image from XGetImage, 16 bit color values.
- */
-
- r = (cPix . red) >> 8;
- g = (cPix . green) >> 8;
- b = (cPix . blue) >> 8;
- } else {
- r = cPix . red;
- g = cPix . green;
- b = cPix . blue;
- }
- c = (r<<16)|(g<<8)|(b);
- if (portChanged) {
- QDSwapPort(savePort, NULL);
- }
- return c;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * PutPixel --
- *
- * Set a single pixel in an image.
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-static int
-PutPixel(
- XImage *image,
- int x,
- int y,
- unsigned long pixel)
-{
- CGrafPtr destPort, savePort;
- Boolean portChanged;
- RGBColor cPix;
- unsigned long r, g, b;
-
- destPort = (CGrafPtr)image->data;
- portChanged = QDSwapPort(destPort, &savePort);
- r = (pixel & image->red_mask)>>16;
- g = (pixel & image->green_mask)>>8;
- b = (pixel & image->blue_mask);
- if (image->obdata) {
- /*
- * Image from XGetImage, 16 bit color values.
- */
-
- cPix.red = r << 8;
- cPix.green = g << 8;
- cPix.blue = b << 8;
- } else {
- cPix.red = r;
- cPix.green = g;
- cPix.blue = b;
- }
- SetCPixel(x, y, &cPix);
- if (portChanged) {
- QDSwapPort(savePort, NULL);
- }
- return 0;
-}
-
-#if 0
-static XImage *
-SubImage(
- XImage *image,
- int x,
- int y,
- unsigned int width,
- unsigned int height)
-{
- Debugger();
- return NULL;
-}
-
-static int
-AddPixel(
- XImage *image,
- long value)
-{
- Debugger();
- return 0;
-}
-#endif
-
-/*
- *----------------------------------------------------------------------
- *
- * XChangeWindowAttributes, XSetWindowBackground,
- * XSetWindowBackgroundPixmap, XSetWindowBorder, XSetWindowBorderPixmap,
- * XSetWindowBorderWidth, XSetWindowColormap
- *
- * These functions are all no-ops. They all have equivalent Tk calls that
- * should always be used instead.
- *
- * Results:
- * None.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-void
-XChangeWindowAttributes(
- Display *display,
- Window w,
- unsigned long value_mask,
- XSetWindowAttributes *attributes)
-{
-}
-
-void
-XSetWindowBackground(
- Display *display,
- Window window,
- unsigned long value)
-{
-}
-
-void
-XSetWindowBackgroundPixmap(
- Display *display,
- Window w,
- Pixmap background_pixmap)
-{
-}
-
-void
-XSetWindowBorder(
- Display *display,
- Window w,
- unsigned long border_pixel)
-{
-}
-
-void
-XSetWindowBorderPixmap(
- Display *display,
- Window w,
- Pixmap border_pixmap)
-{
-}
-
-void
-XSetWindowBorderWidth(
- Display *display,
- Window w,
- unsigned int width)
-{
-}
-
-void
-XSetWindowColormap(
- Display *display,
- Window w,
- Colormap colormap)
-{
- Debugger();
-}
-
-Status
-XStringListToTextProperty(
- char **list,
- int count,
- XTextProperty *text_prop_return)
-{
- Debugger();
- return (Status) 0;
-}
-
-void
-XSetWMClientMachine(
- Display *display,
- Window w,
- XTextProperty *text_prop)
-{
- Debugger();
-}
-
-XIC
-XCreateIC(void)
-{
- Debugger();
- return (XIC) 0;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TkGetDefaultScreenName --
- *
- * Returns the name of the screen that Tk should use during
- * initialization.
- *
- * Results:
- * Returns a statically allocated string.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-const char *
-TkGetDefaultScreenName(
- Tcl_Interp *interp, /* Not used. */
- const char *screenName) /* If NULL, use default string. */
-{
-#if 0
- if ((screenName == NULL) || (screenName[0] == '\0')) {
- screenName = macScreenName;
- }
- return screenName;
-#endif
- return macScreenName;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tk_GetUserInactiveTime --
- *
- * Return the number of milliseconds the user was inactive.
- *
- * Results:
- * The number of milliseconds the user has been inactive, or -1 if
- * querying the inactive time is not supported.
- *
- * Side effects:
- * None.
- *----------------------------------------------------------------------
- */
-
-long
-Tk_GetUserInactiveTime(
- Display *dpy)
-{
- io_registry_entry_t regEntry;
- CFMutableDictionaryRef props = NULL;
- CFTypeRef timeObj;
- long ret = -1l;
- uint64_t time;
- IOReturn result;
-
- regEntry = IOServiceGetMatchingService(kIOMasterPortDefault,
- IOServiceMatching("IOHIDSystem"));
-
- if (regEntry == 0) {
- return -1l;
- }
-
- result = IORegistryEntryCreateCFProperties(regEntry, &props,
- kCFAllocatorDefault, 0);
- IOObjectRelease(regEntry);
-
- if (result != KERN_SUCCESS || props == NULL) {
- return -1l;
- }
-
- timeObj = CFDictionaryGetValue(props, CFSTR("HIDIdleTime"));
-
- if (timeObj) {
- CFTypeID type = CFGetTypeID(timeObj);
-
- if (type == CFDataGetTypeID()) { /* Jaguar */
- CFDataGetBytes((CFDataRef) timeObj,
- CFRangeMake(0, sizeof(time)), (UInt8 *) &time);
- /* Convert nanoseconds to milliseconds. */
- /* ret /= kMillisecondScale; */
- ret = (long) (time/kMillisecondScale);
- } else if (type == CFNumberGetTypeID()) { /* Panther+ */
- CFNumberGetValue((CFNumberRef)timeObj,
- kCFNumberSInt64Type, &time);
- /* Convert nanoseconds to milliseconds. */
- /* ret /= kMillisecondScale; */
- ret = (long) (time/kMillisecondScale);
- } else {
- ret = -1l;
- }
- }
- /* Cleanup */
- CFRelease(props);
-
- return ret;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * 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)
-{
- UpdateSystemActivity(UsrActivity);
-}