mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-04 01:04:26 +08:00
ButtonPeer.java: Replace with Classpath version.
* java/awt/peer/ButtonPeer.java: Replace with Classpath version. * java/awt/peer/CanvasPeer.java: Replace with Classpath version. * java/awt/peer/CheckboxMenuItemPeer.java: Replace with Classpath version. * java/awt/peer/CheckboxPeer.java: Replace with Classpath version. * java/awt/peer/ChoicePeer.java: Replace with Classpath version. * java/awt/peer/ComponentPeer.java: Replace with Classpath version. * java/awt/peer/ContainerPeer.java: Replace with Classpath version. * java/awt/peer/DialogPeer.java: Replace with Classpath version. * java/awt/peer/FileDialogPeer.java: Replace with Classpath version. * java/awt/peer/FontPeer.java: Replace with Classpath version. * java/awt/peer/FramePeer.java: Replace with Classpath version. * java/awt/peer/LabelPeer.java: Replace with Classpath version. * java/awt/peer/LightweightPeer.java: Replace with Classpath version. * java/awt/peer/ListPeer.java: Replace with Classpath version. * java/awt/peer/MenuBarPeer.java: Replace with Classpath version. * java/awt/peer/MenuComponentPeer.java: Replace with Classpath version. * java/awt/peer/MenuItemPeer.java: Replace with Classpath version. * java/awt/peer/MenuPeer.java: Replace with Classpath version. * java/awt/peer/PanelPeer.java: Replace with Classpath version. * java/awt/peer/PopupMenuPeer.java: Replace with Classpath version. * java/awt/peer/ScrollPanePeer.java: Replace with Classpath version. * java/awt/peer/ScrollbarPeer.java: Replace with Classpath version. * java/awt/peer/TextAreaPeer.java: Replace with Classpath version. * java/awt/peer/TextComponentPeer.java: Replace with Classpath version. * java/awt/peer/TextFieldPeer.java: Replace with Classpath version. * java/awt/peer/WindowPeer.java: Replace with Classpath version. * gnu/awt/xlib/XPanelPeer.java (insets): New method. * gnu/awt/xlib/XCanvasPeer.java (show, hide): New methods. (minimumSize, preferredSize, reshape): Likewise. * gnu/awt/xlib/XFramePeer.java (insets, enable, disable, getColorModel): New methods. * java/awt/PopupMenu.java: Merged with Classpath. * java/awt/MenuBar.java: Merged with Classpath. * java/awt/SystemColor.java: Replace with Classpath version. * java/awt/Panel.java: Merged with Classpath. * java/awt/PaintContext.java: Updated copyright. * java/awt/MenuShortcut.java: Merged with Classpath. * java/awt/MenuContainer.java: Merged with Classpath. * java/awt/Menu.java: Merged with Classpath. * java/awt/MediaEntry.java: New file from Classpath. * java/awt/MediaTracker.java: New file from Classpath. * java/awt/List.java: Merged with Classpath version. * java/awt/Insets.java: Merged with Classpath version. * java/awt/ImageMediaEntry.java: New file from Classpath. * java/awt/Image.java: Replaced with Classpath version. * java/awt/FontMetrics.java: Merged with Classpath version. * java/awt/Cursor.java (getDefaultCursor): Use DEFAULT_CURSOR constant. * java/awt/Font.java: Merged with Classpath version. * java/awt/Dialog.java: Merged with Classpath version. * java/awt/Color.java: Merged with Classpath version. * java/awt/Choice.java: Merged with Classpath version. * java/awt/CheckboxMenuItem.java: Merged with Classpath version. * java/awt/Adjustable.java: Replace with Classpath version. * java/awt/MenuItem.java (paramString): Don't include class name or brackets. Call superclass paramString. * java/awt/MenuComponent.java (toString): Call paramString. (paramString): Compute string; don't call toString. * java/awt/Label.java (paramString): Don't include class name or brackets. Call superclass paramString. * java/awt/Checkbox.java (paramString): Don't include class name or brackets. Call superclass paramString. * java/awt/Button.java (paramString): Don't include class name or brackets. Call superclass paramString. * java/awt/MenuComponent.java (getTreeLock): Now protected. From-SVN: r49099
This commit is contained in:
parent
e3b0efd1ee
commit
bda1450543
@ -1,3 +1,72 @@
|
||||
2002-01-22 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* java/awt/peer/ButtonPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/CanvasPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/CheckboxMenuItemPeer.java: Replace with Classpath
|
||||
version.
|
||||
* java/awt/peer/CheckboxPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ChoicePeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ComponentPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ContainerPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/DialogPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/FileDialogPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/FontPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/FramePeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/LabelPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/LightweightPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ListPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/MenuBarPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/MenuComponentPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/MenuItemPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/MenuPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/PanelPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/PopupMenuPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ScrollPanePeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/ScrollbarPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/TextAreaPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/TextComponentPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/TextFieldPeer.java: Replace with Classpath version.
|
||||
* java/awt/peer/WindowPeer.java: Replace with Classpath version.
|
||||
* gnu/awt/xlib/XPanelPeer.java (insets): New method.
|
||||
* gnu/awt/xlib/XCanvasPeer.java (show, hide): New methods.
|
||||
(minimumSize, preferredSize, reshape): Likewise.
|
||||
* gnu/awt/xlib/XFramePeer.java (insets, enable, disable,
|
||||
getColorModel): New methods.
|
||||
* java/awt/PopupMenu.java: Merged with Classpath.
|
||||
* java/awt/MenuBar.java: Merged with Classpath.
|
||||
* java/awt/SystemColor.java: Replace with Classpath version.
|
||||
* java/awt/Panel.java: Merged with Classpath.
|
||||
* java/awt/PaintContext.java: Updated copyright.
|
||||
* java/awt/MenuShortcut.java: Merged with Classpath.
|
||||
* java/awt/MenuContainer.java: Merged with Classpath.
|
||||
* java/awt/Menu.java: Merged with Classpath.
|
||||
* java/awt/MediaEntry.java: New file from Classpath.
|
||||
* java/awt/MediaTracker.java: New file from Classpath.
|
||||
* java/awt/List.java: Merged with Classpath version.
|
||||
* java/awt/Insets.java: Merged with Classpath version.
|
||||
* java/awt/ImageMediaEntry.java: New file from Classpath.
|
||||
* java/awt/Image.java: Replaced with Classpath version.
|
||||
* java/awt/FontMetrics.java: Merged with Classpath version.
|
||||
* java/awt/Cursor.java (getDefaultCursor): Use DEFAULT_CURSOR
|
||||
constant.
|
||||
* java/awt/Font.java: Merged with Classpath version.
|
||||
* java/awt/Dialog.java: Merged with Classpath version.
|
||||
* java/awt/Color.java: Merged with Classpath version.
|
||||
* java/awt/Choice.java: Merged with Classpath version.
|
||||
* java/awt/CheckboxMenuItem.java: Merged with Classpath version.
|
||||
* java/awt/Adjustable.java: Replace with Classpath version.
|
||||
* java/awt/MenuItem.java (paramString): Don't include class name
|
||||
or brackets. Call superclass paramString.
|
||||
* java/awt/MenuComponent.java (toString): Call paramString.
|
||||
(paramString): Compute string; don't call toString.
|
||||
* java/awt/Label.java (paramString): Don't include class name
|
||||
or brackets. Call superclass paramString.
|
||||
* java/awt/Checkbox.java (paramString): Don't include class name
|
||||
or brackets. Call superclass paramString.
|
||||
* java/awt/Button.java (paramString): Don't include class name or
|
||||
brackets. Call superclass paramString.
|
||||
* java/awt/MenuComponent.java (getTreeLock): Now protected.
|
||||
|
||||
2002-01-20 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* java/net/natPlainSocketImpl.cc (_Jv_recv): Change return type of
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -230,6 +230,11 @@ public class XCanvasPeer implements CanvasPeer
|
||||
throw new UnsupportedOperationException("FIXME, not implemented");
|
||||
}
|
||||
|
||||
public ColorModel getColorModel ()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public Graphics getGraphics()
|
||||
{
|
||||
DirectRasterGraphics gfxDevice = new XGraphics(window, config);
|
||||
@ -251,11 +256,21 @@ public class XCanvasPeer implements CanvasPeer
|
||||
return MIN_SIZE;
|
||||
}
|
||||
|
||||
public Dimension minimumSize ()
|
||||
{
|
||||
return getMinimumSize ();
|
||||
}
|
||||
|
||||
public Dimension getPreferredSize ()
|
||||
{
|
||||
return component.getSize();
|
||||
}
|
||||
|
||||
public Dimension preferredSize ()
|
||||
{
|
||||
return getPreferredSize();
|
||||
}
|
||||
|
||||
public Toolkit getToolkit()
|
||||
{
|
||||
return getXToolkit();
|
||||
@ -318,6 +333,11 @@ public class XCanvasPeer implements CanvasPeer
|
||||
ensureFlush();
|
||||
}
|
||||
|
||||
public void reshape (int x, int y, int width, int height)
|
||||
{
|
||||
setBounds (x, y, width, height);
|
||||
}
|
||||
|
||||
public void setCursor(Cursor cursor)
|
||||
{
|
||||
throw new UnsupportedOperationException("FIXME, not implemented");
|
||||
@ -328,6 +348,16 @@ public class XCanvasPeer implements CanvasPeer
|
||||
throw new UnsupportedOperationException("FIXME, not implemented");
|
||||
}
|
||||
|
||||
public void enable ()
|
||||
{
|
||||
setEnabled (true);
|
||||
}
|
||||
|
||||
public void disable ()
|
||||
{
|
||||
setEnabled (false);
|
||||
}
|
||||
|
||||
public void setEventMask(long eventMask)
|
||||
{
|
||||
WindowAttributes attributes = new WindowAttributes();
|
||||
@ -371,6 +401,16 @@ public class XCanvasPeer implements CanvasPeer
|
||||
}
|
||||
}
|
||||
|
||||
public void show ()
|
||||
{
|
||||
setVisible (true);
|
||||
}
|
||||
|
||||
public void hide ()
|
||||
{
|
||||
setVisible (false);
|
||||
}
|
||||
|
||||
static class DoMap implements Runnable
|
||||
{
|
||||
Window window;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -93,6 +93,11 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
|
||||
return (Insets) INSETS_0_PROTOTYPE.clone();
|
||||
}
|
||||
|
||||
public Insets insets ()
|
||||
{
|
||||
return getInsets ();
|
||||
}
|
||||
|
||||
public void beginValidate()
|
||||
{
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@ -40,6 +40,11 @@ public class XPanelPeer extends XCanvasPeer implements PanelPeer
|
||||
return (Insets) INSETS_0_PROTOTYPE.clone();
|
||||
}
|
||||
|
||||
public Insets insets()
|
||||
{
|
||||
return getInsets();
|
||||
}
|
||||
|
||||
public void beginValidate()
|
||||
{
|
||||
// NOP
|
||||
|
@ -1,39 +1,212 @@
|
||||
/* Copyright (C) 1999, 2000 Free Software Foundation
|
||||
/* Adjustable.java -- Objects with a numeric adjustment scale.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
import java.awt.event.*;
|
||||
|
||||
import java.awt.event.AdjustmentListener;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@cygnus.com>
|
||||
* @date April 8, 2000
|
||||
*/
|
||||
|
||||
/* Status: Believed complete and correct to JDK 1.2. */
|
||||
|
||||
* This interface is for objects that take a numeric value that
|
||||
* can be adjusted within a bounded range. For example, a scroll bar.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public interface Adjustable
|
||||
{
|
||||
public static final int HORIZONTAL = 0;
|
||||
public static final int VERTICAL = 1;
|
||||
|
||||
public void addAdjustmentListener (AdjustmentListener l);
|
||||
public int getBlockIncrement ();
|
||||
public int getMaximum ();
|
||||
public int getMinimum ();
|
||||
public int getOrientation ();
|
||||
public int getUnitIncrement ();
|
||||
public int getValue ();
|
||||
public int getVisibleAmount ();
|
||||
public void removeAdjustmentListener (AdjustmentListener l);
|
||||
public void setBlockIncrement (int b);
|
||||
public void setMaximum (int max);
|
||||
public void setMinimum (int min);
|
||||
public void setUnitIncrement (int u);
|
||||
public void setValue (int v);
|
||||
public void setVisibleAmount (int v);
|
||||
}
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* Constant for a horizontal orientation
|
||||
*/
|
||||
public static final int HORIZONTAL = 0;
|
||||
|
||||
/**
|
||||
* Constant for a vertical orientation
|
||||
*/
|
||||
public static final int VERTICAL = 1;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the current value of the object.
|
||||
*
|
||||
* @return The current value of the object.
|
||||
*/
|
||||
public abstract int
|
||||
getValue();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the current value of the object.
|
||||
*
|
||||
* @param value The current value of the object.
|
||||
*/
|
||||
public abstract void
|
||||
setValue(int value);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the orientation of the object, either <code>HORIZONTAL</code>
|
||||
* or <code>VERTICAL</code>.
|
||||
*
|
||||
* @return The orientation of this object.
|
||||
*/
|
||||
public abstract int
|
||||
getOrientation();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the minimum value this object can take.
|
||||
*
|
||||
* @return The minimum value this object can take.
|
||||
*/
|
||||
public abstract int
|
||||
getMinimum();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the minimum value this object can take to the specified value.
|
||||
*
|
||||
* @param minimum The new minimum value for this object.
|
||||
*/
|
||||
public abstract void
|
||||
setMinimum(int minimum);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the maximum value this object can take.
|
||||
*
|
||||
* @return The maximum value this object can take.
|
||||
*/
|
||||
public abstract int
|
||||
getMaximum();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the maximum value this object can take to the specified value.
|
||||
*
|
||||
* @param maximum The new maximum value for this object.
|
||||
*/
|
||||
public abstract void
|
||||
setMaximum(int maximum);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the increment value for incrementing by units.
|
||||
*
|
||||
* @return The unit increment value.
|
||||
*/
|
||||
public abstract int
|
||||
getUnitIncrement();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the increment value for incrementing by units to the specified value.
|
||||
*
|
||||
* @param increment The unit increment value.
|
||||
*/
|
||||
public abstract void
|
||||
setUnitIncrement(int increment);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the increment value for incrementing by blocks.
|
||||
*
|
||||
* @return The block increment value.
|
||||
*/
|
||||
public abstract int
|
||||
getBlockIncrement();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the increment value for incrementing by blocks to the specified value.
|
||||
*
|
||||
* @param increment The block increment value.
|
||||
*/
|
||||
public abstract void
|
||||
setBlockIncrement(int increment);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the length of the indicator for this object.
|
||||
*
|
||||
* @return The indicator length.
|
||||
*/
|
||||
public abstract int
|
||||
getVisibleAmount();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the length of the indicator for this object to the specified value.
|
||||
*
|
||||
* @param length The indicator length
|
||||
*/
|
||||
public abstract void
|
||||
setVisibleAmount(int length);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds a listener that will receive adjustment events for this object.
|
||||
*
|
||||
* @param listener The adjustment listener to add.
|
||||
*/
|
||||
public abstract void
|
||||
addAdjustmentListener(AdjustmentListener listener);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes an adjustment listener from this object. It will no longer
|
||||
* receive adjustment events.
|
||||
*
|
||||
* @param listener The adjustment listener to remove.
|
||||
*/
|
||||
public abstract void
|
||||
removeAdjustmentListener(AdjustmentListener listener);
|
||||
|
||||
} // interface Adjustable
|
||||
|
||||
|
@ -269,8 +269,8 @@ dispatchEventImpl(AWTEvent e)
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return(getClass().getName() + "(label=" + getLabel() + ",actionCommand=" +
|
||||
getActionCommand() + ")");
|
||||
return ("label=" + getLabel() + ",actionCommand=" + getActionCommand()
|
||||
+ "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class Button
|
||||
|
@ -362,8 +362,8 @@ processItemEvent(ItemEvent event)
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return(getClass().getName() + "[label=" + label + ",state=" + state
|
||||
+ ",group=" + group + "]");
|
||||
return ("label=" + label + ",state=" + state + ",group=" + group
|
||||
+ "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class Checkbox
|
||||
|
@ -1,134 +1,265 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
/* CheckboxMenuItem.java -- A menu option with a checkbox on it.
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.CheckboxMenuItemPeer;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.awt.peer.MenuItemPeer;
|
||||
import java.awt.peer.MenuComponentPeer;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
|
||||
/** This implements a menu item which keeps track of a boolean state.
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date December 25, 2000
|
||||
*/
|
||||
public class CheckboxMenuItem extends MenuItem implements ItemSelectable
|
||||
/**
|
||||
* This class implements a menu item that has a checkbox on it indicating
|
||||
* the selected state of some option.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
*/
|
||||
public class CheckboxMenuItem extends MenuItem implements ItemSelectable,
|
||||
java.io.Serializable
|
||||
{
|
||||
/** Create a new CheckboxMenuItem.
|
||||
* @param label The checkbox label. A null value is the same as "";
|
||||
* null is the default.
|
||||
* @param state The initial check state; defaults to false.
|
||||
*/
|
||||
public CheckboxMenuItem ()
|
||||
{
|
||||
this (null, false);
|
||||
}
|
||||
|
||||
public CheckboxMenuItem (String label)
|
||||
{
|
||||
this (label, false);
|
||||
}
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public CheckboxMenuItem (String label, boolean state)
|
||||
{
|
||||
this.label = label;
|
||||
this.state = state;
|
||||
}
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = 6190621106981774043L;
|
||||
|
||||
/** Add a listener for item events.
|
||||
* @param listener The listener to add.
|
||||
*/
|
||||
public synchronized void addItemListener (ItemListener listener)
|
||||
{
|
||||
listeners = AWTEventMulticaster.add (listeners, listener);
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/** This creates the component's peer. */
|
||||
public void addNotify ()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
// This choice of toolkit seems unsatisfying, but I'm not sure
|
||||
// what else to do.
|
||||
peer = Toolkit.getDefaultToolkit ().createCheckboxMenuItem (this);
|
||||
}
|
||||
super.addNotify ();
|
||||
}
|
||||
/**
|
||||
* @serial The state of the checkbox, with <code>true</code> being on and
|
||||
* <code>false</code> being off.
|
||||
*/
|
||||
private boolean state;
|
||||
|
||||
/** Returns this checkbox's label if this checkbox is selected. */
|
||||
public Object[] getSelectedObjects ()
|
||||
{
|
||||
Object[] r;
|
||||
if (state)
|
||||
{
|
||||
r = new Object[1];
|
||||
r[0] = label;
|
||||
}
|
||||
else
|
||||
r = new Object[0];
|
||||
return r;
|
||||
}
|
||||
// List of registered ItemListeners
|
||||
private transient ItemListener item_listeners;
|
||||
|
||||
/** Returns the current state of this checkbox. */
|
||||
public boolean getState ()
|
||||
{
|
||||
return state;
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/** Generates a String representation of this Checkbox's state. */
|
||||
public String paramString ()
|
||||
{
|
||||
return ("[" + getClass ().getName ()
|
||||
+ "state=" + state + ","
|
||||
+ "label=" + label + "]");
|
||||
}
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/** Process an event for this Checkbox.
|
||||
* @param event The event the process.
|
||||
*/
|
||||
protected void processEvent (AWTEvent event)
|
||||
{
|
||||
if (event instanceof ItemEvent)
|
||||
processItemEvent ((ItemEvent) event);
|
||||
else
|
||||
super.processEvent (event);
|
||||
}
|
||||
|
||||
/** Process an item event for this Checkbox.
|
||||
* @param event The ItemEvent to process
|
||||
*/
|
||||
protected void processItemEvent (ItemEvent event)
|
||||
{
|
||||
if (listeners != null)
|
||||
listeners.itemStateChanged (event);
|
||||
}
|
||||
|
||||
/** Remove an item listener.
|
||||
* @param listener Item listener to remove.
|
||||
*/
|
||||
public synchronized void removeItemListener (ItemListener listener)
|
||||
{
|
||||
listeners = AWTEventMulticaster.remove (listeners, listener);
|
||||
}
|
||||
|
||||
/** Set the checkbox's state.
|
||||
* @param state The new state.
|
||||
*/
|
||||
public void setState (boolean state)
|
||||
{
|
||||
this.state = state;
|
||||
if (peer != null)
|
||||
{
|
||||
CheckboxMenuItemPeer cp = (CheckboxMenuItemPeer) peer;
|
||||
cp.setState (state);
|
||||
}
|
||||
}
|
||||
|
||||
// Private state.
|
||||
String label;
|
||||
boolean state;
|
||||
ItemListener listeners;
|
||||
/**
|
||||
* Initializes a new instance of <code>CheckboxMenuItem</code> with no
|
||||
* label and an initial state of off.
|
||||
*/
|
||||
public
|
||||
CheckboxMenuItem()
|
||||
{
|
||||
this("", false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>CheckboxMenuItem</code> with the
|
||||
* specified label and an initial state of off.
|
||||
*
|
||||
* @param label The label of the menu item.
|
||||
*/
|
||||
public
|
||||
CheckboxMenuItem(String label)
|
||||
{
|
||||
this(label, false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>CheckboxMenuItem</code> with the
|
||||
* specified label and initial state.
|
||||
*
|
||||
* @param label The label of the menu item.
|
||||
* @param state The initial state of the menu item, where <code>true</code>
|
||||
* is on, and <code>false</code> is off.
|
||||
*/
|
||||
public
|
||||
CheckboxMenuItem(String label, boolean state)
|
||||
{
|
||||
super(label);
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the state of this menu item.
|
||||
*
|
||||
* @return The state of this menu item.
|
||||
*/
|
||||
public boolean
|
||||
getState()
|
||||
{
|
||||
return(state);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the state of this menu item.
|
||||
*
|
||||
* @param state The initial state of the menu item, where <code>true</code>
|
||||
* is on, and <code>false</code> is off.
|
||||
*/
|
||||
public synchronized void
|
||||
setState(boolean state)
|
||||
{
|
||||
this.state = state;
|
||||
if (peer != null)
|
||||
{
|
||||
CheckboxMenuItemPeer cp = (CheckboxMenuItemPeer) peer;
|
||||
cp.setState (state);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns an array of length 1 with the menu item label for this object
|
||||
* if the state is on. Otherwise <code>null</code> is returned.
|
||||
*
|
||||
* @param An array with this menu item's label if it has a state of on,
|
||||
* or <code>null</code> otherwise.
|
||||
*/
|
||||
public Object[]
|
||||
getSelectedObjects()
|
||||
{
|
||||
if (state == false)
|
||||
return(null);
|
||||
|
||||
Object[] obj = new Object[1];
|
||||
obj[0] = getLabel();
|
||||
|
||||
return(obj);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Create's this object's native peer
|
||||
*/
|
||||
public synchronized void
|
||||
addNotify()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
// This choice of toolkit seems unsatisfying, but I'm not sure
|
||||
// what else to do.
|
||||
peer = getToolkit().createCheckboxMenuItem(this);
|
||||
}
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds the specified listener to the list of registered item listeners
|
||||
* for this object.
|
||||
*
|
||||
* @param listener The listener to add.
|
||||
*/
|
||||
public synchronized void
|
||||
addItemListener(ItemListener listener)
|
||||
{
|
||||
item_listeners = AWTEventMulticaster.add(item_listeners, listener);
|
||||
|
||||
enableEvents(AWTEvent.ITEM_EVENT_MASK);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specified listener from the list of registered item
|
||||
* listeners for this object.
|
||||
*
|
||||
* @param listener The listener to remove.
|
||||
*/
|
||||
public synchronized void
|
||||
removeItemListener(ItemListener listener)
|
||||
{
|
||||
item_listeners = AWTEventMulticaster.remove(item_listeners, listener);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Processes the specified event by calling <code>processItemEvent()</code>
|
||||
* if it is an instance of <code>ItemEvent</code> or calling the superclass
|
||||
* method otherwise.
|
||||
*
|
||||
* @param event The event to process.
|
||||
*/
|
||||
protected void
|
||||
processEvent(AWTEvent event)
|
||||
{
|
||||
if (event instanceof ItemEvent)
|
||||
processItemEvent((ItemEvent)event);
|
||||
else
|
||||
super.processEvent(event);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Processes the specified event by dispatching it to any registered listeners.
|
||||
*
|
||||
* @param event The event to process.
|
||||
*/
|
||||
protected void
|
||||
processItemEvent(ItemEvent event)
|
||||
{
|
||||
if (item_listeners != null)
|
||||
item_listeners.itemStateChanged(event);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this object.
|
||||
*
|
||||
* @return A debugging string for this object.
|
||||
*/
|
||||
public String
|
||||
paramString()
|
||||
{
|
||||
return ("label=" + getLabel() + ",state=" + state
|
||||
+ "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class CheckboxMenuItem
|
||||
|
||||
|
@ -1,276 +1,436 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
/* Choice.java -- Java choice button widget.
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
import java.awt.event.*;
|
||||
|
||||
import java.awt.peer.ChoicePeer;
|
||||
import java.util.ArrayList;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
import java.awt.event.ItemEvent;
|
||||
import java.awt.event.ItemListener;
|
||||
import java.io.Serializable;
|
||||
import java.util.Vector;
|
||||
|
||||
/** This component lets the user choose an item from a list of
|
||||
* Strings.
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date December 25, 2000
|
||||
*/
|
||||
public class Choice extends Component implements ItemSelectable
|
||||
/**
|
||||
* This class implements a drop down choice list.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Choice extends Component implements ItemSelectable, Serializable
|
||||
{
|
||||
/** Create a new Choice object. */
|
||||
public Choice ()
|
||||
{
|
||||
items = new ArrayList ();
|
||||
selected = -1;
|
||||
}
|
||||
|
||||
/** Add a new item to this Choice object. If the item is the first
|
||||
* item on the list, then it is selected.
|
||||
* @param item The new item; must be non-null.
|
||||
*/
|
||||
public synchronized void add (String item)
|
||||
{
|
||||
if (item == null)
|
||||
throw new IllegalArgumentException ("item must be non-null");
|
||||
items.add (item);
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
int i = items.size () - 1;
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.add (item, i);
|
||||
}
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = -4075310674757313071L;
|
||||
|
||||
if (i == 0)
|
||||
select (0);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/** Add a new item to this Choice object. This is the same as the
|
||||
* add method. */
|
||||
public void addItem (String item)
|
||||
{
|
||||
add (item);
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/** Add a listener for item events.
|
||||
* @param listener The listener to add.
|
||||
*/
|
||||
public synchronized void addItemListener (ItemListener listener)
|
||||
{
|
||||
listeners = AWTEventMulticaster.add (listeners, listener);
|
||||
}
|
||||
/**
|
||||
* @serial A list of items for the choice box, which can be <code>null</code>.
|
||||
*/
|
||||
private Vector pItems = new Vector();
|
||||
|
||||
/** This creates the component's peer. */
|
||||
public void addNotify ()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createChoice (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
/**
|
||||
* @serial The index of the selected item in the choice box.
|
||||
*/
|
||||
private int selectedIndex = -1;
|
||||
|
||||
/** Returns number of items.
|
||||
* @deprecated
|
||||
*/
|
||||
public int countItems ()
|
||||
{
|
||||
return getItemCount ();
|
||||
}
|
||||
// Listener chain
|
||||
private ItemListener item_listeners;
|
||||
|
||||
/** Returns an item from this choice.
|
||||
* @param index Index of the item. Indices start at zero.
|
||||
*/
|
||||
public String getItem (int index)
|
||||
{
|
||||
return (String) items.get (index);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/** Returns number of items in Choice. */
|
||||
public int getItemCount ()
|
||||
{
|
||||
return items.size ();
|
||||
}
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/** Returns index of selected item; -1 if no item is selected. */
|
||||
public int getSelectedIndex ()
|
||||
{
|
||||
return selected;
|
||||
}
|
||||
|
||||
/** Returns currently selected item; null if no item is selected. */
|
||||
public synchronized String getSelectedItem ()
|
||||
{
|
||||
return selected == -1 ? null : (String) items.get (selected);
|
||||
}
|
||||
|
||||
/** Returns the currently selected item. */
|
||||
public synchronized Object[] getSelectedObjects ()
|
||||
{
|
||||
// The JCL says this can return null but that breaks the contract
|
||||
// for ItemSelectable.
|
||||
Object[] r;
|
||||
if (selected != -1)
|
||||
{
|
||||
r = new Object[1];
|
||||
r[0] = items.get (selected);
|
||||
}
|
||||
else
|
||||
r = new Object[0];
|
||||
return r;
|
||||
}
|
||||
|
||||
/** Inserts an item into this Choice. Existing items are shifted
|
||||
* upwards. If the new item is the only item, then it is selected.
|
||||
* If the currently selected item is shifted, then the first item is
|
||||
* selected. If the currently selected item is not shifted, then it
|
||||
* remains selected.
|
||||
* @param item The new item
|
||||
* @param index The position at which to insert it.
|
||||
*/
|
||||
public synchronized void insert (String item, int index)
|
||||
{
|
||||
if (index > items.size ())
|
||||
index = items.size ();
|
||||
items.add (index, item);
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.add (item, index);
|
||||
}
|
||||
|
||||
if (items.size () == 1 || selected >= index)
|
||||
select (0);
|
||||
}
|
||||
|
||||
/** Generates a String representation of this Choice's state. */
|
||||
protected String paramString ()
|
||||
{
|
||||
return ("Choice["
|
||||
+ "selected=" + selected
|
||||
+ "]");
|
||||
}
|
||||
|
||||
/** Process an event for this Choice
|
||||
* @param event The event the process.
|
||||
*/
|
||||
protected void processEvent (AWTEvent event)
|
||||
{
|
||||
if (event instanceof ItemEvent)
|
||||
processItemEvent ((ItemEvent) event);
|
||||
else
|
||||
super.processEvent (event);
|
||||
}
|
||||
|
||||
/** Process an item event for this Choice.
|
||||
* @param event The ItemEvent to process
|
||||
*/
|
||||
protected void processItemEvent (ItemEvent event)
|
||||
{
|
||||
if (listeners != null)
|
||||
listeners.itemStateChanged (event);
|
||||
}
|
||||
|
||||
/** Remove an item from this Choice. If several matches exist, the
|
||||
* first one is removed. If the removed item is selected, the the
|
||||
* first item is selected.
|
||||
* @param item The item string.
|
||||
*/
|
||||
public synchronized void remove (String item)
|
||||
{
|
||||
int size = items.size ();
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
if (item.equals (items.get (i)))
|
||||
{
|
||||
remove (i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException ("item \"" + item + "\" not in Choice");
|
||||
}
|
||||
|
||||
/** Remove an item from this Choice. If the removed item is
|
||||
* selected, the the first item is selected.
|
||||
* @param index Index of the item to remove
|
||||
*/
|
||||
public synchronized void remove (int index)
|
||||
{
|
||||
items.remove (index);
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.remove (index);
|
||||
}
|
||||
|
||||
if (index == selected)
|
||||
select (0);
|
||||
else if (selected > index)
|
||||
--selected;
|
||||
}
|
||||
|
||||
/** Remove all items from this choice. */
|
||||
public synchronized void removeAll ()
|
||||
{
|
||||
int oldsize = items.size ();
|
||||
items.clear ();
|
||||
selected = -1;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
for (int i = 0; i < oldsize; ++i)
|
||||
{
|
||||
// Always remove item 0.
|
||||
cp.remove (0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Remove an item listener.
|
||||
* @param listener Item listener to remove.
|
||||
*/
|
||||
public synchronized void removeItemListener (ItemListener listener)
|
||||
{
|
||||
listeners = AWTEventMulticaster.remove (listeners, listener);
|
||||
}
|
||||
|
||||
/** Select an item in this Choice.
|
||||
* @param item Name of the item to select.
|
||||
*/
|
||||
public synchronized void select (String item)
|
||||
{
|
||||
int size = items.size ();
|
||||
for (int i = 0; i < size; ++i)
|
||||
{
|
||||
if (item.equals (items.get (i)))
|
||||
{
|
||||
select (i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Select an item in this choice.
|
||||
* @param index Index of item to select.
|
||||
*/
|
||||
public synchronized void select (int index)
|
||||
{
|
||||
if (index < 0 || index > items.size ())
|
||||
throw new IllegalArgumentException ("index out of range");
|
||||
selected = index;
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.select (index);
|
||||
}
|
||||
}
|
||||
|
||||
private ItemListener listeners;
|
||||
|
||||
// List of items.
|
||||
ArrayList items;
|
||||
// Index of selected item.
|
||||
int selected;
|
||||
/**
|
||||
* Initializes a new instance of <code>Choice</code>.
|
||||
*/
|
||||
public
|
||||
Choice()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the number of items in the list.
|
||||
*
|
||||
* @return The number of items in the list.
|
||||
*/
|
||||
public int
|
||||
getItemCount()
|
||||
{
|
||||
return(pItems.size());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the number of items in the list.
|
||||
*
|
||||
* @return The number of items in the list.
|
||||
*
|
||||
* @deprecated This method is deprecated in favor of <code>getItemCount</code>.
|
||||
*/
|
||||
public int
|
||||
countItems()
|
||||
{
|
||||
return(pItems.size());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the item at the specified index in the list.
|
||||
*
|
||||
* @param index The index into the list to return the item from.
|
||||
*
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is invalid.
|
||||
*/
|
||||
public String
|
||||
getItem(int index)
|
||||
{
|
||||
return((String)pItems.elementAt(index));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds the specified item to this choice box.
|
||||
*
|
||||
* @param item The item to add.
|
||||
*/
|
||||
public synchronized void
|
||||
add(String item)
|
||||
{
|
||||
if (item == null)
|
||||
throw new IllegalArgumentException ("item must be non-null");
|
||||
|
||||
pItems.addElement(item);
|
||||
|
||||
int i = pItems.size () - 1;
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.add (item, i);
|
||||
}
|
||||
|
||||
if (i == 0)
|
||||
select (0);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds the specified item to this choice box.
|
||||
*
|
||||
* @param item The item to add.
|
||||
*/
|
||||
public synchronized void
|
||||
addItem(String item)
|
||||
{
|
||||
add(item);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/** Inserts an item into this Choice. Existing items are shifted
|
||||
* upwards. If the new item is the only item, then it is selected.
|
||||
* If the currently selected item is shifted, then the first item is
|
||||
* selected. If the currently selected item is not shifted, then it
|
||||
* remains selected.
|
||||
*
|
||||
* @param item The item to add.
|
||||
* @param index The index at which the item should be inserted.
|
||||
*/
|
||||
public synchronized void
|
||||
insert(String item, int index)
|
||||
{
|
||||
if (index > getItemCount ())
|
||||
index = getItemCount ();
|
||||
|
||||
pItems.insertElementAt(item, index);
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.add (item, index);
|
||||
}
|
||||
|
||||
if (getItemCount () == 1 || selectedIndex >= index)
|
||||
select (0);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specified item from the choice box.
|
||||
*
|
||||
* @param item The item to remove.
|
||||
*
|
||||
* @param IllegalArgumentException If the specified item doesn't exist.
|
||||
*/
|
||||
public synchronized void
|
||||
remove(String item)
|
||||
{
|
||||
int index = pItems.indexOf(item);
|
||||
if (index == -1)
|
||||
throw new IllegalArgumentException ("item \""
|
||||
+ item + "\" not found in Choice");
|
||||
remove(index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the item at the specified index from the choice box.
|
||||
*
|
||||
* @param index The index of the item to remove.
|
||||
*
|
||||
* @exception ArrayIndexOutOfBoundException If the index is not valid.
|
||||
*/
|
||||
public synchronized void
|
||||
remove(int index)
|
||||
{
|
||||
pItems.removeElementAt(index);
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.remove (index);
|
||||
}
|
||||
|
||||
if (index == selectedIndex)
|
||||
select (0);
|
||||
else if (selectedIndex > index)
|
||||
--selectedIndex;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes all of the objects from this choice box.
|
||||
*/
|
||||
public synchronized void
|
||||
removeAll()
|
||||
{
|
||||
int count = getItemCount();
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
// Always remove 0.
|
||||
remove(0);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the currently selected item, or null if no item is
|
||||
* selected.
|
||||
*
|
||||
* @return The currently selected item.
|
||||
*/
|
||||
public synchronized String
|
||||
getSelectedItem()
|
||||
{
|
||||
return (selectedIndex == -1
|
||||
? null
|
||||
: ((String)pItems.elementAt(selectedIndex)));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns an array with one row containing the selected item.
|
||||
*
|
||||
* @return An array containing the selected item.
|
||||
*/
|
||||
public synchronized Object[]
|
||||
getSelectedObjects()
|
||||
{
|
||||
if (selectedIndex == -1)
|
||||
return null;
|
||||
|
||||
Object[] objs = new Object[1];
|
||||
objs[0] = pItems.elementAt(selectedIndex);
|
||||
|
||||
return(objs);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the index of the selected item.
|
||||
*
|
||||
* @return The index of the selected item.
|
||||
*/
|
||||
public int
|
||||
getSelectedIndex()
|
||||
{
|
||||
return(selectedIndex);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Forces the item at the specified index to be selected.
|
||||
*
|
||||
* @param index The index of the row to make selected.
|
||||
*
|
||||
* @param IllegalArgumentException If the specified index is invalid.
|
||||
*/
|
||||
public synchronized void
|
||||
select(int index)
|
||||
{
|
||||
if ((index < 0) || (index > getItemCount()))
|
||||
throw new IllegalArgumentException("Bad index: " + index);
|
||||
|
||||
this.selectedIndex = index;
|
||||
if (peer != null)
|
||||
{
|
||||
ChoicePeer cp = (ChoicePeer) peer;
|
||||
cp.select (index);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Forces the named item to be selected.
|
||||
*
|
||||
* @param item The item to be selected.
|
||||
*
|
||||
* @exception IllegalArgumentException If the specified item does not exist.
|
||||
*/
|
||||
public synchronized void
|
||||
select(String item)
|
||||
{
|
||||
int index = pItems.indexOf(item);
|
||||
if (index >= 0)
|
||||
select(index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Creates the native peer for this object.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createChoice (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds the specified listener to the list of registered listeners for
|
||||
* this object.
|
||||
*
|
||||
* @param listener The listener to add.
|
||||
*/
|
||||
public synchronized void
|
||||
addItemListener(ItemListener listener)
|
||||
{
|
||||
item_listeners = AWTEventMulticaster.add(item_listeners, listener);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specified listener from the list of registered listeners for
|
||||
* this object.
|
||||
*
|
||||
* @param listener The listener to remove.
|
||||
*/
|
||||
public synchronized void
|
||||
removeItemListener(ItemListener listener)
|
||||
{
|
||||
item_listeners = AWTEventMulticaster.remove(item_listeners, listener);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Processes this event by invoking <code>processItemEvent()</code> if the
|
||||
* event is an instance of <code>ItemEvent</code>, otherwise the event
|
||||
* is passed to the superclass.
|
||||
*
|
||||
* @param event The event to process.
|
||||
*/
|
||||
protected void
|
||||
processEvent(AWTEvent event)
|
||||
{
|
||||
if (event instanceof ItemEvent)
|
||||
processItemEvent((ItemEvent)event);
|
||||
else
|
||||
super.processEvent(event);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Processes item event by dispatching to any registered listeners.
|
||||
*
|
||||
* @param event The event to process.
|
||||
*/
|
||||
protected void
|
||||
processItemEvent(ItemEvent event)
|
||||
{
|
||||
if (item_listeners != null)
|
||||
item_listeners.itemStateChanged(event);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this object.
|
||||
*
|
||||
* @return A debugging string for this object.
|
||||
*/
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return ("selectedIndex=" + selectedIndex + "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class Choice
|
||||
|
@ -1,122 +1,522 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Color.java -- Class representing a color in Java
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date March 15, 2000.
|
||||
* This class represents a color value in the AWT system.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Color implements java.io.Serializable
|
||||
{
|
||||
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* Written using on-line Java Platform 1.2 API Specification, as well
|
||||
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
|
||||
* Status: Stubbed; A very incomplete implementation.
|
||||
* Constant for the color white
|
||||
*/
|
||||
public static final Color white = new Color(255,255,255,255);
|
||||
|
||||
/**
|
||||
* Constant for the color light gray
|
||||
*/
|
||||
public static final Color lightGray = new Color(192,192,192,255);
|
||||
|
||||
/**
|
||||
* Constant for the color gray
|
||||
*/
|
||||
public static final Color gray = new Color(128,128,128,255);
|
||||
|
||||
/**
|
||||
* Constant for the color dark gray
|
||||
*/
|
||||
public static final Color darkGray = new Color(64,64,64,255);
|
||||
|
||||
/**
|
||||
* Constant for the color black
|
||||
*/
|
||||
public static final Color black = new Color(0,0,0,255);
|
||||
|
||||
/**
|
||||
* Constant for the color red
|
||||
*/
|
||||
public static final Color red = new Color(255,0,0,255);
|
||||
|
||||
/**
|
||||
* Constant for the color pink
|
||||
*/
|
||||
public static final Color pink = new Color(255, 175, 175,255);
|
||||
|
||||
/**
|
||||
* Constant for the color orange
|
||||
*/
|
||||
public static final Color orange = new Color(255, 200, 0,255);
|
||||
|
||||
/**
|
||||
* Constant for the color yellow
|
||||
*/
|
||||
public static final Color yellow = new Color(255,255,0,255);
|
||||
|
||||
/**
|
||||
* Constant for the color green
|
||||
*/
|
||||
public static final Color green = new Color(0,255,0,255);
|
||||
|
||||
/**
|
||||
* Constant for the color magenta
|
||||
*/
|
||||
public static final Color magenta = new Color(255,0,255,255);
|
||||
|
||||
/**
|
||||
* Constant for the color cyan
|
||||
*/
|
||||
public static final Color cyan = new Color(0,255,255,255);
|
||||
|
||||
/**
|
||||
* Constant for the color blue
|
||||
*/
|
||||
public static final Color blue = new Color(0,0,255,255);
|
||||
|
||||
// Serialization Constant
|
||||
private static final long serialVersionUID = 118526816881161077L;
|
||||
|
||||
// Masks for individual color components
|
||||
private static final int redmask = 255 << 16;
|
||||
private static final int greenmask = 255 << 8;
|
||||
private static final int bluemask = 255;
|
||||
private static final int alphamask = 255 << 24;
|
||||
|
||||
private static final int BRIGHT_STEP = 0x30;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
public class Color extends Object implements Paint, java.io.Serializable
|
||||
/**
|
||||
* @serial The RGB value of the color.
|
||||
*/
|
||||
private int value = 0xFFFFFFFF;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Static Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Converts the specified string to a number and creates a new instance
|
||||
* of <code>Color</code> from the value.
|
||||
*
|
||||
* @param str The numeric color string.
|
||||
*
|
||||
* @return A new instance of <code>Color</code> for the string.
|
||||
*
|
||||
* @exception NumberFormatException If the string cannot be parsed.
|
||||
*/
|
||||
public static Color
|
||||
decode(String str) throws NumberFormatException
|
||||
{
|
||||
public static final Color white = new Color(0xFFFFFFFF, true);
|
||||
public static final Color lightGray = new Color(0xFFC0C0C0, true);
|
||||
public static final Color gray = new Color(0xFF808080, true);
|
||||
public static final Color darkGray = new Color(0xFF404040, true);
|
||||
public static final Color black = new Color(0xFF000000, true);
|
||||
public static final Color red = new Color(0xFFFF0000, true);
|
||||
public static final Color pink = new Color(0xFFFFAFAF, true);
|
||||
public static final Color orange = new Color(0xFFFFC800, true);
|
||||
public static final Color yellow = new Color(0xFFFFFF00, true);
|
||||
public static final Color green = new Color(0xFF00FF00, true);
|
||||
public static final Color magenta = new Color(0xFFFF00FF, true);
|
||||
public static final Color cyan = new Color(0xFF00FFFF, true);
|
||||
public static final Color blue = new Color(0xFF0000FF, true);
|
||||
|
||||
// The internal sRGB representation.
|
||||
// Alpha is bits 24-31, if hasalpha is true.
|
||||
// Red is bits 16-23; Green is bits 8-15; Blue is bits 0-7.
|
||||
int rgba = 0xFFFFFFFF;
|
||||
|
||||
public Color(int rgb)
|
||||
{
|
||||
this(rgb, false);
|
||||
}
|
||||
|
||||
public Color(int rgba, boolean hasalpha)
|
||||
{
|
||||
this.rgba = rgba;
|
||||
if (!hasalpha)
|
||||
rgba |= 0xFF000000;
|
||||
}
|
||||
|
||||
public Color(int r, int g, int b)
|
||||
{
|
||||
this(r, g, b, 0xFF);
|
||||
}
|
||||
|
||||
public Color(int r, int g, int b, int a)
|
||||
{
|
||||
rgba = a << 24 | ((r << 16) & 0x00FF0000) | ((g << 8) & 0x0000FF00) |
|
||||
(b & 0x000000FF);
|
||||
}
|
||||
|
||||
public int getRed()
|
||||
{
|
||||
return (rgba >> 16) & 0xFF;
|
||||
}
|
||||
|
||||
public int getGreen()
|
||||
{
|
||||
return (rgba >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
public int getBlue()
|
||||
{
|
||||
return rgba & 0xFF;
|
||||
}
|
||||
|
||||
public int getAlpha()
|
||||
{
|
||||
return (rgba >> 24) & 0xFF;
|
||||
}
|
||||
|
||||
public int getRGB()
|
||||
{
|
||||
return rgba;
|
||||
}
|
||||
|
||||
static final int BRIGHT_STEP = 0x30;
|
||||
|
||||
public Color brighter()
|
||||
{
|
||||
return new Color(Math.min(255, getRed() + BRIGHT_STEP),
|
||||
Math.min(255, getGreen() + BRIGHT_STEP),
|
||||
Math.min(255, getBlue() + BRIGHT_STEP),
|
||||
getAlpha());
|
||||
}
|
||||
|
||||
public Color darker()
|
||||
{
|
||||
return new Color(Math.max(0, getRed() - BRIGHT_STEP),
|
||||
Math.max(0, getGreen() - BRIGHT_STEP),
|
||||
Math.max(0, getBlue() - BRIGHT_STEP),
|
||||
getAlpha());
|
||||
}
|
||||
|
||||
public int hashCode()
|
||||
{
|
||||
return rgba;
|
||||
}
|
||||
|
||||
public int getTransparency()
|
||||
{
|
||||
if (getAlpha() == 0xFF)
|
||||
return Transparency.OPAQUE;
|
||||
else
|
||||
return Transparency.TRANSLUCENT;
|
||||
}
|
||||
Integer i = Integer.decode(str);
|
||||
return(new Color(i.intValue()));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a new instance of <code>Color</code> from the value of
|
||||
* the system property named by the specified string. If the property
|
||||
* does not exist, or cannot be parsed, then <code>null</code> will be
|
||||
* returned.
|
||||
*
|
||||
* @param prop The system property to retrieve.
|
||||
*/
|
||||
public static Color
|
||||
getColor(String prop)
|
||||
{
|
||||
return(getColor(prop, null));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a new instance of <code>Color</code> from the value of the
|
||||
* system property named by the specified string. If the property does
|
||||
* not exist, or cannot be parsed, then the default RGB value will be
|
||||
* used to create a return value.
|
||||
*
|
||||
* @param prop The system property to retrieve.
|
||||
* @param defrgb The default RGB value.
|
||||
*/
|
||||
public static Color
|
||||
getColor(String prop, int defrgb)
|
||||
{
|
||||
return(getColor(prop, new Color(defrgb)));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a new instance of <code>Color</code> from the value of the
|
||||
* system property named by the specified string. If the property does
|
||||
* not exist, or cannot be parsed, then the default color value will be
|
||||
* returned
|
||||
*
|
||||
* @param prop The system property to retrieve.
|
||||
* @param defcolor The default color
|
||||
*/
|
||||
public static Color
|
||||
getColor(String prop, Color defcolor)
|
||||
{
|
||||
String val = System.getProperty(prop);
|
||||
if (val == null)
|
||||
return(defcolor);
|
||||
|
||||
try
|
||||
{
|
||||
return(decode(val));
|
||||
}
|
||||
catch(NumberFormatException e)
|
||||
{
|
||||
return(defcolor);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Converts from the HSB (hue, saturation, brightness) color model to
|
||||
* the RGB (red, green, blue) color model.
|
||||
*
|
||||
* @param hue The hue of the HSB value.
|
||||
* @param saturation The saturation of the HSB value.
|
||||
* @param brightness The brightness of the HSB value.
|
||||
*
|
||||
* @return The RGB value.
|
||||
*/
|
||||
public static int
|
||||
HSBtoRGB(float hue, float saturation, float brightness)
|
||||
{
|
||||
// FIXME: Implement
|
||||
throw new RuntimeException("Not implemented yet");
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Converts from the RGB (red, green, blue) color model to the HSB
|
||||
* (hue, saturation, brightness) color model.
|
||||
*
|
||||
* @param red The red part of the RGB value.
|
||||
* @param green The green part of the RGB value.
|
||||
* @param blue The blue part of the RGB value.
|
||||
* @param hsbvals An array of three floats used for storing the HSB values,
|
||||
* or <code>null</code> if this return mechanism is not used.
|
||||
*
|
||||
* @return The HSB value.
|
||||
*/
|
||||
public static float[]
|
||||
RGBtoHSB(int red, int green, int blue, float hsbvals[])
|
||||
{
|
||||
// FIXME: Implement
|
||||
throw new RuntimeException("Not implemented yet");
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a new instance of <code>Color</code> based on the specified
|
||||
* HSB values.
|
||||
*
|
||||
* @param hue The hue of the HSB value.
|
||||
* @param saturation The saturation of the HSB value.
|
||||
* @param brightness The brightness of the HSB value.
|
||||
*
|
||||
* @return The new <code>Color</code> object.
|
||||
*/
|
||||
public static Color
|
||||
getHSBColor(float hue, float saturation, float brightness)
|
||||
{
|
||||
return(new Color(HSBtoRGB(hue, saturation, brightness)));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Color</code> using the specified
|
||||
* red, green, and blue values, which must be given as integers in the
|
||||
* range of 0-255.
|
||||
*
|
||||
* @param red The red component of the RGB value.
|
||||
* @param green The green component of the RGB value.
|
||||
* @param blue The blue component of the RGB value.
|
||||
*
|
||||
* @exception IllegalArgumentException If the values are out of range.
|
||||
*/
|
||||
public
|
||||
Color(int red, int green, int blue)
|
||||
{
|
||||
if ((red < 0) || (red > 255) || (green < 0) || (green > 255) ||
|
||||
(blue < 0) || (blue > 255))
|
||||
throw new IllegalArgumentException("Bad RGB values");
|
||||
|
||||
value = blue + (green << 8) + (red << 16);
|
||||
}
|
||||
|
||||
public
|
||||
Color(int red, int green, int blue, int alpha)
|
||||
{
|
||||
if ((red < 0) || (red > 255) || (green < 0) || (green > 255) ||
|
||||
(blue < 0) || (blue > 255))
|
||||
throw new IllegalArgumentException("Bad RGB values");
|
||||
|
||||
value = blue + (green << 8) + (red << 16) + (alpha << 24);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Color</code> using the specified
|
||||
* RGB value. The blue value is in bits 0-7, green in bits 8-15, and
|
||||
* red in bits 16-23. The other bits are ignored.
|
||||
*
|
||||
* @param value The RGB value
|
||||
*/
|
||||
public
|
||||
Color(int value)
|
||||
{
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public
|
||||
Color(int value, boolean hasalpha)
|
||||
{
|
||||
this.value = value;
|
||||
if (! hasalpha)
|
||||
this.value |= 0xFF000000;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Color</code> using the specified
|
||||
* RGB values. These must be in the range of 0.0-1.0.
|
||||
*
|
||||
* @param red The red component of the RGB value.
|
||||
* @param green The green component of the RGB value.
|
||||
* @param blue The blue component of the RGB value.
|
||||
*
|
||||
* @exception IllegalArgumentException If the values are out of range.
|
||||
*/
|
||||
public
|
||||
Color(float red, float green, float blue)
|
||||
{
|
||||
if ((red < 0.0) || (red > 1.0) || (green < 0.0) || (green > 1.0) ||
|
||||
(blue < 0.0) || (blue > 1.0))
|
||||
throw new IllegalArgumentException("Bad RGB values");
|
||||
|
||||
int redval = (int)(255 * red);
|
||||
int greenval = (int)(255 * green);
|
||||
int blueval = (int)(255 * blue);
|
||||
|
||||
value = blueval + (greenval << 8) + (redval << 16);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the red value for this color.
|
||||
*
|
||||
* @return The red value for this color.
|
||||
*/
|
||||
public int
|
||||
getRed()
|
||||
{
|
||||
int redval = (value & redmask) >> 16;
|
||||
|
||||
return(redval);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the green value for this color.
|
||||
*
|
||||
* @return The green value for this color.
|
||||
*/
|
||||
public int
|
||||
getGreen()
|
||||
{
|
||||
int greenval = (value & greenmask) >> 8;
|
||||
|
||||
return(greenval);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the blue value for this color.
|
||||
*
|
||||
* @return The blue value for this color.
|
||||
*/
|
||||
public int
|
||||
getBlue()
|
||||
{
|
||||
int blueval = (value & bluemask);
|
||||
|
||||
return(blueval);
|
||||
}
|
||||
|
||||
public int
|
||||
getAlpha()
|
||||
{
|
||||
int alphaval = (value & alphamask);
|
||||
|
||||
return(alphaval);
|
||||
}
|
||||
|
||||
public int
|
||||
getTransparency()
|
||||
{
|
||||
if (getAlpha() == 0xFF)
|
||||
return Transparency.OPAQUE;
|
||||
else
|
||||
return Transparency.TRANSLUCENT;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the RGB value for this color. The blue value will be in bits
|
||||
* 0-7, green in 8-15, and red in 6-23. The upper bits should be ignored.
|
||||
*
|
||||
* @return The RGB value for this color.
|
||||
*/
|
||||
public int
|
||||
getRGB()
|
||||
{
|
||||
return(value);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a brighter version of this color. This is done by increasing
|
||||
* the RGB values by an arbitrary scale factor. Note that this method
|
||||
* and the <code>darker()</code> method are not necessarily inverses.
|
||||
*
|
||||
* @return A brighter version of this color.
|
||||
*/
|
||||
public Color
|
||||
brighter()
|
||||
{
|
||||
return new Color(Math.min(255, getRed() + BRIGHT_STEP),
|
||||
Math.min(255, getGreen() + BRIGHT_STEP),
|
||||
Math.min(255, getBlue() + BRIGHT_STEP),
|
||||
getAlpha());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a darker version of this color. This is done by decreasing
|
||||
* the RGB values by an arbitrary scale factor. Note that this method
|
||||
* and the <code>brighter()</code> method are not necessarily inverses.
|
||||
*
|
||||
* @return A darker version of this color.
|
||||
*/
|
||||
public Color
|
||||
darker()
|
||||
{
|
||||
return new Color(Math.max(0, getRed() - BRIGHT_STEP),
|
||||
Math.max(0, getGreen() - BRIGHT_STEP),
|
||||
Math.max(0, getBlue() - BRIGHT_STEP),
|
||||
getAlpha());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a hash value for this color.
|
||||
*
|
||||
* @return A hash value for this color.
|
||||
*/
|
||||
public int
|
||||
hashCode()
|
||||
{
|
||||
return(value);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests this object for equality against the specified object. This will
|
||||
* be true if and only if the specified object is an instance of
|
||||
* <code>Color</code> and has the same red, green, and blue values as
|
||||
* this object.
|
||||
*
|
||||
* @return <code>true</code> if the specified object is equal to this one,
|
||||
* <code>false</code> otherwise.
|
||||
*/
|
||||
public boolean
|
||||
equals(Object obj)
|
||||
{
|
||||
if (!(obj instanceof Color))
|
||||
return(false);
|
||||
|
||||
Color c = (Color)obj;
|
||||
return value == c.value;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string representation of this object.
|
||||
*
|
||||
* @return A string representation of this object.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return(getClass().getName() + "(red=" + getRed() + ",green=" + getGreen() +
|
||||
",blue=" + getBlue() + ")");
|
||||
}
|
||||
|
||||
} // class Color
|
||||
|
||||
|
@ -1,39 +1,126 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 1999, 2000, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
/* A somewhat incomplete placeholder. */
|
||||
|
||||
/**
|
||||
* This class represents various predefined cursor types.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Cursor implements java.io.Serializable
|
||||
{
|
||||
public static final int DEFAULT_CURSOR = 0,
|
||||
CROSSHAIR_CURSOR = 1,
|
||||
TEXT_CURSOR = 2,
|
||||
WAIT_CURSOR = 3,
|
||||
SW_RESIZE_CURSOR = 4,
|
||||
SE_RESIZE_CURSOR = 5,
|
||||
NW_RESIZE_CURSOR = 6,
|
||||
NE_RESIZE_CURSOR = 7,
|
||||
N_RESIZE_CURSOR = 8,
|
||||
S_RESIZE_CURSOR = 9,
|
||||
W_RESIZE_CURSOR = 10,
|
||||
E_RESIZE_CURSOR = 11,
|
||||
HAND_CURSOR = 12,
|
||||
MOVE_CURSOR = 13,
|
||||
CUSTOM_CURSOR = 0xFFFFFFFF;
|
||||
/**
|
||||
* Constant for the system default cursor type
|
||||
*/
|
||||
public static final int DEFAULT_CURSOR = 0;
|
||||
|
||||
/**
|
||||
* Constant for a cross-hair cursor.
|
||||
*/
|
||||
public static final int CROSSHAIR_CURSOR = 1;
|
||||
|
||||
/**
|
||||
* Constant for a cursor over a text field.
|
||||
*/
|
||||
public static final int TEXT_CURSOR = 2;
|
||||
|
||||
/**
|
||||
* Constant for a cursor to display while waiting for an action to complete.
|
||||
*/
|
||||
public static final int WAIT_CURSOR = 3;
|
||||
|
||||
/**
|
||||
* Cursor used over SW corner of window decorations.
|
||||
*/
|
||||
public static final int SW_RESIZE_CURSOR = 4;
|
||||
|
||||
/**
|
||||
* Cursor used over SE corner of window decorations.
|
||||
*/
|
||||
public static final int SE_RESIZE_CURSOR = 5;
|
||||
|
||||
/**
|
||||
* Cursor used over NW corner of window decorations.
|
||||
*/
|
||||
public static final int NW_RESIZE_CURSOR = 6;
|
||||
|
||||
/**
|
||||
* Cursor used over NE corner of window decorations.
|
||||
*/
|
||||
public static final int NE_RESIZE_CURSOR = 7;
|
||||
|
||||
/**
|
||||
* Cursor used over N edge of window decorations.
|
||||
*/
|
||||
public static final int N_RESIZE_CURSOR = 8;
|
||||
|
||||
/**
|
||||
* Cursor used over S edge of window decorations.
|
||||
*/
|
||||
public static final int S_RESIZE_CURSOR = 9;
|
||||
|
||||
/**
|
||||
* Cursor used over W edge of window decorations.
|
||||
*/
|
||||
public static final int W_RESIZE_CURSOR = 10;
|
||||
|
||||
/**
|
||||
* Cursor used over E edge of window decorations.
|
||||
*/
|
||||
public static final int E_RESIZE_CURSOR = 11;
|
||||
|
||||
/**
|
||||
* Constant for a hand cursor.
|
||||
*/
|
||||
public static final int HAND_CURSOR = 12;
|
||||
|
||||
/**
|
||||
* Constant for a cursor used during window move operations.
|
||||
*/
|
||||
public static final int MOVE_CURSOR = 13;
|
||||
|
||||
public static final int CUSTOM_CURSOR = 0xFFFFFFFF;
|
||||
|
||||
private static final int PREDEFINED_COUNT = 14;
|
||||
|
||||
protected static Cursor[] predefined = new Cursor[PREDEFINED_COUNT];
|
||||
protected String name;
|
||||
|
||||
/**
|
||||
* @serial The numeric id of this cursor.
|
||||
*/
|
||||
int type;
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Cursor</code> with the specified
|
||||
* type.
|
||||
*
|
||||
* @param type The cursor type.
|
||||
*/
|
||||
public Cursor(int type)
|
||||
{
|
||||
if (type < 0 || type >= PREDEFINED_COUNT)
|
||||
@ -43,14 +130,25 @@ public class Cursor implements java.io.Serializable
|
||||
}
|
||||
|
||||
/** This constructor is used internally only.
|
||||
* Application code should call Toolkit.createCustomCursor().
|
||||
*/
|
||||
* Application code should call Toolkit.createCustomCursor().
|
||||
*/
|
||||
protected Cursor(String name)
|
||||
{
|
||||
this.name = name;
|
||||
this.type = CUSTOM_CURSOR;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an instance of <code>Cursor</code> for one of the specified
|
||||
* predetermined types.
|
||||
*
|
||||
* @param type The type contant from this class.
|
||||
*
|
||||
* @return The requested predefined cursor.
|
||||
*
|
||||
* @exception IllegalArgumentException If the constant is not one of the
|
||||
* predefined cursor type constants from this class.
|
||||
*/
|
||||
public static Cursor getPredefinedCursor(int type)
|
||||
{
|
||||
if (type < 0 || type >= PREDEFINED_COUNT)
|
||||
@ -67,11 +165,21 @@ public class Cursor implements java.io.Serializable
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an instance of the system default cursor type.
|
||||
*
|
||||
* @return The system default cursor.
|
||||
*/
|
||||
public static Cursor getDefaultCursor()
|
||||
{
|
||||
return getPredefinedCursor(0);
|
||||
return getPredefinedCursor(DEFAULT_CURSOR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numeric type identifier for this cursor.
|
||||
*
|
||||
* @return The cursor id.
|
||||
*/
|
||||
public int getType()
|
||||
{
|
||||
return type;
|
||||
|
@ -1,163 +1,303 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
/* Dialog.java -- An AWT dialog box
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.DialogPeer;
|
||||
import java.awt.peer.WindowPeer;
|
||||
import java.awt.peer.ContainerPeer;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 17, 2001
|
||||
* A dialog box widget class.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
*/
|
||||
public class Dialog extends Window implements java.io.Serializable
|
||||
{
|
||||
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public class Dialog extends Window
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = 5920926903803293709L;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* @serial Indicates whether or not this dialog box is modal.
|
||||
*/
|
||||
private boolean modal;
|
||||
|
||||
/**
|
||||
* @serial Indicates whether or not this dialog box is resizable.
|
||||
*/
|
||||
private boolean resizable;
|
||||
|
||||
/**
|
||||
* @serial The title string for this dialog box, which can be
|
||||
* <code>null</code>.
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Dialog</code> with the specified
|
||||
* parent, that is not resizable and not modal, and which has no title.
|
||||
*
|
||||
* @param parent The parent frame of this dialog box.
|
||||
*/
|
||||
public
|
||||
Dialog(Frame parent)
|
||||
{
|
||||
public Dialog (Dialog owner)
|
||||
{
|
||||
this (owner, "", false);
|
||||
}
|
||||
|
||||
public Dialog (Dialog owner, String title)
|
||||
{
|
||||
this (owner, title, false);
|
||||
}
|
||||
|
||||
public Dialog (Dialog owner, String title, boolean modal)
|
||||
{
|
||||
super (owner);
|
||||
this.modal = modal;
|
||||
this.title = title;
|
||||
setLayout (new BorderLayout ());
|
||||
}
|
||||
|
||||
public Dialog (Frame owner)
|
||||
{
|
||||
this (owner, "", false);
|
||||
}
|
||||
|
||||
public Dialog (Frame owner, boolean modal)
|
||||
{
|
||||
this (owner, "", modal);
|
||||
}
|
||||
|
||||
public Dialog (Frame owner, String title)
|
||||
{
|
||||
this (owner, title, false);
|
||||
}
|
||||
|
||||
public Dialog (Frame owner, String title, boolean modal)
|
||||
{
|
||||
super (owner);
|
||||
this.modal = modal;
|
||||
this.title = title;
|
||||
setLayout (new BorderLayout ());
|
||||
}
|
||||
|
||||
/** Create the peer if it does not already exist. */
|
||||
public void addNotify ()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createDialog (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
public boolean isModal ()
|
||||
{
|
||||
return modal;
|
||||
}
|
||||
|
||||
public void setModal (boolean modal)
|
||||
{
|
||||
this.modal = modal;
|
||||
}
|
||||
|
||||
public String getTitle ()
|
||||
{
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle (String title)
|
||||
{
|
||||
this.title = title;
|
||||
if (peer != null)
|
||||
{
|
||||
DialogPeer d = (DialogPeer) peer;
|
||||
d.setTitle (title);
|
||||
}
|
||||
}
|
||||
|
||||
public void show ()
|
||||
{
|
||||
boolean vis = isVisible ();
|
||||
super.show ();
|
||||
if (modal && vis)
|
||||
{
|
||||
// Don't return until something happens. We lock on the peer
|
||||
// instead of `this' so that we don't interfere with whatever
|
||||
// locks the caller might want to use.
|
||||
synchronized (peer)
|
||||
{
|
||||
try
|
||||
{
|
||||
peer.wait ();
|
||||
}
|
||||
catch (InterruptedException _)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void hide ()
|
||||
{
|
||||
super.hide ();
|
||||
synchronized (peer)
|
||||
{
|
||||
peer.notify ();
|
||||
}
|
||||
}
|
||||
|
||||
public void dispose ()
|
||||
{
|
||||
super.dispose ();
|
||||
synchronized (peer)
|
||||
{
|
||||
peer.notify ();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isResizable ()
|
||||
{
|
||||
return resizable;
|
||||
}
|
||||
|
||||
public void setResizable (boolean resizable)
|
||||
{
|
||||
this.resizable = resizable;
|
||||
if (peer != null)
|
||||
{
|
||||
DialogPeer d = (DialogPeer) peer;
|
||||
d.setResizable (resizable);
|
||||
}
|
||||
}
|
||||
|
||||
protected String paramString ()
|
||||
{
|
||||
return ("Dialog["
|
||||
+ title + ","
|
||||
+ modal + ","
|
||||
+ resizable + "]");
|
||||
}
|
||||
|
||||
// True if dialog is modal.
|
||||
private boolean modal;
|
||||
// True if dialog is resizable by the user.
|
||||
private boolean resizable = false;
|
||||
// Dialog title.
|
||||
private String title;
|
||||
this(parent, "", false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Dialog</code> with the specified
|
||||
* parent and modality, that is not resizable and which has no title.
|
||||
*
|
||||
* @param parent The parent frame of this dialog box.
|
||||
* @param modal <true> if this dialog box is modal, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public
|
||||
Dialog(Frame parent, boolean modal)
|
||||
{
|
||||
this(parent, "", modal);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Dialog</code> with the specified
|
||||
* parent, that is not resizable and not modal, and which has the specified
|
||||
* title.
|
||||
*
|
||||
* @param parent The parent frame of this dialog box.
|
||||
* @param title The title string for this dialog box.
|
||||
*/
|
||||
public
|
||||
Dialog(Frame parent, String title)
|
||||
{
|
||||
this(parent, title, false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Dialog</code> with the specified,
|
||||
* parent, title, and modality, that is not resizable.
|
||||
*
|
||||
* @param parent The parent frame of this dialog box.
|
||||
* @param title The title string for this dialog box.
|
||||
* @param modal <true> if this dialog box is modal, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public
|
||||
Dialog(Frame parent, String title, boolean modal)
|
||||
{
|
||||
super(parent);
|
||||
|
||||
this.title = title;
|
||||
this.modal = modal;
|
||||
resizable = false;
|
||||
|
||||
setLayout(new BorderLayout());
|
||||
}
|
||||
|
||||
public
|
||||
Dialog (Dialog owner)
|
||||
{
|
||||
this (owner, "", false);
|
||||
}
|
||||
|
||||
public
|
||||
Dialog (Dialog owner, String title)
|
||||
{
|
||||
this (owner, title, false);
|
||||
}
|
||||
|
||||
public
|
||||
Dialog (Dialog owner, String title, boolean modal)
|
||||
{
|
||||
super (owner);
|
||||
this.modal = modal;
|
||||
this.title = title;
|
||||
setLayout (new BorderLayout ());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the title of this dialog box.
|
||||
*
|
||||
* @return The title of this dialog box.
|
||||
*/
|
||||
public String
|
||||
getTitle()
|
||||
{
|
||||
return(title);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the title of this dialog box to the specified string.
|
||||
*
|
||||
* @param title The new title.
|
||||
*/
|
||||
public synchronized void
|
||||
setTitle(String title)
|
||||
{
|
||||
this.title = title;
|
||||
if (peer != null)
|
||||
{
|
||||
DialogPeer d = (DialogPeer) peer;
|
||||
d.setTitle (title);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not this dialog box is modal.
|
||||
*
|
||||
* @return <code>true</code> if this dialog box is modal,
|
||||
* <code>false</code> otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isModal()
|
||||
{
|
||||
return(modal);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Changes the modality of this dialog box. This can only be done before
|
||||
* the peer is created.
|
||||
*
|
||||
* @param modal <code>true</code> to make this dialog box modal,
|
||||
* <code>false</code> to make it non-modal.
|
||||
*/
|
||||
public void
|
||||
setModal(boolean modal)
|
||||
{
|
||||
this.modal = modal;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not this dialog box is resizable.
|
||||
*
|
||||
* @return <code>true</code> if this dialog is resizable, <code>false</code>,
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isResizable()
|
||||
{
|
||||
return(resizable);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Changes the resizability of this dialog box.
|
||||
*
|
||||
* @param resizable <code>true</code> to make this dialog resizable,
|
||||
* <code>false</code> to make it non-resizable.
|
||||
*/
|
||||
public synchronized void
|
||||
setResizable(boolean resizable)
|
||||
{
|
||||
this.resizable = resizable;
|
||||
if (peer != null)
|
||||
{
|
||||
DialogPeer d = (DialogPeer) peer;
|
||||
d.setResizable (resizable);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Creates this object's native peer.
|
||||
*/
|
||||
public synchronized void
|
||||
addNotify()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createDialog (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Makes this dialog visible and brings it to the front.
|
||||
*/
|
||||
public void
|
||||
show()
|
||||
{
|
||||
super.show();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this component.
|
||||
*
|
||||
* @return A debugging string for this component.
|
||||
*/
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return ("title+" + title + ",modal=" + modal +
|
||||
",resizable=" + resizable + "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class Dialog
|
||||
|
||||
|
@ -1,119 +1,303 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
/* FileDialog.java -- A filename selection dialog box
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.FileDialogPeer;
|
||||
import java.awt.peer.DialogPeer;
|
||||
import java.awt.peer.WindowPeer;
|
||||
import java.awt.peer.ContainerPeer;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
import java.io.FilenameFilter;
|
||||
|
||||
/**
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date April 20, 2001
|
||||
* This class implements a file selection dialog box widget.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
*/
|
||||
public class FileDialog extends Dialog implements java.io.Serializable
|
||||
{
|
||||
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public class FileDialog extends Dialog
|
||||
/**
|
||||
* Indicates that the purpose of the dialog is for opening a file.
|
||||
*/
|
||||
public static final int LOAD = 0;
|
||||
|
||||
/**
|
||||
* Indicates that the purpose of the dialog is for saving a file.
|
||||
*/
|
||||
public static final int SAVE = 1;
|
||||
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = 5035145889651310422L;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* @serial The directory for this file dialog.
|
||||
*/
|
||||
private String dir;
|
||||
|
||||
/**
|
||||
* @serial The filename for this file dialog
|
||||
*/
|
||||
private String file;
|
||||
|
||||
/**
|
||||
* @serial The filter for selecting filenames to display
|
||||
*/
|
||||
private FilenameFilter filter;
|
||||
|
||||
/**
|
||||
* @serial The mode of this dialog, either <code>LOAD</code> or
|
||||
* <code>SAVE</code>.
|
||||
*/
|
||||
private int mode;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>FileDialog</code> with the
|
||||
* specified parent. This dialog will have no title and will be for
|
||||
* loading a file.
|
||||
*
|
||||
* @param parent The parent frame for this dialog.
|
||||
*/
|
||||
public
|
||||
FileDialog(Frame parent)
|
||||
{
|
||||
public static int LOAD = 0;
|
||||
public static int SAVE = 1;
|
||||
|
||||
public FileDialog (Frame parent)
|
||||
{
|
||||
this (parent, "", LOAD);
|
||||
}
|
||||
|
||||
public FileDialog (Frame parent, String title)
|
||||
{
|
||||
this (parent, title, LOAD);
|
||||
}
|
||||
|
||||
public FileDialog (Frame parent, String title, int mode)
|
||||
{
|
||||
super (parent, title, true);
|
||||
if (mode != LOAD && mode != SAVE)
|
||||
throw new IllegalArgumentException ("unknown mode: " + mode);
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public void addNotify ()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createFileDialog (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
public String getDirectory ()
|
||||
{
|
||||
return dir;
|
||||
}
|
||||
|
||||
public String getFile ()
|
||||
{
|
||||
return file;
|
||||
}
|
||||
|
||||
public FilenameFilter getFilenameFilter ()
|
||||
{
|
||||
return filter;
|
||||
}
|
||||
|
||||
public int getMode ()
|
||||
{
|
||||
return mode;
|
||||
}
|
||||
|
||||
protected String paramString ()
|
||||
{
|
||||
return ("FileDialog[mode=" + mode
|
||||
+ ",dir=" + dir
|
||||
+ ",file=" + file + "]");
|
||||
}
|
||||
|
||||
public void setDirectory (String dir)
|
||||
{
|
||||
this.dir = dir;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setDirectory (dir);
|
||||
}
|
||||
}
|
||||
|
||||
public void setFile (String file)
|
||||
{
|
||||
this.file = file;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setFile (file);
|
||||
}
|
||||
}
|
||||
|
||||
public void setFilenameFilter (FilenameFilter filter)
|
||||
{
|
||||
this.filter = filter;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setFilenameFilter (filter);
|
||||
}
|
||||
}
|
||||
|
||||
public void setMode (int mode)
|
||||
{
|
||||
if (mode != LOAD && mode != SAVE)
|
||||
throw new IllegalArgumentException ("unknown mode: " + mode);
|
||||
this.mode = mode;
|
||||
// FIXME: update peer?
|
||||
}
|
||||
|
||||
// Names here from serialization spec.
|
||||
private int mode;
|
||||
private String dir;
|
||||
private String file;
|
||||
private FilenameFilter filter;
|
||||
this(parent, "", LOAD);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initialized a new instance of <code>FileDialog</code> with the
|
||||
* specified parent and title. This dialog will be for opening a file.
|
||||
*
|
||||
* @param parent The parent frame for this dialog.
|
||||
* @param title The title for this dialog.
|
||||
*/
|
||||
public
|
||||
FileDialog(Frame parent, String title)
|
||||
{
|
||||
this(parent, title, LOAD);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initialized a new instance of <code>FileDialog</code> with the
|
||||
* specified parent, title, and mode.
|
||||
*
|
||||
* @param parent The parent frame for this dialog.
|
||||
* @param title The title for this dialog.
|
||||
* @param mode The mode of the dialog, either <code>LOAD</code> or
|
||||
* <code>SAVE</code>.
|
||||
*/
|
||||
public
|
||||
FileDialog(Frame parent, String title, int mode)
|
||||
{
|
||||
super(parent, title, true);
|
||||
|
||||
if ((mode != LOAD) && (mode != SAVE))
|
||||
throw new IllegalArgumentException("Bad mode: " + mode);
|
||||
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the mode of this dialog, either <code>LOAD</code> or
|
||||
* <code>SAVE</code>.
|
||||
*
|
||||
* @return The mode of this dialog.
|
||||
*/
|
||||
public int
|
||||
getMode()
|
||||
{
|
||||
return(mode);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the mode of this dialog to either <code>LOAD</code> or
|
||||
* <code>SAVE</code>. This method is only effective before the native
|
||||
* peer is created.
|
||||
*
|
||||
* @param mode The new mode of this file dialog.
|
||||
*/
|
||||
public void
|
||||
setMode(int mode)
|
||||
{
|
||||
if ((mode != LOAD) && (mode != SAVE))
|
||||
throw new IllegalArgumentException("Bad mode: " + mode);
|
||||
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the directory for this file dialog.
|
||||
*
|
||||
* @return The directory for this file dialog.
|
||||
*/
|
||||
public String
|
||||
getDirectory()
|
||||
{
|
||||
return(dir);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the directory for this file dialog.
|
||||
*
|
||||
* @param dir The new directory for this file dialog.
|
||||
*/
|
||||
public synchronized void
|
||||
setDirectory(String dir)
|
||||
{
|
||||
this.dir = dir;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setDirectory (dir);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the file that is selected in this dialog.
|
||||
*
|
||||
* @return The file that is selected in this dialog.
|
||||
*/
|
||||
public String
|
||||
getFile()
|
||||
{
|
||||
return(file);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the selected file for this dialog.
|
||||
*
|
||||
* @param file The selected file for this dialog.
|
||||
*/
|
||||
public synchronized void
|
||||
setFile(String file)
|
||||
{
|
||||
this.file = file;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setFile (file);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the filename filter being used by this dialog.
|
||||
*
|
||||
* @param The filename filter being used by this dialog.
|
||||
*/
|
||||
public FilenameFilter
|
||||
getFilenameFilter()
|
||||
{
|
||||
return(filter);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the filename filter used by this dialog.
|
||||
*
|
||||
* @param filter The new filename filter for this file dialog box.
|
||||
*/
|
||||
public synchronized void
|
||||
setFilenameFilter(FilenameFilter filter)
|
||||
{
|
||||
this.filter = filter;
|
||||
if (peer != null)
|
||||
{
|
||||
FileDialogPeer f = (FileDialogPeer) peer;
|
||||
f.setFilenameFilter (filter);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Creates the native peer for this file dialog box.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit ().createFileDialog (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this object.
|
||||
*
|
||||
* @return A debugging string for this object.
|
||||
*/
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return ("dir=" + dir + ",file=" + file +
|
||||
",mode=" + mode + "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class FileDialog
|
||||
|
||||
|
@ -1,120 +1,414 @@
|
||||
/* Copyright (C) 1999, 2000 Free Software Foundation
|
||||
/* Font.java -- Font object
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.awt.peer.FontPeer;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date March 16, 2000.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Written using on-line Java Platform 1.2 API Specification, as well
|
||||
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
|
||||
* Status: Stubbed; A very incomplete implementation.
|
||||
*/
|
||||
|
||||
public class Font
|
||||
* This class represents a windowing system font.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
*/
|
||||
public class Font implements java.io.Serializable
|
||||
{
|
||||
// FIXME
|
||||
|
||||
public static final int PLAIN = 0;
|
||||
public static final int BOLD = 1;
|
||||
public static final int ITALIC = 2;
|
||||
public static final int ROMAN_BASELINE = 0;
|
||||
public static final int CENTER_BASELINE = 1;
|
||||
public static final int HANGING_BASELINE = 2;
|
||||
protected String name;
|
||||
protected int style;
|
||||
protected int size;
|
||||
protected float pointSize;
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public Font(String name, int style, int size)
|
||||
{
|
||||
this.name = name;
|
||||
this.style = style & 0x3; // Only use lowest 2 bits.
|
||||
this.size = size;
|
||||
pointSize = size; // Assume some subclass can set a different val.
|
||||
}
|
||||
/**
|
||||
* Constant indicating a "plain" font.
|
||||
*/
|
||||
public static final int PLAIN = 0;
|
||||
|
||||
public boolean isPlain()
|
||||
{
|
||||
if (style == PLAIN)
|
||||
return true;
|
||||
/**
|
||||
* Constant indicating a "bold" font.
|
||||
*/
|
||||
public static final int BOLD = 1;
|
||||
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Constant indicating an "italic" font.
|
||||
*/
|
||||
public static final int ITALIC = 2;
|
||||
|
||||
public boolean isBold()
|
||||
{
|
||||
if ((style & BOLD) == BOLD)
|
||||
return true;
|
||||
public static final int ROMAN_BASELINE = 0;
|
||||
public static final int CENTER_BASELINE = 1;
|
||||
public static final int HANGING_BASELINE = 2;
|
||||
|
||||
return false;
|
||||
}
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = -4206021311591459213L;
|
||||
|
||||
public boolean isItalic()
|
||||
{
|
||||
if ((style & ITALIC) == ITALIC)
|
||||
return true;
|
||||
/*************************************************************************/
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
public String getFamily()
|
||||
{
|
||||
// FIXME
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* The name of this font
|
||||
*/
|
||||
protected String name;
|
||||
|
||||
public String getFamily(Locale l)
|
||||
{
|
||||
// FIXME
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* The font style, which is a combination (by summing, not OR-ing) of
|
||||
* the font style constants in this class.
|
||||
*/
|
||||
protected int style;
|
||||
|
||||
public int getStyle()
|
||||
{
|
||||
return style;
|
||||
}
|
||||
/**
|
||||
* The font point size.
|
||||
*/
|
||||
protected int size;
|
||||
|
||||
public int getSize()
|
||||
{
|
||||
return size;
|
||||
}
|
||||
protected float pointSize;
|
||||
|
||||
public float getSize2D()
|
||||
{
|
||||
return pointSize;
|
||||
}
|
||||
// The native peer for this font
|
||||
private FontPeer peer;
|
||||
|
||||
public static Font decode(String str) { return null; } // FIXME
|
||||
|
||||
public String toString()
|
||||
{
|
||||
String style_str = "";
|
||||
if (isPlain())
|
||||
style_str = "plain";
|
||||
else
|
||||
{
|
||||
if (isBold())
|
||||
style_str += "bold";
|
||||
if (isItalic())
|
||||
style_str += "italic";
|
||||
}
|
||||
return getClass().getName() + "[family=" + getFamily() + ",name=" +
|
||||
getName() + ",style=" + style_str + ",size=" + getSize() + "]";
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Static Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a <code>Font</code> object from the specified string, which
|
||||
* is in one of the following formats:
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>fontname-style-pointsize
|
||||
* <li>fontname-style
|
||||
* <li>fontname-pointsize
|
||||
* <li>fontname
|
||||
* </ul>
|
||||
* <p>
|
||||
* The style should be one of BOLD, ITALIC, or BOLDITALIC. The default
|
||||
* style if none is specified is PLAIN. The default size if none
|
||||
* is specified is 12.
|
||||
*/
|
||||
public static Font
|
||||
decode(String fontspec)
|
||||
{
|
||||
String name = null;
|
||||
int style = PLAIN;
|
||||
int size = 12;
|
||||
|
||||
StringTokenizer st = new StringTokenizer(fontspec, "-");
|
||||
while (st.hasMoreTokens())
|
||||
{
|
||||
String token = st.nextToken();
|
||||
if (name == null)
|
||||
{
|
||||
name = token;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (token.toUpperCase().equals("BOLD"))
|
||||
{
|
||||
style = BOLD;
|
||||
continue;
|
||||
}
|
||||
if (token.toUpperCase().equals("ITALIC"))
|
||||
{
|
||||
style = ITALIC;
|
||||
continue;
|
||||
}
|
||||
if (token.toUpperCase().equals("BOLDITALIC"))
|
||||
{
|
||||
style = BOLD + ITALIC;
|
||||
continue;
|
||||
}
|
||||
|
||||
int tokenval = 0;
|
||||
try
|
||||
{
|
||||
tokenval = Integer.parseInt(token);
|
||||
}
|
||||
catch(Exception e) { ; }
|
||||
|
||||
if (tokenval != 0)
|
||||
size = tokenval;
|
||||
}
|
||||
|
||||
return(new Font(name, style, size));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a <code>Font</code> object from the passed property name.
|
||||
*
|
||||
* @param propname The name of the system property.
|
||||
* @param default Value to use if the property is not found.
|
||||
*
|
||||
* @return The requested font, or <code>default</code> if the property
|
||||
* not exist or is malformed.
|
||||
*/
|
||||
public static Font
|
||||
getFont(String propname, Font defval)
|
||||
{
|
||||
String propval = System.getProperty(propname);
|
||||
if (propval != null)
|
||||
return(decode(propval));
|
||||
|
||||
return(defval);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a <code>Font</code> object from the passed property name.
|
||||
*
|
||||
* @param propname The name of the system property.
|
||||
*
|
||||
* @return The requested font, or <code>null</code> if the property
|
||||
* not exist or is malformed.
|
||||
*/
|
||||
public static Font
|
||||
getFont(String propname)
|
||||
{
|
||||
return(getFont(propname, null));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Font</code> with the specified
|
||||
* attributes.
|
||||
*
|
||||
* @param name The name of the font.
|
||||
* @param style The font style.
|
||||
* @param size The font point size.
|
||||
*/
|
||||
public
|
||||
Font(String name, int style, int size)
|
||||
{
|
||||
this.name = name;
|
||||
this.style = style;
|
||||
this.size = size;
|
||||
this.pointSize = size;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the name of the font.
|
||||
*
|
||||
* @return The name of the font.
|
||||
*/
|
||||
public String
|
||||
getName()
|
||||
{
|
||||
return(name);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the style of the font.
|
||||
*
|
||||
* @return The font style.
|
||||
*/
|
||||
public int
|
||||
getSize()
|
||||
{
|
||||
return(size);
|
||||
}
|
||||
|
||||
public float
|
||||
getSize2D()
|
||||
{
|
||||
return pointSize;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not this is a plain font. This will be true if
|
||||
* and only if neither the bold nor the italics style is set.
|
||||
*
|
||||
* @return <code>true</code> if this is a plain font, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isPlain()
|
||||
{
|
||||
if (style == PLAIN)
|
||||
return(true);
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not this font is bold.
|
||||
*
|
||||
* @return <code>true</code> if this font is bold, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isBold()
|
||||
{
|
||||
if ((style == BOLD) || (style == (BOLD+ITALIC)))
|
||||
return(true);
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not this font is italic.
|
||||
*
|
||||
* @return <code>true</code> if this font is italic, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isItalic()
|
||||
{
|
||||
if ((style == ITALIC) || (style == (BOLD+ITALIC)))
|
||||
return(true);
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the system specific font family name.
|
||||
*
|
||||
* @return The system specific font family name.
|
||||
*/
|
||||
public String
|
||||
getFamily()
|
||||
{
|
||||
// FIXME: How do I implement this?
|
||||
return(name);
|
||||
}
|
||||
|
||||
public int
|
||||
getStyle()
|
||||
{
|
||||
return style;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a native peer object for this font.
|
||||
*
|
||||
* @return A native peer object for this font.
|
||||
*/
|
||||
public FontPeer
|
||||
getPeer()
|
||||
{
|
||||
if (peer != null)
|
||||
return(peer);
|
||||
|
||||
peer = Toolkit.getDefaultToolkit().getFontPeer(name, style);
|
||||
return(peer);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a hash value for this font.
|
||||
*
|
||||
* @return A hash for this font.
|
||||
*/
|
||||
public int
|
||||
hashCode()
|
||||
{
|
||||
return((new String(name + size + style)).hashCode());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests whether or not the specified object is equal to this font. This
|
||||
* will be true if and only if:
|
||||
* <P>
|
||||
* <ul>
|
||||
* <li>The object is not <code>null</code>.
|
||||
* <li>The object is an instance of <code>Font</code>.
|
||||
* <li>The object has the same name, style, and size as this object.
|
||||
* </ul>
|
||||
*
|
||||
* @return <code>true</code> if the specified object is equal to this
|
||||
* object, <code>false</code> otherwise.
|
||||
*/
|
||||
public boolean
|
||||
equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
return(false);
|
||||
|
||||
if (!(obj instanceof Font))
|
||||
return(false);
|
||||
|
||||
Font f = (Font)obj;
|
||||
|
||||
if (!f.name.equals(name))
|
||||
return(false);
|
||||
|
||||
if (f.size != size)
|
||||
return(false);
|
||||
|
||||
if (f.style != style)
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string representation of this font.
|
||||
*
|
||||
* @return A string representation of this font.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return(getClass().getName() + "(name=" + name + ",style=" + style +
|
||||
",size=" + size + ")");
|
||||
}
|
||||
|
||||
} // class Font
|
||||
|
||||
|
@ -1,146 +1,338 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* FontMetrics.java -- Information about about a fonts display characteristics
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
// FIXME: I leave many methods basically unimplemented. This
|
||||
// should be reviewed.
|
||||
|
||||
/**
|
||||
* Status: Stubbed; A very incomplete implementation.
|
||||
* This class returns information about the display characteristics of
|
||||
* a font. It is abstract, and concrete subclasses should implement at
|
||||
* least the following methods:
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>getAscent
|
||||
* <li>getDescent
|
||||
* <li>getLeading()
|
||||
* <li>getMaxAdvance()
|
||||
* <li>charWidth(char)
|
||||
* <li>charsWidth(char[], int, int)
|
||||
* </ul>
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public abstract class FontMetrics implements java.io.Serializable
|
||||
{
|
||||
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public class FontMetrics implements java.io.Serializable
|
||||
// Serialization constant
|
||||
private static final long serialVersionUID = 1681126225205050147L;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is the font for which metrics will be returned.
|
||||
*/
|
||||
protected Font font;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>FontMetrics</code> for the
|
||||
* specified font.
|
||||
*
|
||||
* @param font The font to return metric information for.
|
||||
*/
|
||||
protected
|
||||
FontMetrics(Font font)
|
||||
{
|
||||
protected Font font;
|
||||
|
||||
protected FontMetrics(Font font)
|
||||
{
|
||||
this.font = font;
|
||||
}
|
||||
|
||||
public Font getFont()
|
||||
{
|
||||
return font;
|
||||
}
|
||||
|
||||
public int getLeading()
|
||||
{
|
||||
return getMaxAscent() + getMaxDescent() - (getAscent() + getDescent());
|
||||
}
|
||||
|
||||
public int getAscent()
|
||||
{
|
||||
return getHeight() - (getDescent() + getLeading());
|
||||
}
|
||||
|
||||
public int getDescent()
|
||||
{
|
||||
return getHeight() - (getLeading() + getDescent());
|
||||
}
|
||||
|
||||
public int getHeight()
|
||||
{
|
||||
return getLeading() + getAscent() + getDescent();
|
||||
}
|
||||
|
||||
public int getMaxAscent()
|
||||
{
|
||||
return getAscent();
|
||||
}
|
||||
|
||||
public int getMaxDescent()
|
||||
{
|
||||
return getDescent();
|
||||
}
|
||||
|
||||
/* @deprecated Use getMaxDescent() instead. */
|
||||
public int getMaxDecent()
|
||||
{
|
||||
return getMaxDescent();
|
||||
}
|
||||
|
||||
/** @return max advance, or -1 if unknown. */
|
||||
public int getMaxAdvance()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
public int charWidth(int ch)
|
||||
{
|
||||
return charWidth((char) ch);
|
||||
}
|
||||
|
||||
public int charWidth(char ch)
|
||||
{
|
||||
Character chObj = new Character(ch);
|
||||
return stringWidth(chObj.toString());
|
||||
}
|
||||
|
||||
public int stringWidth(String str)
|
||||
{
|
||||
return charsWidth(str.toCharArray(), 0, str.length());
|
||||
}
|
||||
|
||||
public int charsWidth(char[] data, int off, int len)
|
||||
{
|
||||
return stringWidth(new String(data, off, len));
|
||||
}
|
||||
|
||||
public int bytesWidth(byte[] data, int off, int len)
|
||||
{
|
||||
return stringWidth(new String(data, off, len));
|
||||
}
|
||||
|
||||
public int[] getWidths()
|
||||
{
|
||||
int[] widths = new int[256];
|
||||
for (char c=0; c<256; c++) widths[c] = charWidth(c);
|
||||
return widths;
|
||||
}
|
||||
|
||||
public boolean hasUniformLineMetrics()
|
||||
{
|
||||
// FIXME
|
||||
return false;
|
||||
}
|
||||
|
||||
// Don't have LineMetrics yet...
|
||||
/*
|
||||
public LineMetrics getLineMetrics(String str, Graphics context)
|
||||
|
||||
public LineMetrics getLineMetrics(String str, int beginIndex, int limit,
|
||||
Graphics context)
|
||||
|
||||
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit,
|
||||
Graphics context)
|
||||
|
||||
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex,
|
||||
int limit, Graphics context)
|
||||
*/
|
||||
|
||||
// Don't have Java2D yet.
|
||||
/*
|
||||
public Rectangle2D getStringBounds(String str, Graphics context)
|
||||
|
||||
public Rectangle2D getStringBounds(String str, int beginIndex, int limit,
|
||||
Graphics context)
|
||||
|
||||
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit,
|
||||
Graphics context)
|
||||
|
||||
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex,
|
||||
int limit, Graphics context)
|
||||
|
||||
public Rectangle2D getMaxCharBounds(Graphics context)
|
||||
*/
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return this.getClass() + "[font=" + font + ",ascent=" + getAscent()
|
||||
+ ",descent=" + getDescent() + ",height=" + getHeight() + "]";
|
||||
}
|
||||
this.font = font;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the font that this object is creating metric information fo.
|
||||
*
|
||||
* @return The font for this object.
|
||||
*/
|
||||
public Font
|
||||
getFont()
|
||||
{
|
||||
return(font);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the leading, or spacing between lines, for this font.
|
||||
*
|
||||
* @return The font leading.
|
||||
*/
|
||||
public int
|
||||
getLeading()
|
||||
{
|
||||
return(0);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the ascent of the font, which is the distance from the base
|
||||
* to the top of the majority of characters in the set. Some characters
|
||||
* can exceed this value however.
|
||||
*
|
||||
* @return The font ascent.
|
||||
*/
|
||||
public int
|
||||
getAscent()
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the descent of the font, which is the distance from the base
|
||||
* to the bottom of the majority of characters in the set. Some characters
|
||||
* can exceed this value however.
|
||||
*
|
||||
* @return The font descent.
|
||||
*/
|
||||
public int
|
||||
getDescent()
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the height of a line in this font. This will be the sum
|
||||
* of the leading, the ascent, and the descent.
|
||||
*
|
||||
* @return The height of the font.
|
||||
*/
|
||||
public int
|
||||
getHeight()
|
||||
{
|
||||
return(getAscent() + getDescent() + getLeading());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the maximum ascent value. This is the maximum distance any
|
||||
* character in the font rised above the baseline.
|
||||
*
|
||||
* @return The maximum ascent for this font.
|
||||
*/
|
||||
public int
|
||||
getMaxAscent()
|
||||
{
|
||||
return(getAscent());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the maximum descent value. This is the maximum distance any
|
||||
* character in the font extends below the baseline.
|
||||
*
|
||||
* @return The maximum descent for this font.
|
||||
*/
|
||||
public int
|
||||
getMaxDescent()
|
||||
{
|
||||
return(getDescent());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the maximum descent value. This is the maximum distance any
|
||||
* character in the font extends below the baseline.
|
||||
*
|
||||
* @return The maximum descent for this font.
|
||||
*
|
||||
* @deprecated This method is deprecated in favor of
|
||||
* <code>getMaxDescent()</code>.
|
||||
*/
|
||||
public int
|
||||
getMaxDecent()
|
||||
{
|
||||
return(getMaxDescent());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the width of the widest character in the font.
|
||||
*
|
||||
* @return The width of the widest character in the font.
|
||||
*/
|
||||
public int
|
||||
getMaxAdvance()
|
||||
{
|
||||
return(-1);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the width of the specified character.
|
||||
*
|
||||
* @param ch The character to return the width of.
|
||||
*
|
||||
* @return The width of the specified character.
|
||||
*/
|
||||
public int
|
||||
charWidth(int ch)
|
||||
{
|
||||
return(charWidth((char)ch));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the width of the specified character.
|
||||
*
|
||||
* @param ch The character to return the width of.
|
||||
*
|
||||
* @return The width of the specified character.
|
||||
*/
|
||||
public int
|
||||
charWidth(char ch)
|
||||
{
|
||||
return(1);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the total width of the specified string
|
||||
*
|
||||
* @param str The string to return the width of.
|
||||
*
|
||||
* @return The width of the string.
|
||||
*/
|
||||
public int
|
||||
stringWidth(String str)
|
||||
{
|
||||
char[] buf = new char[str.length()];
|
||||
str.getChars(0, str.length(), buf, 0);
|
||||
|
||||
return(charsWidth(buf, 0, buf.length));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the total width of the specified character array.
|
||||
*
|
||||
* @param buf The character array containing the data.
|
||||
* @param offset The offset into the array to start calculating from.
|
||||
* @param len The total number of bytes to process.
|
||||
*
|
||||
* @return The width of the requested characters.
|
||||
*/
|
||||
public int
|
||||
charsWidth(char buf[], int offset, int len)
|
||||
{
|
||||
int total_width = 0;
|
||||
for (int i = offset; i < len; i++)
|
||||
total_width = charWidth(buf[i]);
|
||||
|
||||
return(total_width);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the total width of the specified byte array.
|
||||
*
|
||||
* @param buf The byte array containing the data.
|
||||
* @param offset The offset into the array to start calculating from.
|
||||
* @param len The total number of bytes to process.
|
||||
*
|
||||
* @return The width of the requested characters.
|
||||
*/
|
||||
public int
|
||||
bytesWidth(byte buf[], int offset, int len)
|
||||
{
|
||||
int total_width = 0;
|
||||
for (int i = offset; i < len; i++)
|
||||
total_width = charWidth((char)buf[i]);
|
||||
|
||||
return(total_width);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the widths of the first 256 characters in the font.
|
||||
*
|
||||
* @return The widths of the first 256 characters in the font.
|
||||
*/
|
||||
public int[]
|
||||
getWidths()
|
||||
{
|
||||
return(new int[256]);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string representation of this object.
|
||||
*
|
||||
* @return A string representation of this object.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return (this.getClass() + "[font=" + font + ",ascent=" + getAscent()
|
||||
+ ",descent=" + getDescent() + ",height=" + getHeight() + "]");
|
||||
}
|
||||
|
||||
} // class FontMetrics
|
||||
|
||||
|
@ -1,51 +1,186 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Image.java -- Java class for images
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.awt.image.ImageProducer;
|
||||
import java.awt.image.*;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date March 15, 2000.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Written using on-line Java Platform 1.2 API Specification, as well
|
||||
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
|
||||
* Status: Mostly complete, but look for FIXMEs.
|
||||
*/
|
||||
|
||||
public abstract class Image extends Object
|
||||
* This is the abstract superclass of all image objects in Java.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public abstract class Image
|
||||
{
|
||||
public static final Object UndefinedProperty = new Object();
|
||||
|
||||
public static final int SCALE_DEFAULT = 1<<0,
|
||||
SCALE_FAST = 1<<1,
|
||||
SCALE_SMOOTH = 1<<2,
|
||||
SCALE_REPLICATE = 1<<3,
|
||||
SCALE_AREA_AVERAGING = 1<<4;
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public abstract int getWidth(ImageObserver observer);
|
||||
/**
|
||||
* Constant indicating that the default scaling algorithm should be used.
|
||||
*/
|
||||
public static final int SCALE_DEFAULT = 1;
|
||||
|
||||
public abstract int getHeight(ImageObserver observer);
|
||||
/**
|
||||
* Constant indicating that a fast scaling algorithm should be used.
|
||||
*/
|
||||
public static final int SCALE_FAST = 2;
|
||||
|
||||
public abstract ImageProducer getSource();
|
||||
|
||||
public abstract Graphics getGraphics();
|
||||
/**
|
||||
* Constant indicating that a smooth scaling algorithm should be used.
|
||||
*/
|
||||
public static final int SCALE_SMOOTH = 4;
|
||||
|
||||
public abstract Object getProperty(String name, ImageObserver observer);
|
||||
/**
|
||||
* Constant indicating that the <code>ReplicateScaleFilter</code> class
|
||||
* algorithm should be used for scaling.
|
||||
*/
|
||||
public static final int SCALE_REPLICATE = 8;
|
||||
|
||||
public Image getScaledInstance(int width, int height, int hints)
|
||||
/**
|
||||
* Constant indicating that the area averaging scaling algorithm should be
|
||||
* used.
|
||||
*/
|
||||
public static final int SCALE_AREA_AVERAGING = 16;
|
||||
|
||||
/**
|
||||
* This variable is returned whenever a property that is not defined
|
||||
* is requested.
|
||||
*/
|
||||
public static final Object UndefinedProperty = Image.class;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* A default constructor for subclasses.
|
||||
*/
|
||||
public
|
||||
Image()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the width of the image, or -1 if it is unknown. If the
|
||||
* image width is unknown, the observer object will be notified when
|
||||
* the value is known.
|
||||
*
|
||||
* @param observer The image observer for this object.
|
||||
*/
|
||||
public abstract int
|
||||
getWidth(ImageObserver observer);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the height of the image, or -1 if it is unknown. If the
|
||||
* image height is unknown, the observer object will be notified when
|
||||
* the value is known.
|
||||
*
|
||||
* @param observer The image observer for this object.
|
||||
*/
|
||||
public abstract int
|
||||
getHeight(ImageObserver observer);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the image producer object for this object.
|
||||
*
|
||||
* @return The image producer for this object.
|
||||
*/
|
||||
public abstract ImageProducer
|
||||
getSource();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a graphics context object for drawing an off-screen object.
|
||||
* This method is only valid for off-screen objects.
|
||||
*
|
||||
* @return A graphics context object for an off-screen object.
|
||||
*/
|
||||
public abstract Graphics
|
||||
getGraphics();
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* This method requests a named property for an object. The value of the
|
||||
* property is returned. The value <code>UndefinedProperty</code> is
|
||||
* returned if there is no property with the specified name. The value
|
||||
* <code>null</code> is returned if the properties for the object are
|
||||
* not yet known. In this case, the specified image observer is notified
|
||||
* when the properties are known.
|
||||
*
|
||||
* @param name The requested property name.
|
||||
* @param observer The image observer for this object.
|
||||
*/
|
||||
public abstract Object
|
||||
getProperty(String name, ImageObserver observer);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Scales the image to the requested dimension.
|
||||
*
|
||||
* XXX: FIXME
|
||||
*
|
||||
* @param width The width of the scaled image.
|
||||
* @param height The height of the scaled image.
|
||||
* @param flags A value indicating the algorithm to use, which will be
|
||||
* set from contants defined in this class.
|
||||
*
|
||||
* @return The scaled <code>Image</code> object.
|
||||
*/
|
||||
public Image
|
||||
getScaledInstance(int width, int height, int flags)
|
||||
{
|
||||
throw new UnsupportedOperationException("FIXME: not implemented yet");
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract void flush();
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Flushes (that is, destroys) any resources used for this image. This
|
||||
* includes the actual image data.
|
||||
*/
|
||||
public abstract void
|
||||
flush();
|
||||
|
||||
} // class Image
|
||||
|
||||
|
75
libjava/java/awt/ImageMediaEntry.java
Normal file
75
libjava/java/awt/ImageMediaEntry.java
Normal file
@ -0,0 +1,75 @@
|
||||
/* ImageMediaEntry.java -- A media entry type for images.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* A concrete MediaEntry subtype for images.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
class ImageMediaEntry extends MediaEntry implements ImageObserver,
|
||||
Serializable
|
||||
{
|
||||
|
||||
private Image image;
|
||||
private int width;
|
||||
private int height;
|
||||
|
||||
ImageMediaEntry(MediaTracker tracker, Image image, int ID, int width, int height)
|
||||
{
|
||||
super(tracker, ID);
|
||||
this.image = image;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
public Object
|
||||
getMedia()
|
||||
{
|
||||
return(image.getSource()); // FIXME: Is this really right?
|
||||
}
|
||||
|
||||
public void
|
||||
startLoad()
|
||||
{
|
||||
int status = getStatus();
|
||||
// status |= MediaEntry.LOADSTARTED;
|
||||
}
|
||||
|
||||
public boolean
|
||||
imageUpdate(Image image, int flags, int x, int y, int width, int height)
|
||||
{
|
||||
// implement me
|
||||
return true;
|
||||
}
|
||||
|
||||
} // class ImageMediaEntry
|
||||
|
@ -1,56 +1,163 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Insets.java -- Information about a container border.
|
||||
Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
/**
|
||||
* This class represents the "margin" or space around a container.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Insets implements Cloneable, java.io.Serializable
|
||||
{
|
||||
public int top;
|
||||
public int left;
|
||||
public int bottom;
|
||||
public int right;
|
||||
|
||||
public Insets(int top, int left, int bottom, int right)
|
||||
{
|
||||
this.top = top;
|
||||
this.left = left;
|
||||
this.bottom = bottom;
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj instanceof Insets)
|
||||
{
|
||||
Insets i = (Insets) obj;
|
||||
return (i.top == top
|
||||
&& i.left == left
|
||||
&& i.bottom == bottom
|
||||
&& i.right == right);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
* Instance Variable
|
||||
*/
|
||||
|
||||
public int hashCode()
|
||||
{
|
||||
// FIXME: what is the correct algorithm for this?
|
||||
return (top * (2 * left) * (3 * right) * (4 * bottom));
|
||||
}
|
||||
/**
|
||||
* @serial The top inset
|
||||
*/
|
||||
public int top;
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return (getClass() + "[top=" + top + ",left=" + left + ",bottom="
|
||||
+ bottom + ",right=" + right + "]");
|
||||
}
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
Insets r = new Insets(top, left, bottom, right);
|
||||
return r;
|
||||
}
|
||||
/**
|
||||
* @serial This bottom inset
|
||||
*/
|
||||
public int bottom;
|
||||
|
||||
/**
|
||||
* @serial The left inset
|
||||
*/
|
||||
public int left;
|
||||
|
||||
/**
|
||||
* @serial The right inset
|
||||
*/
|
||||
public int right;
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Inset</code> with the specified
|
||||
* inset values.
|
||||
*
|
||||
* @param top The top inset
|
||||
* @param left The left inset
|
||||
* @param bottom The bottom inset
|
||||
* @param right The right inset
|
||||
*/
|
||||
public
|
||||
Insets(int top, int left, int bottom, int right)
|
||||
{
|
||||
this.top = top;
|
||||
this.left = left;
|
||||
this.bottom = bottom;
|
||||
this.right = right;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests whether this object is equal to the specified object. This will
|
||||
* be true if and only if the specified object:
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>Is not <code>null</code>.
|
||||
* <li>Is an instance of <code>Insets</code>.
|
||||
* <li>Has the same top, bottom, left, and right inset values as this object.
|
||||
* </ul>
|
||||
*
|
||||
* @param obj The object to test against.
|
||||
*
|
||||
* @return <code>true</code> if the specified object is equal to this
|
||||
* one, <code>false</code> otherwise.
|
||||
*/
|
||||
public boolean
|
||||
equals(Object obj)
|
||||
{
|
||||
if (!(obj instanceof Insets))
|
||||
return(false);
|
||||
|
||||
Insets i = (Insets)obj;
|
||||
|
||||
if (i.top != top)
|
||||
return(false);
|
||||
if (i.bottom != bottom)
|
||||
return(false);
|
||||
if (i.left != left)
|
||||
return(false);
|
||||
if (i.right != right)
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
public int
|
||||
hashCode()
|
||||
{
|
||||
return top + bottom + left + right;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string representation of this object.
|
||||
*
|
||||
* @return A string representation of this object.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return(getClass().getName() + "(top=" + top + ",bottom=" + bottom +
|
||||
",left=" + left + ",right=" + right + ")");
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a copy of this object.
|
||||
*
|
||||
* @return A copy of this object.
|
||||
*/
|
||||
public Object
|
||||
clone()
|
||||
{
|
||||
try
|
||||
{
|
||||
return(super.clone());
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
return(null);
|
||||
}
|
||||
}
|
||||
|
||||
} // class Insets
|
||||
|
@ -225,8 +225,8 @@ addNotify()
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return(getClass().getName() + "(text=" + getText() + ",alignment=" +
|
||||
getAlignment() + ")");
|
||||
return ("text=" + getText() + ",alignment=" +
|
||||
getAlignment() + "," + super.paramString());
|
||||
}
|
||||
|
||||
} // class Label
|
||||
|
File diff suppressed because it is too large
Load Diff
106
libjava/java/awt/MediaEntry.java
Normal file
106
libjava/java/awt/MediaEntry.java
Normal file
@ -0,0 +1,106 @@
|
||||
/* MediaEntry.java -- An entry in a MediaTracker
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
|
||||
package java.awt;
|
||||
|
||||
/**
|
||||
* This is an entry in the media tracker
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
abstract class MediaEntry implements java.io.Serializable
|
||||
{
|
||||
|
||||
protected static final int LOADING = 1;
|
||||
protected static final int ABORTED = 2;
|
||||
protected static final int ERRORED = 4;
|
||||
protected static final int COMPLETE = 8;
|
||||
protected static final int LOADSTARTED = 16;
|
||||
protected static final int DONE = 32;
|
||||
|
||||
private MediaTracker tracker;
|
||||
private int ID;
|
||||
private int status;
|
||||
private boolean cancelled;
|
||||
private MediaEntry next;
|
||||
|
||||
static MediaEntry
|
||||
insert(MediaEntry a, MediaEntry b)
|
||||
{
|
||||
while (a.next != null)
|
||||
a = a.next;
|
||||
|
||||
a.next = b;
|
||||
return(b);
|
||||
}
|
||||
|
||||
MediaEntry(MediaTracker tracker, int ID)
|
||||
{
|
||||
this.tracker = tracker;
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public int
|
||||
getID()
|
||||
{
|
||||
return(ID);
|
||||
}
|
||||
|
||||
public int
|
||||
getStatus()
|
||||
{
|
||||
return(status);
|
||||
}
|
||||
|
||||
public void
|
||||
setStatus(int status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public MediaEntry
|
||||
getNext()
|
||||
{
|
||||
return(next);
|
||||
}
|
||||
|
||||
public void
|
||||
cancel()
|
||||
{
|
||||
cancelled = true;
|
||||
if ((status == LOADING) || (status == LOADSTARTED))
|
||||
setStatus(ABORTED);
|
||||
}
|
||||
|
||||
abstract void
|
||||
startLoad();
|
||||
|
||||
abstract Object
|
||||
getMedia();
|
||||
|
||||
} // class MediaEntry
|
||||
|
40
libjava/java/awt/MediaTracker.java
Normal file
40
libjava/java/awt/MediaTracker.java
Normal file
@ -0,0 +1,40 @@
|
||||
/* MediaTracker.java -- Class used for keeping track of images
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
|
||||
package java.awt;
|
||||
|
||||
/**
|
||||
* This class is used for keeping track of the status of various media
|
||||
* objects.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class MediaTracker implements java.io.Serializable
|
||||
{
|
||||
|
||||
} // class MediaTracker
|
||||
|
@ -1,141 +1,398 @@
|
||||
/* Copyright (C) 1999, 2000, 2001 Free Software Foundation
|
||||
/* Menu.java -- A Java AWT Menu
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.MenuPeer;
|
||||
import java.awt.peer.MenuItemPeer;
|
||||
import java.awt.peer.MenuComponentPeer;
|
||||
import java.io.Serializable;
|
||||
import java.util.Vector;
|
||||
import java.util.Enumeration;
|
||||
|
||||
/* Status: Incomplete. */
|
||||
|
||||
public class Menu extends MenuItem implements MenuContainer
|
||||
/**
|
||||
* This class represents a pull down or tear off menu in Java's AWT.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Menu extends MenuItem implements MenuContainer, Serializable
|
||||
{
|
||||
// Fields from the serialization spec. Decalare others "transient".
|
||||
Vector items = new Vector();
|
||||
boolean tearOff;
|
||||
boolean isHelpMenu;
|
||||
int menuSerializedDataVersion;
|
||||
|
||||
static final MenuItem separator = new MenuItem("-");
|
||||
|
||||
public Menu()
|
||||
{
|
||||
this(null, false);
|
||||
}
|
||||
|
||||
public Menu(String label)
|
||||
{
|
||||
this(label, false);
|
||||
}
|
||||
|
||||
public Menu(String label, boolean tearOff)
|
||||
{
|
||||
super(label);
|
||||
this.tearOff = tearOff;
|
||||
}
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public void addNotify()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
// This choice of toolkit seems unsatisfying, but I'm not sure
|
||||
// what else to do.
|
||||
peer = Toolkit.getDefaultToolkit ().createMenu (this);
|
||||
}
|
||||
super.addNotify ();
|
||||
}
|
||||
// Serialization Constant
|
||||
private static final long serialVersionUID = -8809584163345499784L;
|
||||
|
||||
public void removeNotify()
|
||||
{
|
||||
// FIXME
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
public boolean isTearOff()
|
||||
{
|
||||
return tearOff;
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
public int getItemCount()
|
||||
{
|
||||
return items.size();
|
||||
}
|
||||
/**
|
||||
* @serial The actual items in the menu
|
||||
*/
|
||||
private Vector items = new Vector();
|
||||
|
||||
/** @deprecated Use getItemCount() instead. */
|
||||
public int countItems()
|
||||
{
|
||||
return getItemCount();
|
||||
}
|
||||
/**
|
||||
* @serial Flag indicating whether or not this menu is a tear off
|
||||
*/
|
||||
private boolean isTearOff;
|
||||
|
||||
public MenuItem getItem(int index)
|
||||
{
|
||||
return (MenuItem) items.elementAt(index);
|
||||
}
|
||||
/**
|
||||
* @serial Indicates whether or not this is a help menu.
|
||||
*/
|
||||
private boolean isHelpMenu;
|
||||
|
||||
public synchronized MenuItem add(MenuItem mi)
|
||||
{
|
||||
items.addElement(mi);
|
||||
if (mi.parent != null)
|
||||
{
|
||||
mi.parent.remove(mi);
|
||||
}
|
||||
mi.parent = this;
|
||||
return mi;
|
||||
}
|
||||
// From the serialization spec. FIXME: what should it be?
|
||||
private int menuSerializedDataVersion;
|
||||
|
||||
public void add(String label)
|
||||
{
|
||||
MenuItem mi = new MenuItem(label);
|
||||
this.add(mi);
|
||||
}
|
||||
static final MenuItem separator = new MenuItem("-");
|
||||
|
||||
public synchronized void insert(MenuItem menuitem, int index)
|
||||
{
|
||||
if (index < 0)
|
||||
throw new IllegalArgumentException();
|
||||
items.insertElementAt(menuitem, index);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
public void insert(String label, int index)
|
||||
{
|
||||
MenuItem mi = new MenuItem(label);
|
||||
this.insert(mi, index);
|
||||
}
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
public void addSeparator()
|
||||
{
|
||||
this.add(separator);
|
||||
}
|
||||
|
||||
public void insertSeparator(int index)
|
||||
{
|
||||
this.insert(separator, index);
|
||||
}
|
||||
|
||||
public synchronized void remove(int index)
|
||||
{
|
||||
items.removeElementAt(index);
|
||||
}
|
||||
|
||||
public synchronized void remove(MenuComponent item)
|
||||
{
|
||||
items.removeElement(item);
|
||||
}
|
||||
|
||||
public synchronized void removeAll()
|
||||
{
|
||||
items.removeAllElements();
|
||||
}
|
||||
|
||||
public String paramString()
|
||||
{
|
||||
return getName() + ",label" + label + ",tearOff=" + tearOff +
|
||||
",isHelpMenu=" + isHelpMenu;
|
||||
}
|
||||
|
||||
// Accessibility API not yet implemented.
|
||||
// public AccessibleContext getAccessibleContext()
|
||||
/**
|
||||
* Initializes a new instance of <code>Menu</code> with no label and that
|
||||
* is not a tearoff;
|
||||
*/
|
||||
public
|
||||
Menu()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Menu</code> that is not a tearoff and
|
||||
* that has the specified label.
|
||||
*
|
||||
* @param label The menu label.
|
||||
*/
|
||||
public
|
||||
Menu(String label)
|
||||
{
|
||||
this(label, false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Menu</code> with the specified
|
||||
* label and tearoff status.
|
||||
*
|
||||
* @param label The label for this menu
|
||||
* @param isTearOff <code>true</code> if this menu is a tear off menu,
|
||||
* <code>false</code> otherwise.
|
||||
*/
|
||||
public
|
||||
Menu(String label, boolean isTearOff)
|
||||
{
|
||||
super(label);
|
||||
|
||||
this.isTearOff = isTearOff;
|
||||
|
||||
if (label.equals("Help"))
|
||||
isHelpMenu = true;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests whether or not this menu is a tearoff.
|
||||
*
|
||||
* @return <code>true</code> if this menu is a tearoff, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
isTearOff()
|
||||
{
|
||||
return(isTearOff);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the number of items in this menu.
|
||||
*
|
||||
* @return The number of items in this menu.
|
||||
*/
|
||||
public int
|
||||
getItemCount()
|
||||
{
|
||||
return(items.size());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the number of items in this menu.
|
||||
*
|
||||
* @return The number of items in this menu.
|
||||
*
|
||||
* @deprecated This method is deprecated in favor of <code>getItemCount()</code>.
|
||||
*/
|
||||
public int
|
||||
count()
|
||||
{
|
||||
return(items.size());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the item at the specified index.
|
||||
*
|
||||
* @return The item at the specified index.
|
||||
*
|
||||
* @exception ArrayIndexOutOfBoundsException If the index value is not valid.
|
||||
*/
|
||||
public MenuItem
|
||||
getItem(int index)
|
||||
{
|
||||
return((MenuItem)items.elementAt(index));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds the specified item to this menu. If it was previously part of
|
||||
* another menu, it is first removed from that menu.
|
||||
*
|
||||
* @param item The new item to add.
|
||||
*
|
||||
* @return The item that was added.
|
||||
*/
|
||||
public MenuItem
|
||||
add(MenuItem item)
|
||||
{
|
||||
items.addElement(item);
|
||||
if (item.parent != null)
|
||||
{
|
||||
item.parent.remove(item);
|
||||
}
|
||||
item.parent = this;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuPeer mp = (MenuPeer) peer;
|
||||
mp.addItem(item);
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Add an item with the specified label to this menu.
|
||||
*
|
||||
* @param label The label of the menu item to add.
|
||||
*/
|
||||
public void
|
||||
add(String label)
|
||||
{
|
||||
add(new MenuItem(label));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Inserts the specified menu item into this menu at the specified index.
|
||||
*
|
||||
* @param item The menu item to add.
|
||||
* @param index The index of the menu item.
|
||||
*
|
||||
* XXX: FIXME
|
||||
*
|
||||
* @exception IllegalArgumentException If the index is less than zero.
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
|
||||
*/
|
||||
public void
|
||||
insert(MenuItem item, int index)
|
||||
{
|
||||
if (index < 0)
|
||||
throw new IllegalArgumentException("Index is less than zero");
|
||||
|
||||
items.insertElementAt(item, index);
|
||||
|
||||
MenuPeer mp = (MenuPeer)getPeer();
|
||||
// FIXME: Need to add a peer method here.
|
||||
// if (mp != null)
|
||||
// mp.insertItem(item, index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Inserts an item with the specified label into this menu at the specified index.
|
||||
*
|
||||
* @param label The label of the item to add.
|
||||
* @param index The index of the menu item.
|
||||
*
|
||||
* @exception IllegalArgumentException If the index is less than zero.
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
|
||||
*/
|
||||
public void
|
||||
insert(String label, int index)
|
||||
{
|
||||
insert(new MenuItem(label), index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Adds a separator bar at the current menu location.
|
||||
*/
|
||||
public void
|
||||
addSeparator()
|
||||
{
|
||||
add(separator);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Inserts a separator bar at the specified index value.
|
||||
*
|
||||
* @param index The index at which to insert a separator bar.
|
||||
*
|
||||
* XXX: FIXME
|
||||
*
|
||||
* @exception IllegalArgumentException If the index is less than zero.
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
|
||||
*/
|
||||
public void
|
||||
insertSeparator(int index)
|
||||
{
|
||||
insert(separator, index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Deletes the item at the specified index from this menu.
|
||||
*
|
||||
* @param index The index of the item to remove.
|
||||
*
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
|
||||
*/
|
||||
public synchronized void
|
||||
remove(int index)
|
||||
{
|
||||
items.removeElementAt(index);
|
||||
|
||||
MenuPeer mp = (MenuPeer)getPeer();
|
||||
if (mp != null)
|
||||
mp.delItem(index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specifed item from the menu. If the specified component
|
||||
* does not exist, this method does nothing. // FIXME: Right?
|
||||
*
|
||||
* @param item The component to remove.
|
||||
*/
|
||||
public void
|
||||
remove(MenuComponent item)
|
||||
{
|
||||
int index = items.indexOf(item);
|
||||
if (index == -1)
|
||||
return;
|
||||
|
||||
remove(index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes all the elements from this menu.
|
||||
*/
|
||||
public synchronized void
|
||||
removeAll()
|
||||
{
|
||||
int count = getItemCount();
|
||||
for(int i = 0; i < count; i++)
|
||||
{
|
||||
// We must always remove item 0.
|
||||
remove(0);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Creates the native peer for this object.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (peer != null)
|
||||
peer = getToolkit().createMenu(this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Destroys the native peer for this object.
|
||||
*/
|
||||
public void
|
||||
removeNotify()
|
||||
{
|
||||
super.removeNotify();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this menu.
|
||||
*
|
||||
* @return A debugging string for this menu.
|
||||
*/
|
||||
public String
|
||||
paramString()
|
||||
{
|
||||
return (",isTearOff=" + isTearOff + ",isHelpMenu=" + isHelpMenu
|
||||
+ super.paramString());
|
||||
}
|
||||
|
||||
// Accessibility API not yet implemented.
|
||||
// public AccessibleContext getAccessibleContext()
|
||||
|
||||
} // class Menu
|
||||
|
@ -1,288 +1,329 @@
|
||||
/* Copyright (C) 1999, 2000, 2001 Free Software Foundation
|
||||
/* MenuBar.java -- An AWT menu bar class
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.MenuBarPeer;
|
||||
import java.util.Vector;
|
||||
import java.awt.peer.MenuComponentPeer;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Enumeration;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Vector;
|
||||
|
||||
/** This class implements a MenuBar, such as might appear across the
|
||||
* top of a window.
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date December 25, 2000
|
||||
*/
|
||||
public class MenuBar extends MenuComponent implements MenuContainer
|
||||
/**
|
||||
* This class implements a menu bar in the AWT system.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
*/
|
||||
public class MenuBar extends MenuComponent
|
||||
implements MenuContainer, Serializable
|
||||
{
|
||||
/** Create a new MenuBar. */
|
||||
public MenuBar ()
|
||||
{
|
||||
menus = new Vector ();
|
||||
}
|
||||
|
||||
/** Add a menu to this MenuBar. If the menu has already has a
|
||||
* parent, it is first removed from its old parent before being
|
||||
* added.
|
||||
* @param menu The menu to add.
|
||||
* @returns menu
|
||||
*/
|
||||
public synchronized Menu add (Menu menu)
|
||||
{
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
menu.parent = this;
|
||||
menus.add (menu);
|
||||
// Serialization Constant
|
||||
private static final long serialVersionUID = -4930327919388951260L;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.add (menu);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
return menu;
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
/** This creates the component's peer. */
|
||||
public void addNotify ()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
// This choice of toolkit seems unsatisfying, but I'm not sure
|
||||
// what else to do.
|
||||
peer = Toolkit.getDefaultToolkit ().createMenuBar (this);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @serial The menu used for providing help information
|
||||
*/
|
||||
private Menu helpMenu;
|
||||
|
||||
/** @deprecated Use getMenuCount() instead. */
|
||||
public int countMenus ()
|
||||
{
|
||||
return getMenuCount ();
|
||||
}
|
||||
/**
|
||||
* @serial The menus contained in this menu bar.
|
||||
*/
|
||||
private Vector menus = new Vector();
|
||||
|
||||
/** Delete a keyboard shortcut.
|
||||
* @param shortcut The short cut which should be deleted from all
|
||||
* menus on this MenuBar.
|
||||
*/
|
||||
public void deleteShortcut (MenuShortcut shortcut)
|
||||
{
|
||||
MenuItem it;
|
||||
// This is a slow implementation, but it probably doesn't matter.
|
||||
while ((it = getShortcutMenuItem (shortcut)) != null)
|
||||
it.deleteShortcut ();
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/** Returns the current Help menu. */
|
||||
public Menu getHelpMenu ()
|
||||
{
|
||||
return help_menu;
|
||||
}
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/** Returns a menu from this object.
|
||||
* @param index Index of menu to return.
|
||||
*/
|
||||
public Menu getMenu (int index)
|
||||
{
|
||||
return (Menu) menus.get (index);
|
||||
}
|
||||
|
||||
/** Returns the number of menus on this MenuBar. */
|
||||
public int getMenuCount ()
|
||||
{
|
||||
return menus.size ();
|
||||
}
|
||||
|
||||
/** Returns the menu item on this MenuBar with the specified
|
||||
* shortcut.
|
||||
* @param shortcut Shortcut to look for
|
||||
*/
|
||||
public MenuItem getShortcutMenuItem (MenuShortcut shortcut)
|
||||
{
|
||||
Enumeration m = new MenuEnumeration (this);
|
||||
while (m.hasMoreElements ())
|
||||
{
|
||||
MenuItem item = (MenuItem) m.nextElement ();
|
||||
if (item.getShortcut () == shortcut)
|
||||
return item;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Remove a menu from the menu bar. If the menu is specified by
|
||||
* component (and not index), and does not exist on the menu, then
|
||||
* the method does nothing. If the removed menu has a peer, it is
|
||||
* destroyed.
|
||||
* @param menu The menu to remove
|
||||
* @param index The index of the menu to remove
|
||||
*/
|
||||
public synchronized void remove (MenuComponent menu)
|
||||
{
|
||||
int s = menus.size ();
|
||||
for (int i = 0; i < s; ++i)
|
||||
{
|
||||
if (menus.get (i) == menu)
|
||||
{
|
||||
remove (i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void remove (int index)
|
||||
{
|
||||
Menu m = (Menu) menus.get (index);
|
||||
menus.remove (index);
|
||||
m.removeNotify ();
|
||||
m.parent = null;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.remove (index);
|
||||
}
|
||||
}
|
||||
|
||||
/** Set the Help menu for this MenuBar. If a Help menu already
|
||||
* exists, it is first removed.
|
||||
* @param menu The new Help menu.
|
||||
*/
|
||||
public synchronized void setHelpMenu (Menu menu)
|
||||
{
|
||||
if (help_menu != null)
|
||||
{
|
||||
help_menu.removeNotify ();
|
||||
help_menu.parent = null;
|
||||
}
|
||||
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
menu.parent = this;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.addHelpMenu (menu);
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns an Enumeration which lists the keyboard shortcuts
|
||||
* associated with menu items on this MenuBar.
|
||||
*/
|
||||
public synchronized Enumeration shortcuts ()
|
||||
{
|
||||
return new ShortcutEnumeration (new MenuEnumeration (this));
|
||||
}
|
||||
|
||||
// Iterate over the items of a menu.
|
||||
private static class MenuEnumeration implements Enumeration
|
||||
{
|
||||
// Enumerate over the menu's items.
|
||||
Enumeration main;
|
||||
// Enumerate over a submenu.
|
||||
Enumeration sub;
|
||||
// Menubar so we can keep track of help menu too.
|
||||
MenuBar menubar;
|
||||
|
||||
MenuEnumeration (Menu m)
|
||||
{
|
||||
sub = null;
|
||||
menubar = null;
|
||||
main = m.items.elements ();
|
||||
}
|
||||
|
||||
MenuEnumeration (MenuBar mb)
|
||||
{
|
||||
sub = null;
|
||||
menubar = mb;
|
||||
main = mb.menus.elements ();
|
||||
}
|
||||
|
||||
public boolean hasMoreElements ()
|
||||
{
|
||||
boolean r = false;
|
||||
if (sub != null)
|
||||
r = sub.hasMoreElements ();
|
||||
if (! r)
|
||||
r = main.hasMoreElements ();
|
||||
if (! r && menubar != null)
|
||||
{
|
||||
if (menubar.help_menu != null)
|
||||
{
|
||||
main = new MenuEnumeration (menubar.help_menu);
|
||||
r = main.hasMoreElements ();
|
||||
}
|
||||
menubar = null;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
public Object nextElement () throws NoSuchElementException
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if (! sub.hasMoreElements ())
|
||||
sub = null;
|
||||
else
|
||||
return sub.nextElement ();
|
||||
|
||||
if (! main.hasMoreElements () && menubar != null
|
||||
&& menubar.help_menu != null)
|
||||
{
|
||||
main = new MenuEnumeration (menubar.help_menu);
|
||||
menubar = null;
|
||||
}
|
||||
|
||||
Object r = main.nextElement ();
|
||||
if (r instanceof Menu)
|
||||
{
|
||||
sub = new MenuEnumeration ((Menu) r);
|
||||
continue;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This is an enumeration that shadows another enumeration and
|
||||
// returns the shortcut for each item returned. I wonder if we're
|
||||
// only supposed to return unique shortcuts? If so then we could
|
||||
// keep a hash table here and remove duplicates.
|
||||
private static class ShortcutEnumeration implements Enumeration
|
||||
{
|
||||
Enumeration back;
|
||||
|
||||
ShortcutEnumeration (Enumeration back)
|
||||
{
|
||||
this.back = back;
|
||||
}
|
||||
|
||||
public boolean hasMoreElements ()
|
||||
{
|
||||
return back.hasMoreElements ();
|
||||
}
|
||||
|
||||
public Object nextElement () throws NoSuchElementException
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
MenuItem item = (MenuItem) back.nextElement ();
|
||||
if (item.getShortcut () != null)
|
||||
return item.getShortcut ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We use Vector because it makes enumerating easier than ArrayList
|
||||
// in this case.
|
||||
Vector menus;
|
||||
Menu help_menu;
|
||||
/**
|
||||
* Initializes a new instance of <code>MenuBar</code>.
|
||||
*/
|
||||
public
|
||||
MenuBar()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the help menu for this menu bar. This may be <code>null</code>.
|
||||
*
|
||||
* @return The help menu for this menu bar.
|
||||
*/
|
||||
public Menu
|
||||
getHelpMenu()
|
||||
{
|
||||
return(helpMenu);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Sets the help menu for this menu bar.
|
||||
*
|
||||
* @param helpMenu The new help menu for this menu bar.
|
||||
*/
|
||||
public synchronized void
|
||||
setHelpMenu(Menu menu)
|
||||
{
|
||||
if (helpMenu != null)
|
||||
{
|
||||
helpMenu.removeNotify ();
|
||||
helpMenu.parent = null;
|
||||
}
|
||||
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
menu.parent = this;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.addHelpMenu (menu);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/** Add a menu to this MenuBar. If the menu has already has a
|
||||
* parent, it is first removed from its old parent before being
|
||||
* added.
|
||||
*
|
||||
* @param menu The menu to add.
|
||||
*
|
||||
* @return The menu that was added.
|
||||
*/
|
||||
public synchronized Menu
|
||||
add(Menu menu)
|
||||
{
|
||||
if (menu.parent != null)
|
||||
menu.parent.remove (menu);
|
||||
|
||||
menu.parent = this;
|
||||
menus.addElement(menu);
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.addMenu (menu);
|
||||
}
|
||||
|
||||
return(menu);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the menu at the specified index.
|
||||
*
|
||||
* @param index The index of the menu to remove from the menu bar.
|
||||
*/
|
||||
public synchronized void
|
||||
remove(int index)
|
||||
{
|
||||
Menu m = (Menu) menus.get (index);
|
||||
menus.remove (index);
|
||||
m.removeNotify ();
|
||||
m.parent = null;
|
||||
|
||||
if (peer != null)
|
||||
{
|
||||
MenuBarPeer mp = (MenuBarPeer) peer;
|
||||
mp.delMenu (index);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specified menu from the menu bar.
|
||||
*
|
||||
* @param menu The menu to remove from the menu bar.
|
||||
*/
|
||||
public void
|
||||
remove(MenuComponent menu)
|
||||
{
|
||||
int index = menus.indexOf(menu);
|
||||
if (index == -1)
|
||||
return;
|
||||
|
||||
remove(index);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the number of elements in this menu bar.
|
||||
*
|
||||
* @return The number of elements in the menu bar.
|
||||
*/
|
||||
public int
|
||||
getMenuCount()
|
||||
{
|
||||
// FIXME: How does the help menu fit in here?
|
||||
return(menus.size());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the number of elements in this menu bar.
|
||||
*
|
||||
* @return The number of elements in the menu bar.
|
||||
*
|
||||
* @deprecated This method is deprecated in favor of <code>getMenuCount()</code>.
|
||||
*/
|
||||
public int
|
||||
countMenus()
|
||||
{
|
||||
return(getMenuCount());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the menu at the specified index.
|
||||
*
|
||||
* @return The requested menu.
|
||||
*
|
||||
* @exception ArrayIndexOutOfBoundsException If the index is not valid.
|
||||
*/
|
||||
public Menu
|
||||
getMenu(int index)
|
||||
{
|
||||
return((Menu)menus.elementAt(index));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Creates this object's native peer.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (getPeer() == null)
|
||||
setPeer((MenuComponentPeer)getToolkit().createMenuBar(this));
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Destroys this object's native peer.
|
||||
*/
|
||||
public void
|
||||
removeNotify()
|
||||
{
|
||||
super.removeNotify();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a list of all shortcuts for the menus in this menu bar.
|
||||
*
|
||||
* @return A list of all shortcuts for the menus in this menu bar.
|
||||
*/
|
||||
public synchronized Enumeration
|
||||
shortcuts()
|
||||
{
|
||||
Vector shortcuts = new Vector();
|
||||
Enumeration e = menus.elements();
|
||||
|
||||
while (e.hasMoreElements())
|
||||
{
|
||||
Menu menu = (Menu)e.nextElement();
|
||||
if (menu.getShortcut() != null)
|
||||
shortcuts.addElement(menu.getShortcut());
|
||||
}
|
||||
|
||||
return(shortcuts.elements());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the menu item for the specified shortcut, or <code>null</code>
|
||||
* if no such item exists.
|
||||
*
|
||||
* @param shortcut The shortcut to return the menu item for.
|
||||
*
|
||||
* @return The menu item for the specified shortcut.
|
||||
*/
|
||||
public MenuItem
|
||||
getShortcutMenuItem(MenuShortcut shortcut)
|
||||
{
|
||||
Enumeration e = menus.elements();
|
||||
|
||||
while (e.hasMoreElements())
|
||||
{
|
||||
Menu menu = (Menu)e.nextElement();
|
||||
MenuShortcut s = menu.getShortcut();
|
||||
if ((s != null) && (s.equals(shortcut)))
|
||||
return(menu);
|
||||
}
|
||||
|
||||
return(null);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Deletes the specified menu shortcut.
|
||||
*
|
||||
* @param shortcut The shortcut to delete.
|
||||
*/
|
||||
public void
|
||||
deleteShortcut(MenuShortcut shortcut)
|
||||
{
|
||||
MenuItem it;
|
||||
// This is a slow implementation, but it probably doesn't matter.
|
||||
while ((it = getShortcutMenuItem (shortcut)) != null)
|
||||
it.deleteShortcut ();
|
||||
}
|
||||
|
||||
} // class MenuBar
|
||||
|
@ -221,7 +221,7 @@ getToolkit()
|
||||
*
|
||||
* @return The synchronization lock for this component.
|
||||
*/
|
||||
public final Object
|
||||
protected final Object
|
||||
getTreeLock()
|
||||
{
|
||||
return(tree_lock);
|
||||
@ -292,7 +292,7 @@ processEvent(AWTEvent event)
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return(getClass().getName() + "(" + getName() + ")");
|
||||
return this.getClass().getName() + "[" + paramString() + "]";
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
@ -303,7 +303,7 @@ toString()
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return(toString());
|
||||
return "name=" + getName();
|
||||
}
|
||||
|
||||
// Accessibility API not yet implemented.
|
||||
|
@ -1,27 +1,69 @@
|
||||
/* Copyright (C) 1999, 2000 Free Software Foundation
|
||||
/* MenuContainer.java -- Container for menu items.
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
/* Written using "Java Class Libraries", 2nd edition, plus online
|
||||
* API docs for JDK 1.2 beta from http://www.javasoft.com.
|
||||
* Status: Believed complete and correct.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This interface is a container for menu components.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public interface MenuContainer
|
||||
{
|
||||
public Font getFont();
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
public boolean postEvent(Event evt);
|
||||
/**
|
||||
* Returns the font in use by this container.
|
||||
*
|
||||
* @return The font in use by this container.
|
||||
*/
|
||||
public abstract Font
|
||||
getFont();
|
||||
|
||||
public void remove(MenuComponent comp);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Removes the specified menu component from the menu.
|
||||
*
|
||||
* @param component The menu component to remove.
|
||||
*/
|
||||
public abstract void
|
||||
remove(MenuComponent component);
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Posts and event to the listeners. This is replaced by
|
||||
* <code>dispatchEvent</code>.
|
||||
*
|
||||
* @param event The event to dispatch.
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public abstract boolean
|
||||
postEvent(Event event);
|
||||
|
||||
} // interface MenuContainer
|
||||
|
@ -437,8 +437,8 @@ processActionEvent(ActionEvent event)
|
||||
public String
|
||||
paramString()
|
||||
{
|
||||
return(getClass().getName() + "(label+" + label + ",enabled=" + enabled +
|
||||
",actionCommand=" + actionCommand + ")");
|
||||
return ("label=" + label + ",enabled=" + enabled +
|
||||
",actionCommand=" + actionCommand + "," + super.paramString());
|
||||
}
|
||||
|
||||
// Accessibility API not yet implemented.
|
||||
|
@ -1,75 +1,196 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* MenuShortcut.java -- A class for menu accelerators
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.event.KeyEvent;
|
||||
|
||||
/* Status: Complete, except for hashCode(). Untested. */
|
||||
|
||||
/**
|
||||
* This class implements a keyboard accelerator for a menu item.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class MenuShortcut implements java.io.Serializable
|
||||
{
|
||||
// Fields from the serialization spec. Decalare others "transient".
|
||||
int key;
|
||||
boolean usesShift;
|
||||
|
||||
public MenuShortcut(int key)
|
||||
{
|
||||
this.key = key;
|
||||
}
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public MenuShortcut(int key, boolean useShiftModifier)
|
||||
{
|
||||
this.key = key;
|
||||
this.usesShift = useShiftModifier;
|
||||
}
|
||||
// Serialization Constant
|
||||
private static final long serialVersionUID = 143448358473180225L;
|
||||
|
||||
public int getKey()
|
||||
{
|
||||
return key;
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
public boolean usesShiftModifier()
|
||||
{
|
||||
return usesShift;
|
||||
}
|
||||
/*
|
||||
* Instance Variables
|
||||
*/
|
||||
|
||||
public boolean equals(MenuShortcut ms)
|
||||
{
|
||||
return (ms.key == key && ms.usesShift == usesShift);
|
||||
}
|
||||
/**
|
||||
* @serial The virtual keycode for the shortcut.
|
||||
*/
|
||||
private int key;
|
||||
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj instanceof MenuShortcut)
|
||||
{
|
||||
MenuShortcut ms = (MenuShortcut) obj;
|
||||
return (ms.key == key && ms.usesShift == usesShift);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* @serial <code>true</code> if the shift key was used with this shortcut,
|
||||
* or <code>false</code> otherwise.
|
||||
*/
|
||||
private boolean usesShift;
|
||||
|
||||
public int hashCode()
|
||||
{
|
||||
// FIXME: find/implement the correct algorithm for this
|
||||
if (usesShift)
|
||||
return (2 * key);
|
||||
else
|
||||
return key;
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return paramString(); // ?
|
||||
}
|
||||
|
||||
protected String paramString()
|
||||
{
|
||||
return KeyEvent.getKeyText(key);
|
||||
}
|
||||
/**
|
||||
* Initializes a new instance of <code>MenuShortcut</code> with the
|
||||
* specified virtual key value.
|
||||
*
|
||||
* @param key The virtual keycode for the shortcut.
|
||||
*/
|
||||
public
|
||||
MenuShortcut(int key)
|
||||
{
|
||||
this(key, false);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>MenuShortcut</code> with the
|
||||
* specified virtual key value and shift setting.
|
||||
*
|
||||
* @param key The virtual keycode for the shortcut.
|
||||
* @param usesShift <code>true</code> if the shift key was pressed,
|
||||
* <code>false</code> otherwise.
|
||||
*/
|
||||
public
|
||||
MenuShortcut(int key, boolean usesShift)
|
||||
{
|
||||
this.key = key;
|
||||
this.usesShift = usesShift;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the virtual keycode for this shortcut.
|
||||
*
|
||||
* @return The virtual keycode for this shortcut.
|
||||
*/
|
||||
public int
|
||||
getKey()
|
||||
{
|
||||
return(key);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns the shift setting for this shortcut.
|
||||
*
|
||||
* @return <code>true</code> if the shift key was pressed, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
usesShiftModifier()
|
||||
{
|
||||
return(usesShift);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Tests this object for equality against the specified object. The two
|
||||
* objects will be considered equal if and only if the specified object
|
||||
* is an instance of <code>MenuShortcut</code> and has the same key value
|
||||
* and shift setting as this object.
|
||||
*
|
||||
* @param obj The object to test for equality against.
|
||||
*
|
||||
* @return <code>true</code> if the two objects are equal, <code>false</code>
|
||||
* otherwise.
|
||||
*/
|
||||
public boolean
|
||||
equals(MenuShortcut obj)
|
||||
{
|
||||
if (obj == null)
|
||||
return(false);
|
||||
|
||||
if (obj.key != this.key)
|
||||
return(false);
|
||||
|
||||
if (obj.usesShift != this.usesShift)
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
public boolean
|
||||
equals(Object obj)
|
||||
{
|
||||
if (obj instanceof MenuShortcut)
|
||||
{
|
||||
MenuShortcut ms = (MenuShortcut) obj;
|
||||
return (ms.key == key && ms.usesShift == usesShift);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string representation of this shortcut.
|
||||
*
|
||||
* @return A string representation of this shortcut.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return(getClass().getName() + "[" + paramString () + "]");
|
||||
}
|
||||
|
||||
public int
|
||||
hashCode()
|
||||
{
|
||||
// Arbitrary.
|
||||
return key + (usesShift ? 23 : 57);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a debugging string for this object.
|
||||
*
|
||||
* @return A debugging string for this object.
|
||||
*/
|
||||
protected String
|
||||
paramString()
|
||||
{
|
||||
return "key=" + key + ",usesShift=" + usesShift;
|
||||
}
|
||||
|
||||
} // class MenuShortcut
|
||||
|
@ -1,10 +1,28 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Copyright (C) 2000, 2002 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
|
@ -1,36 +1,88 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* Panel.java -- Simple container object.
|
||||
Copyright (C) 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.PanelPeer;
|
||||
import java.awt.peer.ContainerPeer;
|
||||
import java.awt.peer.ComponentPeer;
|
||||
|
||||
/* This class is complete to 1.2. */
|
||||
|
||||
public class Panel extends Container
|
||||
/**
|
||||
* A panel is a simple container class.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class Panel extends Container implements java.io.Serializable
|
||||
{
|
||||
public Panel()
|
||||
{
|
||||
this (new FlowLayout ());
|
||||
}
|
||||
|
||||
public Panel(LayoutManager layout)
|
||||
{
|
||||
super();
|
||||
setLayout (layout);
|
||||
}
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
//public AccessibleContext getAccessibleContext()
|
||||
|
||||
public void addNotify()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit().createPanel(this);
|
||||
super.addNotify();
|
||||
}
|
||||
/**
|
||||
* Initializes a new instance of <code>Panel</code> that has a default
|
||||
* layout manager of <code>FlowLayout</code>.
|
||||
*/
|
||||
public
|
||||
Panel()
|
||||
{
|
||||
this(new FlowLayout());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>Panel</code> with the specified
|
||||
* layout manager.
|
||||
*
|
||||
* @param layoutManager The layout manager for this object.
|
||||
*/
|
||||
public
|
||||
Panel(LayoutManager layoutManager)
|
||||
{
|
||||
setLayout(layoutManager);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Notifies this object to create its native peer.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (peer == null)
|
||||
peer = getToolkit().createPanel(this);
|
||||
super.addNotify();
|
||||
}
|
||||
|
||||
} // class Panel
|
||||
|
||||
|
@ -1,56 +1,119 @@
|
||||
/* Copyright (C) 2000, 2001 Free Software Foundation
|
||||
/* PopupMenu.java -- An AWT popup menu
|
||||
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libjava.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libjava License. Please consult the file "LIBJAVA_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
import java.awt.peer.PopupMenuPeer;
|
||||
|
||||
/* Status: Incomplete. */
|
||||
|
||||
public class PopupMenu extends Menu
|
||||
import java.awt.peer.MenuPeer;
|
||||
import java.awt.peer.MenuItemPeer;
|
||||
import java.awt.peer.MenuComponentPeer;
|
||||
/**
|
||||
* This class implement an AWT popup menu widget
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public class PopupMenu extends Menu implements java.io.Serializable
|
||||
{
|
||||
public PopupMenu()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public PopupMenu(String label)
|
||||
{
|
||||
super(label);
|
||||
}
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public void addNotify()
|
||||
{
|
||||
if (peer != null)
|
||||
{
|
||||
// This choice of toolkit seems unsatisfying, but I'm not sure
|
||||
// what else to do.
|
||||
peer = Toolkit.getDefaultToolkit ().createPopupMenu (this);
|
||||
}
|
||||
super.addNotify ();
|
||||
}
|
||||
// Serialization Constant
|
||||
private static final long serialVersionUID = -4620452533522760060L;
|
||||
|
||||
public void show(Component origin, int x, int y)
|
||||
{
|
||||
if (! origin.isShowing ()
|
||||
// FIXME: or ! parent is showing -- but how?
|
||||
)
|
||||
{
|
||||
// This is an invalid call which we choose to ignore.
|
||||
return;
|
||||
}
|
||||
|
||||
addNotify (); // FIXME?
|
||||
Event e = new Event (origin, 0, 0, x, y, 0, 0);
|
||||
PopupMenuPeer p = (PopupMenuPeer) peer;
|
||||
p.show (e);
|
||||
}
|
||||
/*************************************************************************/
|
||||
|
||||
// Accessibility API not yet implemented.
|
||||
// public AccessibleContext getAccessibleContext()
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>PopupMenu</code>.
|
||||
*/
|
||||
public
|
||||
PopupMenu()
|
||||
{
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Initializes a new instance of <code>PopupMenu</code> with the specified
|
||||
* label.
|
||||
*
|
||||
* @param label The label for this popup menu.
|
||||
*/
|
||||
public
|
||||
PopupMenu(String label)
|
||||
{
|
||||
super(label);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates this object's native peer.
|
||||
*/
|
||||
public void
|
||||
addNotify()
|
||||
{
|
||||
if (peer != null)
|
||||
peer = getToolkit ().createPopupMenu (this);
|
||||
super.addNotify ();
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Displays this popup menu at the specified coordinates relative to
|
||||
* the specified component.
|
||||
*
|
||||
* @param component The component to which the display coordinates are relative.
|
||||
* @param x The X coordinate of the menu.
|
||||
* @param y The Y coordinate of the menu.
|
||||
*/
|
||||
public void
|
||||
show(Component component, int x, int y)
|
||||
{
|
||||
PopupMenuPeer pmp = (PopupMenuPeer)getPeer();
|
||||
if (pmp != null)
|
||||
{
|
||||
/* XXX
|
||||
Event e = new Event (component, Event.ACTION_EVENT, component);
|
||||
e.x = x;
|
||||
e.y = y;*/
|
||||
pmp.show (component, x, y);
|
||||
}
|
||||
}
|
||||
|
||||
} // class PopupMenu
|
||||
|
||||
|
@ -1,158 +1,419 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* SystemColor.java -- Class to access system color values.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt;
|
||||
|
||||
/** This class contains most of the colors used by the native
|
||||
* windowing sytem to draw native components.
|
||||
* @author Tom Tromey <tromey@redhat.com>
|
||||
* @date December 25, 2000
|
||||
*/
|
||||
/**
|
||||
* This class contains the various "system colors" in use by the
|
||||
* native windowing system.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
*/
|
||||
public final class SystemColor extends Color implements java.io.Serializable
|
||||
{
|
||||
/** The background color for the title bar of an active window. */
|
||||
public static final SystemColor activeCaption
|
||||
= new SystemColor (ACTIVE_CAPTION);
|
||||
/** The border color of an active window. */
|
||||
public static final SystemColor activeCaptionBorder
|
||||
= new SystemColor (ACTIVE_CAPTION_BORDER);
|
||||
/** The color of text in the title bar of an active window. */
|
||||
public static final SystemColor activeCaptionText
|
||||
= new SystemColor (ACTIVE_CAPTION_TEXT);
|
||||
/** The background color. */
|
||||
public static final SystemColor control = new SystemColor (CONTROL);
|
||||
/** The darkest color of an outline. */
|
||||
public static final SystemColor controlDkShadow
|
||||
= new SystemColor (CONTROL_DK_SHADOW);
|
||||
/** The second brightest color of an outline. */
|
||||
public static final SystemColor controlHighlight
|
||||
= new SystemColor (CONTROL_HIGHLIGHT);
|
||||
/** The brightest color of an outline. */
|
||||
public static final SystemColor controlLtHighlight
|
||||
= new SystemColor (CONTROL_LT_HIGHLIGHT);
|
||||
/** The second darkest color of an outline. */
|
||||
public static final SystemColor controlShadow
|
||||
= new SystemColor (CONTROL_SHADOW);
|
||||
/** The color of text in a label. */
|
||||
public static final SystemColor controlText = new SystemColor (CONTROL_TEXT);
|
||||
/** The background color of the desktop. */
|
||||
public static final SystemColor desktop = new SystemColor (DESKTOP);
|
||||
/** The background color for the title bar of an inactive window. */
|
||||
public static final SystemColor inactiveCaption
|
||||
= new SystemColor (INACTIVE_CAPTION);
|
||||
/** The border color of an inactive window. */
|
||||
public static final SystemColor inactiveCaptionBorder
|
||||
= new SystemColor (INACTIVE_CAPTION_BORDER);
|
||||
/** The color of text in the title ar of an inactive window. */
|
||||
public static final SystemColor inactiveCaptionText
|
||||
= new SystemColor (INACTIVE_CAPTION_TEXT);
|
||||
/** The background color of tooltips. */
|
||||
public static final SystemColor info = new SystemColor (INFO);
|
||||
/** The color of text in tooltips. */
|
||||
public static final SystemColor infoText = new SystemColor (INFO_TEXT);
|
||||
/** The background color of a menu. */
|
||||
public static final SystemColor menu = new SystemColor (MENU);
|
||||
/** The color of text in a menu. */
|
||||
public static final SystemColor menuText = new SystemColor (MENU_TEXT);
|
||||
/** The background color of a scrollbar. */
|
||||
public static final SystemColor scrollbar = new SystemColor (SCROLLBAR);
|
||||
/** The background color of text components. */
|
||||
public static final SystemColor text = new SystemColor (TEXT);
|
||||
/** The background color of highlighted text. */
|
||||
public static final SystemColor textHighlight
|
||||
= new SystemColor (TEXT_HIGHLIGHT);
|
||||
/** The color of highlighted text. */
|
||||
public static final SystemColor textHighlightText
|
||||
= new SystemColor (TEXT_HIGHLIGHT_TEXT);
|
||||
/** The color of inactive text. */
|
||||
public static final SystemColor textInactiveText
|
||||
= new SystemColor (TEXT_INACTIVE_TEXT);
|
||||
/** The color of text in text components. */
|
||||
public static final SystemColor textText = new SystemColor (TEXT_TEXT);
|
||||
/** The background color of a window. */
|
||||
public static final SystemColor window = new SystemColor (WINDOW);
|
||||
/** The border color of a window. */
|
||||
public static final SystemColor windowBorder
|
||||
= new SystemColor (WINDOW_BORDER);
|
||||
/** The color of text in a window. */
|
||||
public static final SystemColor windowText = new SystemColor (WINDOW_TEXT);
|
||||
|
||||
public static final int DESKTOP = 0;
|
||||
public static final int ACTIVE_CAPTION = 1;
|
||||
public static final int ACTIVE_CAPTION_TEXT = 2;
|
||||
public static final int ACTIVE_CAPTION_BORDER = 3;
|
||||
public static final int INACTIVE_CAPTION = 4;
|
||||
public static final int INACTIVE_CAPTION_TEXT = 5;
|
||||
public static final int INACTIVE_CAPTION_BORDER = 6;
|
||||
public static final int WINDOW = 7;
|
||||
public static final int WINDOW_BORDER = 8;
|
||||
public static final int WINDOW_TEXT = 9;
|
||||
public static final int MENU = 10;
|
||||
public static final int MENU_TEXT = 11;
|
||||
public static final int TEXT = 12;
|
||||
public static final int TEXT_TEXT = 13;
|
||||
public static final int TEXT_HIGHLIGHT = 14;
|
||||
public static final int TEXT_HIGHLIGHT_TEXT = 15;
|
||||
public static final int TEXT_INACTIVE_TEXT = 16;
|
||||
public static final int CONTROL = 17;
|
||||
public static final int CONTROL_TEXT = 18;
|
||||
public static final int CONTROL_HIGHLIGHT = 19;
|
||||
public static final int CONTROL_LT_HIGHLIGHT = 20;
|
||||
public static final int CONTROL_SHADOW = 21;
|
||||
public static final int CONTROL_DK_SHADOW = 22;
|
||||
public static final int SCROLLBAR = 23;
|
||||
public static final int INFO = 24;
|
||||
public static final int INFO_TEXT = 25;
|
||||
/*
|
||||
* Static Variables
|
||||
*/
|
||||
|
||||
public static final int NUM_COLORS = 26;
|
||||
/**
|
||||
* Array index of the desktop color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int DESKTOP = 0;
|
||||
|
||||
private static final int rgbs[] =
|
||||
{
|
||||
0x005c5c,
|
||||
0x000080,
|
||||
0xffffff,
|
||||
0xc0c0c0,
|
||||
0x808080,
|
||||
0xc0c0c0,
|
||||
0xc0c0c0,
|
||||
0xffffff,
|
||||
0x000000,
|
||||
0x000000,
|
||||
0xc0c0c0,
|
||||
0x000000,
|
||||
0xc0c0c0,
|
||||
0x000000,
|
||||
0x000080,
|
||||
0xffffff,
|
||||
0x808080,
|
||||
0xc0c0c0,
|
||||
0x000000,
|
||||
0xffffff,
|
||||
0xe0e0e0,
|
||||
0x808080,
|
||||
0x000000,
|
||||
0xe0e0e0,
|
||||
0xe0e000,
|
||||
0x000000
|
||||
};
|
||||
/**
|
||||
* Array index of the active caption color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int ACTIVE_CAPTION = 1;
|
||||
|
||||
public int getRGB ()
|
||||
{
|
||||
return rgbs[rgba];
|
||||
}
|
||||
/**
|
||||
* Array index of the active caption text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int ACTIVE_CAPTION_TEXT = 2;
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
return "[" + getClass ().getName () + " " + rgba + "]";
|
||||
}
|
||||
/**
|
||||
* Array index of the active caption border color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int ACTIVE_CAPTION_BORDER = 3;
|
||||
|
||||
private SystemColor (int index)
|
||||
{
|
||||
super (index, true);
|
||||
}
|
||||
/**
|
||||
* Array index of the inactive caption color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int INACTIVE_CAPTION = 4;
|
||||
|
||||
/**
|
||||
* Array index of the inactive caption text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int INACTIVE_CAPTION_TEXT = 5;
|
||||
|
||||
/**
|
||||
* Array index of the inactive caption border color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int INACTIVE_CAPTION_BORDER = 6;
|
||||
|
||||
/**
|
||||
* Array index of the window background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int WINDOW = 7;
|
||||
|
||||
/**
|
||||
* Array index of the window border color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int WINDOW_BORDER = 8;
|
||||
|
||||
/**
|
||||
* Array index of the window text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int WINDOW_TEXT = 9;
|
||||
|
||||
/**
|
||||
* Array index of the menu background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int MENU = 10;
|
||||
|
||||
/**
|
||||
* Array index of the menu text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int MENU_TEXT = 11;
|
||||
|
||||
/**
|
||||
* Array index of the text background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int TEXT = 12;
|
||||
|
||||
/**
|
||||
* Array index of the text foreground color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int TEXT_TEXT = 13;
|
||||
|
||||
/**
|
||||
* Array index of the highlighted text background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int TEXT_HIGHLIGHT = 14;
|
||||
|
||||
/**
|
||||
* Array index of the highlighted text foreground color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int TEXT_HIGHLIGHT_TEXT = 15;
|
||||
|
||||
/**
|
||||
* Array index of the inactive text foreground color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int TEXT_INACTIVE_TEXT = 16;
|
||||
|
||||
/**
|
||||
* Array index of the control background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL = 17;
|
||||
|
||||
/**
|
||||
* Array index of the control text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL_TEXT = 18;
|
||||
|
||||
/**
|
||||
* Array index of the highlighted control background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL_HIGHLIGHT = 19;
|
||||
|
||||
/**
|
||||
* Array index of the lightly highlighted control background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL_LT_HIGHLIGHT = 20;
|
||||
|
||||
/**
|
||||
* Array index of the shadowed control background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL_SHADOW = 21;
|
||||
|
||||
/**
|
||||
* Array index of the darkly shadowed control background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int CONTROL_DK_SHADOW = 22;
|
||||
|
||||
/**
|
||||
* Array index of the scrollbar background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int SCROLLBAR = 23;
|
||||
|
||||
/**
|
||||
* Array index of the info background color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int INFO = 24;
|
||||
|
||||
/**
|
||||
* Array index of the info text color. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int INFO_TEXT = 25;
|
||||
|
||||
/**
|
||||
* The number of system colors. Used by
|
||||
* <code>Toolkit.loadSystemColors()</code>.
|
||||
*/
|
||||
public static final int NUM_COLORS = 26;
|
||||
|
||||
/**
|
||||
* The desktop color.
|
||||
*/
|
||||
public static final SystemColor desktop;
|
||||
|
||||
/**
|
||||
* The active caption background color.
|
||||
*/
|
||||
public static final SystemColor activeCaption;
|
||||
|
||||
/**
|
||||
* The active caption text color.
|
||||
*/
|
||||
public static final SystemColor activeCaptionText;
|
||||
|
||||
/**
|
||||
* The active caption border color.
|
||||
*/
|
||||
public static final SystemColor activeCaptionBorder;
|
||||
|
||||
/**
|
||||
* The inactive caption background color.
|
||||
*/
|
||||
public static final SystemColor inactiveCaption;
|
||||
|
||||
/**
|
||||
* The inactive caption text color.
|
||||
*/
|
||||
public static final SystemColor inactiveCaptionText;
|
||||
|
||||
/**
|
||||
* The inactive caption border color.
|
||||
*/
|
||||
public static final SystemColor inactiveCaptionBorder;
|
||||
|
||||
/**
|
||||
* The window background color.
|
||||
*/
|
||||
public static final SystemColor window;
|
||||
|
||||
/**
|
||||
* The window border color.
|
||||
*/
|
||||
public static final SystemColor windowBorder;
|
||||
|
||||
/**
|
||||
* The window text color.
|
||||
*/
|
||||
public static final SystemColor windowText;
|
||||
|
||||
/**
|
||||
* The menu background color.
|
||||
*/
|
||||
public static final SystemColor menu;
|
||||
|
||||
/**
|
||||
* The menu text color.
|
||||
*/
|
||||
public static final SystemColor menuText;
|
||||
|
||||
/**
|
||||
* The text background color.
|
||||
*/
|
||||
public static final SystemColor text;
|
||||
|
||||
/**
|
||||
* The text foreground color.
|
||||
*/
|
||||
public static final SystemColor textText;
|
||||
|
||||
/**
|
||||
* The highlighted text background color.
|
||||
*/
|
||||
public static final SystemColor textHighlight;
|
||||
|
||||
/**
|
||||
* The highlighted text foreground color.
|
||||
*/
|
||||
public static final SystemColor textHighlightText;
|
||||
|
||||
/**
|
||||
* The inactive text color.
|
||||
*/
|
||||
public static final SystemColor textInactiveText;
|
||||
|
||||
/**
|
||||
* The control background color.
|
||||
*/
|
||||
public static final SystemColor control;
|
||||
|
||||
/**
|
||||
* The control text color.
|
||||
*/
|
||||
public static final SystemColor controlText;
|
||||
|
||||
/**
|
||||
* The control highlight color.
|
||||
*/
|
||||
public static final SystemColor controlHighlight;
|
||||
|
||||
/**
|
||||
* The control light highlight color.
|
||||
*/
|
||||
public static final SystemColor controlLtHighlight;
|
||||
|
||||
/**
|
||||
* The control shadow color.
|
||||
*/
|
||||
public static final SystemColor controlShadow;
|
||||
|
||||
/**
|
||||
* The control dark shadow color.
|
||||
*/
|
||||
public static final SystemColor controlDkShadow;
|
||||
|
||||
/**
|
||||
* The scrollbar color.
|
||||
*/
|
||||
public static final SystemColor scrollbar;
|
||||
|
||||
/**
|
||||
* The info text background color.
|
||||
*/
|
||||
public static final SystemColor info;
|
||||
|
||||
/**
|
||||
* The info text foreground color.
|
||||
*/
|
||||
public static final SystemColor infoText;
|
||||
|
||||
// Serialization version constant
|
||||
private static final long serialVersionUID = 4503142729533789064L;
|
||||
|
||||
static
|
||||
{
|
||||
int[] sys_color_rgbs = new int[NUM_COLORS];
|
||||
Toolkit.getDefaultToolkit().loadSystemColors(sys_color_rgbs);
|
||||
|
||||
desktop = new SystemColor(sys_color_rgbs[DESKTOP]);
|
||||
activeCaption= new SystemColor(sys_color_rgbs[ACTIVE_CAPTION]);
|
||||
activeCaptionText= new SystemColor(sys_color_rgbs[ACTIVE_CAPTION_TEXT]);
|
||||
activeCaptionBorder = new SystemColor(sys_color_rgbs[ACTIVE_CAPTION_BORDER]);
|
||||
inactiveCaption = new SystemColor(sys_color_rgbs[INACTIVE_CAPTION]);
|
||||
inactiveCaptionText = new SystemColor(sys_color_rgbs[INACTIVE_CAPTION_TEXT]);
|
||||
inactiveCaptionBorder =
|
||||
new SystemColor(sys_color_rgbs[INACTIVE_CAPTION_BORDER]);
|
||||
window = new SystemColor(sys_color_rgbs[WINDOW]);
|
||||
windowBorder = new SystemColor(sys_color_rgbs[WINDOW_BORDER]);
|
||||
windowText = new SystemColor(sys_color_rgbs[WINDOW_TEXT]);
|
||||
menu = new SystemColor(sys_color_rgbs[MENU]);
|
||||
menuText = new SystemColor(sys_color_rgbs[MENU_TEXT]);
|
||||
text = new SystemColor(sys_color_rgbs[TEXT]);
|
||||
textText = new SystemColor(sys_color_rgbs[TEXT_TEXT]);
|
||||
textHighlight = new SystemColor(sys_color_rgbs[TEXT_HIGHLIGHT]);
|
||||
textHighlightText = new SystemColor(sys_color_rgbs[TEXT_HIGHLIGHT_TEXT]);
|
||||
textInactiveText = new SystemColor(sys_color_rgbs[TEXT_INACTIVE_TEXT]);
|
||||
control = new SystemColor(sys_color_rgbs[CONTROL]);
|
||||
controlText = new SystemColor(sys_color_rgbs[CONTROL_TEXT]);
|
||||
controlHighlight = new SystemColor(sys_color_rgbs[CONTROL_HIGHLIGHT]);
|
||||
controlLtHighlight = new SystemColor(sys_color_rgbs[CONTROL_LT_HIGHLIGHT]);
|
||||
controlShadow = new SystemColor(sys_color_rgbs[CONTROL_SHADOW]);
|
||||
controlDkShadow = new SystemColor(sys_color_rgbs[CONTROL_DK_SHADOW]);
|
||||
scrollbar = new SystemColor(sys_color_rgbs[SCROLLBAR]);
|
||||
info = new SystemColor(sys_color_rgbs[INFO]);
|
||||
infoText = new SystemColor(sys_color_rgbs[INFO_TEXT]);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Constructors
|
||||
*/
|
||||
|
||||
private
|
||||
SystemColor(int rgb)
|
||||
{
|
||||
super(rgb);
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* Instance Methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the RGB value for this color as an <code>int</code>. The first
|
||||
* byte is the blue value, the second the green value, the third the
|
||||
* red value and the fourth is set to 0xFF.
|
||||
*
|
||||
* @return The RGB value.
|
||||
*/
|
||||
public int
|
||||
getRGB()
|
||||
{
|
||||
// Override only to be spec consistent.
|
||||
return(super.getRGB());
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/**
|
||||
* Returns a string describing this color.
|
||||
*
|
||||
* @return A string describing this color.
|
||||
*/
|
||||
public String
|
||||
toString()
|
||||
{
|
||||
return("SystemColor(R=" + getRed() + ",G=" + getGreen() + ",B=" +
|
||||
getBlue() + ")");
|
||||
}
|
||||
|
||||
} // class SystemColor
|
||||
|
||||
|
@ -1,15 +1,36 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ButtonPeer.java -- Peer interface for buttons
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface ButtonPeer extends ComponentPeer
|
||||
{
|
||||
void setLabel(String label);
|
||||
}
|
||||
|
||||
public abstract void setLabel(String label);
|
||||
|
||||
} // interface ButtonPeer
|
||||
|
||||
|
@ -1,13 +1,34 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* CanvasPeer.java -- Peer interface for a canvas
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface CanvasPeer extends ComponentPeer
|
||||
{
|
||||
}
|
||||
|
||||
} // interface CanvasPeer
|
||||
|
||||
|
@ -1,15 +1,36 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* CheckboxMenuItemPeer.java -- Peer interface for checkbox menu items
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface CheckboxMenuItemPeer extends MenuItemPeer
|
||||
{
|
||||
void setState(boolean state);
|
||||
}
|
||||
|
||||
public abstract void setState(boolean state);
|
||||
|
||||
} // interface CheckboxMenuItemPeer
|
||||
|
||||
|
@ -1,16 +1,38 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* CheckboxPeer.java -- Interface for checkbox peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface CheckboxPeer extends ComponentPeer
|
||||
{
|
||||
void setCheckboxGroup(java.awt.CheckboxGroup group);
|
||||
void setLabel(String label);
|
||||
void setState(boolean state);
|
||||
}
|
||||
|
||||
public abstract void setCheckboxGroup(java.awt.CheckboxGroup group);
|
||||
public abstract void setLabel(String label);
|
||||
public abstract void setState(boolean state);
|
||||
|
||||
} // interface CheckboxPeer
|
||||
|
||||
|
@ -1,17 +1,39 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ChoicePeer.java -- Peer for choice box
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface ChoicePeer extends ComponentPeer
|
||||
{
|
||||
void add(String item, int index);
|
||||
void remove(int index);
|
||||
void select(int index);
|
||||
}
|
||||
|
||||
public abstract void add(String item, int index);
|
||||
public abstract void addItem(String item, int index);
|
||||
public abstract void remove(int index);
|
||||
public abstract void select(int index);
|
||||
|
||||
} // interface ChoicePeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ComponentPeer.java -- Toplevel component peer
|
||||
Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -13,10 +32,42 @@ import java.awt.image.*;
|
||||
|
||||
public interface ComponentPeer
|
||||
{
|
||||
int checkImage(Image img, int width, int height, ImageObserver o);
|
||||
Image createImage(ImageProducer prod);
|
||||
Image createImage(int width, int height);
|
||||
void dispose();
|
||||
public int checkImage(Image img, int width, int height,
|
||||
ImageObserver ob);
|
||||
public Image createImage(ImageProducer prod);
|
||||
public Image createImage(int width, int height);
|
||||
public void disable();
|
||||
public void dispose();
|
||||
public void enable();
|
||||
public ColorModel getColorModel();
|
||||
public FontMetrics getFontMetrics(Font f);
|
||||
public Graphics getGraphics();
|
||||
public Point getLocationOnScreen();
|
||||
public Dimension getMinimumSize();
|
||||
public Dimension getPreferredSize();
|
||||
public Toolkit getToolkit();
|
||||
// The JCL says that handleEvent returns boolean. However, we've
|
||||
// experimentally determined that it in fact actually returns void.
|
||||
public void handleEvent(AWTEvent e);
|
||||
public void hide();
|
||||
public boolean isFocusTraversable();
|
||||
public Dimension minimumSize();
|
||||
public Dimension preferredSize();
|
||||
public void paint(Graphics graphics);
|
||||
public boolean prepareImage(Image img, int width, int height,
|
||||
ImageObserver ob);
|
||||
public void print(Graphics graphics);
|
||||
public void repaint(long tm, int x, int y, int width, int height);
|
||||
public void requestFocus();
|
||||
public void reshape(int x, int y, int width, int height);
|
||||
public void setBackground(Color color);
|
||||
public void setBounds(int x, int y, int width, int height);
|
||||
public void setCursor(Cursor cursor);
|
||||
public void setEnabled(boolean enabled);
|
||||
public void setFont(Font font);
|
||||
public void setForeground(Color color);
|
||||
public void setVisible(boolean visible);
|
||||
public void show();
|
||||
|
||||
/**
|
||||
* Get the graphics configuration of the component. The color model
|
||||
@ -24,27 +75,5 @@ public interface ComponentPeer
|
||||
*/
|
||||
GraphicsConfiguration getGraphicsConfiguration();
|
||||
|
||||
FontMetrics getFontMetrics(Font f);
|
||||
Graphics getGraphics();
|
||||
Point getLocationOnScreen();
|
||||
Dimension getMinimumSize();
|
||||
Dimension getPreferredSize();
|
||||
Toolkit getToolkit();
|
||||
// The JCL says that handleEvent returns boolean. However, we've
|
||||
// experimentally determined that it in fact actually returns void.
|
||||
void handleEvent(AWTEvent e);
|
||||
boolean isFocusTraversable();
|
||||
void paint(Graphics graphics);
|
||||
boolean prepareImage(Image img, int width, int height, ImageObserver o);
|
||||
void print(Graphics graphics);
|
||||
void repaint(long tm, int x, int y, int width, int height);
|
||||
void requestFocus();
|
||||
void setBackground(Color color);
|
||||
void setBounds(int x, int y, int width, int height);
|
||||
void setCursor(Cursor cursor);
|
||||
void setEnabled(boolean enabled);
|
||||
void setEventMask(long eventMask);
|
||||
void setFont(Font font);
|
||||
void setForeground(Color color);
|
||||
void setVisible(boolean visible);
|
||||
public void setEventMask (long mask);
|
||||
}
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ContainerPeer.java -- Interface for container peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,7 +31,11 @@ import java.awt.Insets;
|
||||
|
||||
public interface ContainerPeer extends ComponentPeer
|
||||
{
|
||||
Insets getInsets();
|
||||
void beginValidate();
|
||||
void endValidate();
|
||||
}
|
||||
|
||||
public abstract Insets insets();
|
||||
public abstract Insets getInsets();
|
||||
public abstract void beginValidate();
|
||||
public abstract void endValidate();
|
||||
|
||||
} // interface ContainerPeer
|
||||
|
||||
|
@ -1,15 +1,37 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* DialogPeer.java -- Interface for dialog box peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface DialogPeer extends WindowPeer
|
||||
{
|
||||
void setResizable(boolean resizeable);
|
||||
void setTitle(String title);
|
||||
}
|
||||
|
||||
public abstract void setResizable(boolean resizeable);
|
||||
public abstract void setTitle(String title);
|
||||
|
||||
} // interface DialogPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* FileDialogPeer.java -- Interface for file selection dialog box peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,7 +31,10 @@ import java.io.FilenameFilter;
|
||||
|
||||
public interface FileDialogPeer extends DialogPeer
|
||||
{
|
||||
void setDirectory(String dir);
|
||||
void setFile(String file);
|
||||
void setFilenameFilter(FilenameFilter filter);
|
||||
}
|
||||
|
||||
public abstract void setFile(String file);
|
||||
public abstract void setDirectory(String dir);
|
||||
public abstract void setFilenameFilter(FilenameFilter ff);
|
||||
|
||||
} // interface FileDialogPeer
|
||||
|
||||
|
@ -1,13 +1,34 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* FontPeer.java -- Interface for font peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface FontPeer
|
||||
{
|
||||
}
|
||||
|
||||
} // interface FontPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* FramePeer.java -- Interface for frame peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -13,8 +32,11 @@ import java.awt.MenuBar;
|
||||
|
||||
public interface FramePeer extends WindowPeer
|
||||
{
|
||||
void setIconImage(Image image);
|
||||
void setMenuBar(MenuBar mb);
|
||||
void setResizable(boolean resizable);
|
||||
void setTitle(String title);
|
||||
}
|
||||
|
||||
public abstract void setIconImage(Image image);
|
||||
public abstract void setMenuBar(MenuBar mb);
|
||||
public abstract void setResizable(boolean resizable);
|
||||
public abstract void setTitle(String title);
|
||||
|
||||
} // interface FramePeer
|
||||
|
||||
|
@ -1,15 +1,37 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* LabelPeer.java -- Interface for simple text lable peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface LabelPeer extends ComponentPeer
|
||||
{
|
||||
void setAlignment(int alignment);
|
||||
void setText(String text);
|
||||
}
|
||||
|
||||
public abstract void setAlignment(int alignment);
|
||||
public abstract void setText(String text);
|
||||
|
||||
} // interface LabelPeer
|
||||
|
||||
|
@ -1,13 +1,34 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* LightweightPeer.java -- Interface for lightweight peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface LightweightPeer extends ComponentPeer
|
||||
{
|
||||
}
|
||||
|
||||
} // interface LightweightPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ListPeer.java -- Interface for list box peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,12 +31,20 @@ import java.awt.Dimension;
|
||||
|
||||
public interface ListPeer extends ComponentPeer
|
||||
{
|
||||
void add(String item, int index);
|
||||
void delItems(int start_index, int end_index);
|
||||
void deselect(int index);
|
||||
int[] getSelectedIndexes();
|
||||
void makeVisible(int index);
|
||||
void removeAll();
|
||||
void select(int index);
|
||||
void setMultipleMode(boolean multipleMode);
|
||||
}
|
||||
|
||||
public abstract void add(String item, int index);
|
||||
public abstract void addItem(String item, int index);
|
||||
public abstract void clear();
|
||||
public abstract void delItems(int start_index, int end_index);
|
||||
public abstract void deselect(int index);
|
||||
public abstract int[] getSelectedIndexes();
|
||||
public abstract void makeVisible(int index);
|
||||
public abstract Dimension minimumSize(int s);
|
||||
public abstract Dimension preferredSize(int s);
|
||||
public abstract void removeAll();
|
||||
public abstract void select(int index);
|
||||
public abstract void setMultipleMode(boolean multi);
|
||||
public abstract void setMultipleSelections(boolean multi);
|
||||
|
||||
} // interface ListPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* MenuBarPeer.java -- Interface for menu bar peer
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,7 +31,10 @@ import java.awt.Menu;
|
||||
|
||||
public interface MenuBarPeer extends MenuComponentPeer
|
||||
{
|
||||
void addHelpMenu(Menu menu);
|
||||
void add(Menu menu);
|
||||
void remove(int index);
|
||||
}
|
||||
|
||||
public abstract void addHelpMenu(Menu menu);
|
||||
public abstract void addMenu(Menu menu);
|
||||
public abstract void delMenu(int index);
|
||||
|
||||
} // interface MenuBarPeer
|
||||
|
||||
|
@ -1,14 +1,36 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* MenuComponentPeer.java --
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface MenuComponentPeer
|
||||
{
|
||||
void dispose();
|
||||
}
|
||||
|
||||
public abstract void dispose();
|
||||
|
||||
} // interface MenuComponentPeer
|
||||
|
||||
|
@ -1,15 +1,39 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* MenuItemPeer.java -- Interface for menu item peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface MenuItemPeer extends MenuComponentPeer
|
||||
{
|
||||
void setEnabled(boolean enabled);
|
||||
void setLabel(String text);
|
||||
}
|
||||
|
||||
public abstract void disable();
|
||||
public abstract void enable();
|
||||
public abstract void setEnabled(boolean enabled);
|
||||
public abstract void setLabel(String text);
|
||||
|
||||
} // interface MenuItemPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* MenuPeer.java -- Interface for menu peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,7 +31,8 @@ import java.awt.MenuItem;
|
||||
|
||||
public interface MenuPeer extends MenuItemPeer
|
||||
{
|
||||
void add(MenuItem item);
|
||||
void addSeparator();
|
||||
void remove(int index);
|
||||
public abstract void addItem (MenuItem item);
|
||||
public abstract void addSeparator ();
|
||||
public abstract void delItem (int index);
|
||||
}
|
||||
|
||||
|
@ -1,13 +1,34 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* PanelPeer.java -- Interface for panel peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface PanelPeer extends ContainerPeer
|
||||
{
|
||||
}
|
||||
|
||||
} // interface PanelPeer
|
||||
|
||||
|
@ -1,16 +1,37 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* PopupMenuPeer.java -- Interface for popup menu peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
import java.awt.Event;
|
||||
|
||||
import java.awt.Component;
|
||||
public interface PopupMenuPeer extends MenuPeer
|
||||
{
|
||||
void show(Event e);
|
||||
}
|
||||
|
||||
public abstract void show (Component origin, int x, int y);
|
||||
|
||||
} // interface PopupMenuPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ScrollPanePeer.java -- Interface for scrollable panes
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,10 +31,13 @@ import java.awt.Adjustable;
|
||||
|
||||
public interface ScrollPanePeer extends ContainerPeer
|
||||
{
|
||||
void childResized(int width, int height);
|
||||
int getHScrollbarHeight();
|
||||
int getVScrollbarWidth();
|
||||
void setScrollPosition(int x, int y);
|
||||
void setUnitIncrement(Adjustable adj, int increment);
|
||||
void setValue(Adjustable adj, int value);
|
||||
}
|
||||
|
||||
public abstract int getHScrollbarHeight();
|
||||
public abstract int getVScrollbarWidth();
|
||||
public abstract void setScrollPosition(int h, int v);
|
||||
public abstract void childResized(int width, int height);
|
||||
public abstract void setUnitIncrement(Adjustable item, int inc);
|
||||
public abstract void setValue(Adjustable item, int value);
|
||||
|
||||
} // interface ScollPanePeer
|
||||
|
||||
|
@ -1,16 +1,38 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* ScrollbarPeer.java -- Interface for scrollbar peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface ScrollbarPeer extends ComponentPeer
|
||||
{
|
||||
void setLineIncrement(int increment);
|
||||
void setPageIncrement(int increment);
|
||||
void setValues(int value, int visible, int minimum, int maximum);
|
||||
}
|
||||
|
||||
public abstract void setLineIncrement(int inc);
|
||||
public abstract void setPageIncrement(int inc);
|
||||
public abstract void setValues(int value, int visible, int min, int max);
|
||||
|
||||
} // interface ScrollbarPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* TextAreaPeer.java -- Interface for text area peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,6 +31,14 @@ import java.awt.Dimension;
|
||||
|
||||
public interface TextAreaPeer extends TextComponentPeer
|
||||
{
|
||||
void insert(String text, int pos);
|
||||
void replaceRange(String text, int start, int end);
|
||||
}
|
||||
|
||||
public abstract void insert(String text, int pos);
|
||||
public abstract void insertText(String text, int pos);
|
||||
public abstract Dimension minimumSize(int rows, int cols);
|
||||
public abstract Dimension getMinimumSize(int rows, int cols);
|
||||
public abstract Dimension preferredSize(int rows, int cols);
|
||||
public abstract Dimension getPreferredSize(int rows, int cols);
|
||||
public abstract void replaceRange(String text, int start_pos, int end_pos);
|
||||
public abstract void replaceText(String text, int start_pos, int end_pos);
|
||||
|
||||
} // interface TextAreaPeer
|
||||
|
@ -1,21 +1,43 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* TextComponentPeer.java -- Superclass interface for text components
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface TextComponentPeer extends ComponentPeer
|
||||
{
|
||||
int getCaretPosition();
|
||||
int getSelectionEnd();
|
||||
int getSelectionStart();
|
||||
String getText();
|
||||
void select(int start, int end);
|
||||
void setCaretPosition(int pos);
|
||||
void setEditable(boolean editable);
|
||||
void setText(String text);
|
||||
}
|
||||
|
||||
public abstract int getSelectionEnd();
|
||||
public abstract int getSelectionStart();
|
||||
public abstract String getText();
|
||||
public abstract void setText(String text);
|
||||
public abstract void select(int start_pos, int end_pos);
|
||||
public abstract void setEditable(boolean editable);
|
||||
public abstract int getCaretPosition();
|
||||
public abstract void setCaretPosition(int pos);
|
||||
|
||||
} // interface TextComponentPeer
|
||||
|
||||
|
@ -1,10 +1,29 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* TextFieldPeer.java -- Interface for text field peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
@ -12,5 +31,13 @@ import java.awt.Dimension;
|
||||
|
||||
public interface TextFieldPeer extends TextComponentPeer
|
||||
{
|
||||
void setEchoChar(char echo);
|
||||
}
|
||||
|
||||
public abstract Dimension minimumSize(int len);
|
||||
public abstract Dimension preferredSize(int len);
|
||||
public abstract Dimension getMinimumSize(int len);
|
||||
public abstract Dimension getPreferredSize(int len);
|
||||
public abstract void setEchoChar(char echo_char);
|
||||
public abstract void setEchoCharacter(char echo_char);
|
||||
|
||||
} // interface TextFieldPeer
|
||||
|
||||
|
@ -1,15 +1,37 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation
|
||||
/* WindowPeer.java -- Interface for window peers
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of libgcj.
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA.
|
||||
|
||||
As a special exception, if you link this library with other files to
|
||||
produce an executable, this library does not by itself cause the
|
||||
resulting executable to be covered by the GNU General Public License.
|
||||
This exception does not however invalidate any other reasons why the
|
||||
executable file might be covered by the GNU General Public License. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.awt.peer;
|
||||
|
||||
public interface WindowPeer extends ContainerPeer
|
||||
{
|
||||
void toBack();
|
||||
void toFront();
|
||||
}
|
||||
|
||||
public abstract void toBack();
|
||||
public abstract void toFront();
|
||||
|
||||
} // interface WindowPeer
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user