Imported Classpath 0.18.

* sources.am, Makefile.in: Updated.
	* Makefile.am (nat_source_files): Removed natProxy.cc.
	* java/lang/reflect/natProxy.cc: Removed.
	* gnu/classpath/jdwp/VMFrame.java,
	gnu/classpath/jdwp/VMIdManager.java,
	gnu/classpath/jdwp/VMVirtualMachine.java,
	java/lang/reflect/VMProxy.java: New files.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* scripts/makemake.tcl (verbose): Add gnu/java/awt/peer/qt to BC
	list.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/net/DefaultContentHandlerFactory.java (getContent):
	Remove ClasspathToolkit references.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/awt/xlib/XCanvasPeer.java: Add new peer methods.
	* gnu/awt/xlib/XFramePeer.java: Likewise.
	* gnu/awt/xlib/XGraphicsConfiguration.java: Likewise.

2005-09-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* Makefile.am (libgcjawt_la_SOURCES): Remove jawt.c.  Add
	classpath/native/jawt/jawt.c.
	* Makefile.in: Regenerate.
	* jawt.c: Remove file.
	* include/Makefile.am (tool_include__HEADERS): Remove jawt.h and
	jawt_md.h.  Add ../classpath/include/jawt.h and
	../classpath/include/jawt_md.h.
	* include/Makefile.in: Regenerate.
	* include/jawt.h: Regenerate.
	* include/jawt_md.h: Regenerate.

From-SVN: r104586
This commit is contained in:
Tom Tromey 2005-09-23 21:31:04 +00:00
parent 9b044d1951
commit 1ea63ef8be
544 changed files with 34724 additions and 14512 deletions

View file

