X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5ed738a766bb06539893bd424759e75926c43e15..92b0a2a13ccaaa23a97964ff35cdaf39dd44a104:/src/x11/nanox.c diff --git a/src/x11/nanox.c b/src/x11/nanox.c index ec9ca97b32..08336349db 100644 --- a/src/x11/nanox.c +++ b/src/x11/nanox.c @@ -24,5 +24,151 @@ Colormap DefaultColormapOfScreen(Screen /* screen */) return s_globalColormap; } +int XSetGraphicsExposures( Display* /* display */, GC /* gc */, Bool /* graphics_exposures */) +{ + return Success ; +} + +int XWarpPointer( Display* /* display */, Window /* srcW */, Window /* srcW */, + int /* srcX */, int /* srcY */, + unsigned int /* srcWidth */, + unsigned int /* srcHeight */, + int destX, int destY) +{ + GrMoveCursor(destX, destY); + return Success; +} + +int XSetInputFocus(Display* /* display */, Window focus, int /* revert_to */, Time /* time */) +{ + GrSetFocus(focus); + return Success; +} + +int XGetInputFocus(Display* /* display */, Window* /* focus_return */, int* /* revert_to_return */) +{ + * focus_return = GrGetFocus(); + * revert_to_return = 0; + return Success; +} + +int XGrabPointer(Display* /* display */, Window /* grab_window */, + Bool /* owner_events */, unsigned int /* event_mask */, + int /* pointer_mode */, int /* keyboard_mode */, + Window /* confine_to */, Cursor /* cursor */, Time /* time */) +{ + /* According to comments in srvevent.c in Nano-X, the pointer + * is implicitly grabbed when a mouse button is down. + * We may be able to simulate this further in the event loop. + */ + return Success; +} + +int XUngrabPointer(Display /* display */, Time /* time */) +{ + return Success; +} + +int XCopyArea(Display* /* display */, Drawable src, Drawable dest, GC gc, + int src_x, int src_y, unsigned int width, unsigned int height, + int dest_x, int dest_y) +{ + GrCopyArea(dest, gc, dest_x, dest_y, + width, height, src, + src_x, src_y, 0); + return Success; +} + +int XCopyPlane(Display* /* display */, Drawable src, Drawable dest, GC gc, + int src_x, int src_y, unsigned int width, unsigned int height, + int dest_x, int dest_y, unsigned long /* plane */) +{ + GrCopyArea(dest, gc, dest_x, dest_y, + width, height, src, + src_x, src_y, 0); + return Success; +} + +#if 0 +typedef struct { + GR_WINDOW_ID wid; /* window id (or 0 if no such window) */ + GR_WINDOW_ID parent; /* parent window id */ + GR_WINDOW_ID child; /* first child window id (or 0) */ + GR_WINDOW_ID sibling; /* next sibling window id (or 0) */ + GR_BOOL inputonly; /* TRUE if window is input only */ + GR_BOOL mapped; /* TRUE if window is mapped */ + GR_COUNT unmapcount; /* reasons why window is unmapped */ + GR_COORD x; /* absolute x position of window */ + GR_COORD y; /* absolute y position of window */ + GR_SIZE width; /* width of window */ + GR_SIZE height; /* height of window */ + GR_SIZE bordersize; /* size of border */ + GR_COLOR bordercolor; /* color of border */ + GR_COLOR background; /* background color */ + GR_EVENT_MASK eventmask; /* current event mask for this client */ + GR_WM_PROPS props; /* window properties */ + GR_CURSOR_ID cursor; /* cursor id*/ + unsigned long processid; /* process id of owner*/ +} GR_WINDOW_INFO; + +typedef struct { + int x, y; /* location of window */ + int width, height; /* width and height of window */ + int border_width; /* border width of window */ + int depth; /* depth of window */ + Visual *visual; /* the associated visual structure */ + Window root; /* root of screen containing window */ + int class; /* InputOutput, InputOnly*/ + int bit_gravity; /* one of the bit gravity values */ + int win_gravity; /* one of the window gravity values */ + int backing_store; /* NotUseful, WhenMapped, Always */ + unsigned long backing_planes;/* planes to be preserved if possible */ + unsigned long backing_pixel;/* value to be used when restoring planes */ + Bool save_under; /* boolean, should bits under be saved? */ + Colormap colormap; /* color map to be associated with window */ + Bool map_installed; /* boolean, is color map currently installed*/ + int map_state; /* IsUnmapped, IsUnviewable, IsViewable */ + long all_event_masks; /* set of events all people have interest in*/ + long your_event_mask; /* my event mask */ + long do_not_propagate_mask;/* set of events that should not propagate */ + Bool override_redirect; /* boolean value for override-redirect */ + Screen *screen; /* back pointer to correct screen */ +} XWindowAttributes; + +#endif + + +Status XGetWindowAttributes(Display* display, Window w, + XWindowAttributes* window_attributes_return) +{ + GR_WINDOW_INFO info; + GrGetWindowInfo(w, & info); + + window_attributes->x = info.x; + window_attributes->y = info.y; + window_attributes->width = info.width; + window_attributes->height = info.height; + window_attributes->border_width = info.bordersize; + window_attributes->depth = 0; + window_attributes->visual = NULL; + window_attributes->root = 0; + window_attributes->class = info.inputonly ? InputOnly : InputOutput ; + window_attributes->bit_gravity = 0; + window_attributes->win_gravity = 0; + window_attributes->backing_store = 0; + window_attributes->backing_planes = 0; + window_attributes->backing_pixel = 0; + window_attributes->save_under = FALSE; + window_attributes->colormap = DefaultColormapOfScreen(0); + window_attributes->map_installed = FALSE; + window_attributes->map_state = info.mapped ? IsViewable : IsUnmapped ; + window_attributes->all_event_masks = 0; + window_attributes->do_not_propagate_mask = 0; + window_attributes->override_redirect = FALSE; + window_attributes->screen = NULL; + + return 1; +} + #endif /* wxUSE_NANOX */ \ No newline at end of file