/* 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 */ 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() + "]"; } }