summaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj/xlib/XAnyEvent.java
blob: bce3a6150eec3190cd9a81dadc91aa0f3b8b8faa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/* 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() + "]";
  }
}