| /* Copyright (C) 2000 Free Software Foundation |
| |
| This file is part of libgcj. |
| |
| This software is copyrighted work licensed under the terms of the |
| Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
| details. */ |
| |
| package gnu.gcj.xlib; |
| |
| import gnu.gcj.RawData; |
| |
| /** |
| * Mutable event structure that can contain any data from any event |
| * type. Events can be constructed or loaded from the event queue. |
| * |
| * @author Rolf W. Rasmussen <rolfwr@ii.uib.no> |
| */ |
| public final class XAnyEvent |
| { |
| // Must match the definitions in X.h: |
| public static final int |
| TYPE_KEY_PRESS = 2, |
| TYPE_KEY_RELEASE = 3, |
| TYPE_BUTTON_PRESS = 4, |
| TYPE_BUTTON_RELEASE = 5, |
| TYPE_MOTION_NOTIFY = 6, |
| TYPE_ENTER_NOTIFY = 7, |
| TYPE_LEAVE_NOTIFY = 8, |
| TYPE_FOCUS_IN = 9, |
| TYPE_FOCUS_OUT = 10, |
| TYPE_KEYMAP_NOTIFY = 11, |
| TYPE_EXPOSE = 12, |
| TYPE_GRAPHICS_EXPOSE = 13, |
| TYPE_NO_EXPOSE = 14, |
| TYPE_VISIBILITY_NOTIFY = 15, |
| TYPE_CREATE_NOTIFY = 16, |
| TYPE_DESTROY_NOTIFY = 17, |
| TYPE_UNMAP_NOTIFY = 18, |
| TYPE_MAP_NOTIFY = 19, |
| TYPE_MAP_REQUEST = 20, |
| TYPE_REPARENT_NOTIFY = 21, |
| TYPE_CONFIGURE_NOTIFY = 22, |
| TYPE_CONFIGURE_REQUEST = 23, |
| TYPE_GRAVITY_NOTIFY = 24, |
| TYPE_RESIZE_REQUEST = 25, |
| TYPE_CIRCULATE_NOTIFY = 26, |
| TYPE_CIRCULATE_REQUEST = 27, |
| TYPE_PROPERTY_NOTIFY = 28, |
| TYPE_SELECTION_CLEAR = 29, |
| TYPE_SELECTION_REQUEST = 30, |
| TYPE_SELECTION_NOTIFY = 31, |
| TYPE_COLORMAP_NOTIFY = 32, |
| TYPE_CLIENT_MESSAGE = 33, |
| TYPE_MAPPING_NOTIFY = 34; |
| |
| // Must match the definitions in X.h: |
| public final static long MASK_SUBSTRUCTURE_NOTIFY = 1L<<19, |
| MASK_SUBSTRUCTURE_REDIRECT = 1L<<20; |
| |
| public XAnyEvent(Display display) |
| { |
| this.display = display; |
| init(); |
| } |
| |
| private native void init(); |
| protected native void finalize(); |
| |
| /** |
| * Load next event into the event structure. |
| */ |
| public native boolean loadNext(boolean block); |
| public native void interrupt(); |
| |
| public native int getType(); |
| public native void setType(int type); |
| |
| public native Window getWindow(); |
| public native void setWindow(Window window); |
| |
| /** |
| * @returns the number of the last request processed by the server. |
| */ |
| public native long getSerial(); |
| |
| public native void send(Window destination, boolean propagate, |
| long mask); |
| |
| RawData pipefds; |
| RawData structure; |
| Display display; |
| |
| public String toString() |
| { |
| if (structure == null) |
| return getClass().getName() + "[no-structure]"; |
| |
| return getClass().getName() + |
| "[type=" + getType() + |
| ",window=" + getWindow() + "]"; |
| } |
| } |