@ -1,5 +1,5 @@
/* DefaultCaret.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -51,69 +51,203 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.EventListenerList;
/**
* The default implementation of the {@link Caret} interface.
*
* @author orgininal author unknown
* @author Roman Kennke (roman@kennke.org)
*/
public class DefaultCaret extends Rectangle
implements Caret, FocusListener, MouseListener, MouseMotionListener
{
/**
* The serial version UID for DefaultCaret.
*/
private static final long serialVersionUID = 228155774675466193L;
/**
* The <code>ChangeEvent</code> that is fired by {@link #fireStateChanged()}.
*/
protected ChangeEvent changeEvent = new ChangeEvent(this);
/**
* Stores all registered event listeners.
*/
protected EventListenerList listenerList = new EventListenerList();
/**
* The text component in which this caret is installed.
*/
private JTextComponent textComponent;
/**
* Indicates if the selection should be visible or not.
*/
private boolean selectionVisible = true;
/**
* The blink rate of this <code>Caret</code>.
*/
private int blinkRate = 500;
/**
* The current dot position.
*/
private int dot = 0;
/**
* The current mark position.
*/
private int mark = 0;
/**
* The current visual caret position.
*/
private Point magicCaretPosition = null;
/**
* Indicates if this <code>Caret</code> is currently visible or not.
*/
private boolean visible = true;
/**
* The current highlight entry.
*/
private Object highlightEntry;
/**
* Moves the caret position when the mouse is dragged over the text
* component, modifying the selection accordingly.
*
* @param event the <code>MouseEvent</code> describing the drag operation
*/
public void mouseDragged(MouseEvent event)
{
// FIXME: Implement this properly.
}
/**
* Indicates a mouse movement over the text component. Does nothing here.
*
* @param event the <code>MouseEvent</code> describing the mouse operation
*/
public void mouseMoved(MouseEvent event)
{
// Nothing to do here.
}
/**
* When the click is received from Button 1 then the following actions
* are performed here:
*
* <ul>
* <li>If we receive a double click, the caret position (dot) is set
* to the position associated to the mouse click and the word at
* this location is selected.</li>
* <li>If we receive a triple click, the caret position (dot) is set
* to the position associated to the mouse click and the line at
* this location is selected.</li>
* </ul>
*
* @param event the <code>MouseEvent</code> describing the click operation
*/
public void mouseClicked(MouseEvent event)
{
// FIXME: Implement this properly.
}
/**
* Indicates that the mouse has entered the text component. Nothing is done
* here.
*
* @param event the <code>MouseEvent</code> describing the mouse operation
*/
public void mouseEntered(MouseEvent event)
{
// Nothing to do here.
}
/**
* Indicates that the mouse has exited the text component. Nothing is done
* here.
*
* @param event the <code>MouseEvent</code> describing the mouse operation
*/
public void mouseExited(MouseEvent event)
{
}
/**
* If the button 1 is pressed, the caret position is updated to the
* position of the mouse click and the text component requests the input
* focus if it is enabled. If the SHIFT key is held down, the caret will
* be moved, which might select the text between the old and new location.
*
* @param event the <code>MouseEvent</code> describing the press operation
*/
public void mousePressed(MouseEvent event)
{
// FIXME: Implement this properly.
}
/**
* Indicates that a mouse button has been released on the text component.
* Nothing is done here.
*
* @param event the <code>MouseEvent</code> describing the mouse operation
*/
public void mouseReleased(MouseEvent event)
{
// Nothing to do here.
}
/**
* Sets the caret to <code>visible</code> if the text component is editable.
*
* @param event the <code>FocusEvent</code>
*/
public void focusGained(FocusEvent event)
{
}
/**
* Sets the caret to <code>invisible</code>.
*
* @param event the <code>FocusEvent</code>
*/
public void focusLost(FocusEvent event)
{
}
/**
* Moves the caret to the position specified in the <code>MouseEvent</code>.
* This will cause a selection if the dot and mark are different.
*
* @param event the <code>MouseEvent</code> from which to fetch the position
*/
protected void moveCaret(MouseEvent event)
{
// FIXME: Implement this properly.
}
/**
* Repositions the caret to the position specified in the
* <code>MouseEvent</code>.
*
* @param event the <code>MouseEvent</code> from which to fetch the position
*/
protected void positionCaret(MouseEvent event)
{
// FIXME: Implement this properly.
}
/**
* Deinstalls this <code>Caret</code> from the specified
* <code>JTextComponent</code>. This removes any listeners that have been
* registered by this <code>Caret</code>.
*
* @param c the text component from which to install this caret
*/
public void deinstall(JTextComponent c)
{
textComponent.removeFocusListener(this);
@ -122,6 +256,13 @@ public class DefaultCaret extends Rectangle
textComponent = null;
}
/**
* Installs this <code>Caret</code> on the specified
* <code>JTextComponent</code>. This registers a couple of listeners
* on the text component.
*
* @param c the text component on which to install this caret
*/
public void install(JTextComponent c)
{
textComponent = c;
@ -131,16 +272,37 @@ public class DefaultCaret extends Rectangle
repaint();
}
/**
* Sets the current visual position of this <code>Caret</code>.
*
* @param p the Point to use for the saved location. May be <code>null</code>
* to indicate that there is no visual location
*/
public void setMagicCaretPosition(Point p)
{
magicCaretPosition = p;
}
/**
* Returns the current visual position of this <code>Caret</code>.
*
* @return the current visual position of this <code>Caret</code>
*
* @see #setMagicCaretPosition
*/
public Point getMagicCaretPosition()
{
return magicCaretPosition;
}
/**
* Returns the current position of the <code>mark</code>. The
* <code>mark</code> marks the location in the <code>Document</code> that
* is the end of a selection. If there is no selection, the <code>mark</code>
* is the same as the <code>dot</code>.
*
* @return the current position of the mark
*/
public int getMark()
{
return mark;
@ -181,6 +343,12 @@ public class DefaultCaret extends Rectangle
}
}
/**
* Sets the visiblity state of the selection.
*
* @param v <code>true</code> if the selection should be visible,
* <code>false</code> otherwise
*/
public void setSelectionVisible(boolean v)
{
if (selectionVisible == v)
@ -191,17 +359,35 @@ public class DefaultCaret extends Rectangle
repaint();
}
/**
* Returns <code>true</code> if the selection is currently visible,
* <code>false</code> otherwise.
*
* @return <code>true</code> if the selection is currently visible,
* <code>false</code> otherwise
*/
public boolean isSelectionVisible()
{
return selectionVisible;
}
/**
* Causes the <code>Caret</code> to repaint itself.
*/
protected final void repaint()
{
// FIXME: Is this good? This possibly causes alot of the component
// hierarchy to be repainted on every caret blink.
if (textComponent != null)
textComponent.repaint();
}
/**
* Paints this <code>Caret</code> using the specified <code>Graphics</code>
* context.
*
* @param g the graphics context to use
*/
public void paint(Graphics g)
{
if (textComponent == null)
@ -234,26 +420,53 @@ public class DefaultCaret extends Rectangle
}
}
/**
* Returns all registered event listeners of the specified type.
*
* @param listenerType the type of listener to return
*
* @return all registered event listeners of the specified type
*/
public EventListener[] getListeners(Class listenerType)
{
return listenerList.getListeners(listenerType);
}
/**
* Registers a {@link ChangeListener} that is notified whenever that state
* of this <code>Caret</code> changes.
*
* @param listener the listener to register to this caret
*/
public void addChangeListener(ChangeListener listener)
{
listenerList.add(ChangeListener.class, listener);
}
/**
* Removes a {@link ChangeListener} from the list of registered listeners.
*
* @param listener the listener to remove
*/
public void removeChangeListener(ChangeListener listener)
{
listenerList.remove(ChangeListener.class, listener);
}
/**
* Returns all registered {@link ChangeListener}s of this <code>Caret</code>.
*
* @return all registered {@link ChangeListener}s of this <code>Caret</code>
*/
public ChangeListener[] getChangeListeners()
{
return (ChangeListener[]) getListeners(ChangeListener.class);
}
/**
* Notifies all registered {@link ChangeListener}s that the state
* of this <code>Caret</code> has changed.
*/
protected void fireStateChanged()
{
ChangeListener[] listeners = getChangeListeners();
@ -262,26 +475,61 @@ public class DefaultCaret extends Rectangle
listeners[index].stateChanged(changeEvent);
}
/**
* Returns the <code>JTextComponent</code> on which this <code>Caret</code>
* is installed.
*
* @return the <code>JTextComponent</code> on which this <code>Caret</code>
* is installed
*/
protected final JTextComponent getComponent()
{
return textComponent;
}
/**
* Returns the blink rate of this <code>Caret</code> in milliseconds.
* A value of <code>0</code> means that the caret does not blink.
*
* @return the blink rate of this <code>Caret</code> or <code>0</code> if
* this caret does not blink
*/
public int getBlinkRate()
{
return blinkRate;
}
/**
* Sets the blink rate of this <code>Caret</code> in milliseconds.
* A value of <code>0</code> means that the caret does not blink.
*
* @param rate the new blink rate to set
*/
public void setBlinkRate(int rate)
{
blinkRate = rate;
}
/**
* Returns the current position of this <code>Caret</code> within the
* <code>Document</code>.
*
* @return the current position of this <code>Caret</code> within the
* <code>Document</code>
*/
public int getDot()
{
return dot;
}
/**
* Moves the <code>dot</code> location without touching the
* <code>mark</code>. This is used when making a selection.
*
* @param dot the location where to move the dot
*
* @see #setDot(int)
*/
public void moveDot(int dot)
{
this.dot = dot;
@ -289,6 +537,15 @@ public class DefaultCaret extends Rectangle
repaint();
}
/**
* Sets the current position of this <code>Caret</code> within the
* <code>Document</code>. This also sets the <code>mark</code> to the
* new location.
*
* @param dot the new position to be set
*
* @see #moveDot(int)
*/
public void setDot(int dot)
{
this.dot = dot;
@ -297,17 +554,37 @@ public class DefaultCaret extends Rectangle
repaint();
}
/**
* Returns <code>true</code> if this <code>Caret</code> is currently visible,
* and <code>false</code> if it is not.
*
* @return <code>true</code> if this <code>Caret</code> is currently visible,
* and <code>false</code> if it is not
*/
public boolean isVisible()
{
return visible;
}
/**
* Sets the visibility state of the caret. <code>true</code> shows the
* <code>Caret</code>, <code>false</code> hides it.
*
* @param v the visibility to set
*/
public void setVisible(boolean v)
{
visible = v;
repaint();
}
/**
* Returns the {@link Highlighter.HighlightPainter} that should be used
* to paint the selection.
*
* @return the {@link Highlighter.HighlightPainter} that should be used
* to paint the selection
*/
protected Highlighter.HighlightPainter getSelectionPainter()
{
return DefaultHighlighter.DefaultPainter;