gnu.gcj.xlib

Class WindowAttributes


public class WindowAttributes
extends Object

Collection of attributes that can be applied to or read from an X11 window.

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.

Field Summary

static long
MASK_BUTTON_PRESS
static long
MASK_BUTTON_RELEASE
static long
MASK_EXPOSURE
static long
MASK_STRUCTURE_NOTIFY

Constructor Summary

WindowAttributes()
The basic constructor.
WindowAttributes(Window from)

Method Summary

void
apply(Window window)
Object
clone()
This method may be called to create a new copy of the Object.
protected void
finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
Visual
getVisual()
Retrieve the visual.
void
setBackground(Pixmap pixmap)
void
setBackground(long pixel)
void
setEventMask(long eventMask)
void
setVisual(Visual visual)

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

MASK_BUTTON_PRESS

public static final long MASK_BUTTON_PRESS
Field Value:
4L

MASK_BUTTON_RELEASE

public static final long MASK_BUTTON_RELEASE
Field Value:
8L

MASK_EXPOSURE

public static final long MASK_EXPOSURE
Field Value:
32768L

MASK_STRUCTURE_NOTIFY

public static final long MASK_STRUCTURE_NOTIFY
Field Value:
131072L

Constructor Details

WindowAttributes

public WindowAttributes()
The basic constructor. Object is special, because it has no superclass, so there is no call to super().

WindowAttributes

public WindowAttributes(Window from)

Method Details

apply

public void apply(Window window)

clone

public Object clone()
This method may be called to create a new copy of the Object. The typical behavior is as follows:
  • o == o.clone() is false
  • o.getClass() == o.clone().getClass() is true
  • o.equals(o) is true

However, these are not strict requirements, and may be violated if necessary. Of the three requirements, the last is the most commonly violated, particularly if the subclass does not override Object.equals(Object).

If the Object you call clone() on does not implement Cloneable (which is a placeholder interface), then a CloneNotSupportedException is thrown. Notice that Object does not implement Cloneable; this method exists as a convenience for subclasses that do.

Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.

All array types implement Cloneable, and override this method as follows (it should never fail):

 public Object clone()
 {
   try
     {
       super.clone();
     }
   catch (CloneNotSupportedException e)
     {
       throw new InternalError(e.getMessage());
     }
 }
 
Overrides:
clone in interface Object
Returns:
a copy of the Object
See Also:
Cloneable

finalize

protected void finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.

Overrides:
finalize in interface Object

getVisual

public Visual getVisual()
Retrieve the visual.
Returns:
the visual that is or should be used by a window. null means CopyFormParent.

setBackground

public void setBackground(Pixmap pixmap)

setBackground

public void setBackground(long pixel)

setEventMask

public void setEventMask(long eventMask)

setVisual

public void setVisual(Visual visual)

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.