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:
Tom Tromey 2002-01-22 22:03:04 +00:00 committed by Tom Tromey
parent e3b0efd1ee
commit bda1450543
58 changed files with 6837 additions and 2479 deletions

View File

@ -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

View File

@ -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;

View File

@ -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()
{
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View 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

View 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

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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