summaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj/xlib/WindowAttributes.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/gcj/xlib/WindowAttributes.java')
-rw-r--r--libjava/gnu/gcj/xlib/WindowAttributes.java114
1 files changed, 114 insertions, 0 deletions
diff --git a/libjava/gnu/gcj/xlib/WindowAttributes.java b/libjava/gnu/gcj/xlib/WindowAttributes.java
new file mode 100644
index 000000000..23be37d63
--- /dev/null
+++ b/libjava/gnu/gcj/xlib/WindowAttributes.java
@@ -0,0 +1,114 @@
+/* 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;
+
+/**
+ *
+ * Collection of attributes that can be applied to or read from an
+ * X11 window.
+ *
+ * <p>TODO: Split this class into two classes. One for the structure
+ * XSetWindowAttributes and one for the XWindowAttributes. However
+ * they should still share this common base class.
+ *
+ * @author Rolf W. Rasmussen <rolfwr@ii.uib.no> */
+public class WindowAttributes
+{
+ // Must match definitions in X.h:
+ public final static long MASK_BUTTON_PRESS = 1L<< 2,
+ MASK_BUTTON_RELEASE = 1L<< 3,
+ MASK_EXPOSURE = 1L<<15,
+ MASK_STRUCTURE_NOTIFY = 1L<<17;
+
+ public WindowAttributes()
+ {
+ init(null);
+ }
+
+ public WindowAttributes(Window from)
+ {
+ initFromWindow(from);
+ }
+
+ private native void initFromWindow(Window from);
+ private native void init(WindowAttributes copyFrom);
+ protected native void finalize();
+
+ public Object clone()
+ {
+ try
+ {
+ WindowAttributes attributes = (WindowAttributes) super.clone();
+ // In case of an exception before the stucture is copied.
+ attributes.in = null;
+ attributes.out = null;
+
+ // FIXME: do anything else?
+
+ attributes.init(this);
+ return attributes;
+ }
+ catch (CloneNotSupportedException ex)
+ {
+ // This should never happen.
+ throw new InternalError ();
+ }
+ }
+
+ public native void setBackground(long pixel);
+ public native void setBackground(Pixmap pixmap);
+ public native void setEventMask(long eventMask);
+
+ public void setVisual(Visual visual)
+ {
+ this.visual = visual;
+ }
+
+ /**
+ * Retrieve the visual.
+ *
+ * @return the visual that is or should be used by a window. null
+ * means CopyFormParent.
+ */
+ public native Visual getVisual();
+
+ Display display;
+
+ /**
+ * Reference to XWindowAttribute structure containing attributes
+ * read from a window.
+ */
+ RawData in = null;
+
+ /**
+ * Reference to XSetWindowAttribute structure containing attributes
+ * to be applied to a window.
+ */
+ RawData out = null;
+
+ long mask;
+
+ /** null means CopyFromParent during window creation. */
+ Visual visual = null;
+
+ public native void apply(Window window);
+
+ final RawData getXSetWindowAttributesStructure()
+ {
+ if (out == null)
+ initOut();
+ return out;
+ }
+
+ void initOut()
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
+}