Makefile.am: Add new AWT stubs.

* Makefile.am: Add new AWT stubs.
	* java/awt/Canvas.java: New placeholder class.
	* java/awt/Checkbox.java: Ditto.
	* java/awt/CheckboxMenuItem.java: Ditto.
	* java/awt/Choice.java: Ditto.
	* java/awt/Dialog.java: Ditto.
	* java/awt/FileDialog.java: Ditto.
	* java/awt/List.java: Ditto.
	* java/awt/ScrollPane.java: Ditto.
	* java/awt/TextField.java: Ditto.
	* java/awt/datatransfer/Clipboard.java: Ditto.
	* java/awt/Component.java (treeLock): Now a static String. Add
	comment.
	* java/awt/MenuItem.java (MenuItem): Add default constructor.
	* java/awt/Toolkit.java: Added all methods from J2SE 1.3 API docs.
	Some commented out. Partially implemented.
	* java/awt/natToolkit.cc: Removed file.

From-SVN: r35450
This commit is contained in:
Bryce McKinlay 2000-08-03 13:09:41 +01:00
parent eae5118925
commit 5ab63c1aea
14 changed files with 405 additions and 42 deletions

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class Canvas extends Component
{
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class Checkbox extends Component
{
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class CheckboxMenuItem extends MenuItem
{
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class Choice extends Component
{
}

View File

@ -38,6 +38,12 @@ public abstract class Component implements ImageObserver, MenuContainer,
RIGHT_ALIGNMENT = 1.0f,
TOP_ALIGNMENT = 0.0f;
/* Make the treelock a String so that it can easily be identified
in debug dumps. We clone the String in order to avoid a conflict in
the unlikely event that some other package uses exactly the same string
as a lock object. */
static Object treeLock = new String("AWT_TREE_LOCK");
/* Serialized fields from the serialization spec. */
// FIXME: Default values?
int x;
@ -71,8 +77,6 @@ public abstract class Component implements ImageObserver, MenuContainer,
transient Container parent;
transient java.awt.peer.ComponentPeer peer;
transient Object treeLock;
transient ComponentListener componentListener;
transient FocusListener focusListener;
transient KeyListener keyListener;

View File

@ -0,0 +1,20 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class Dialog extends Window
{
public Dialog (Frame owner)
{
super(owner);
// FIXME
}
}

View File

@ -0,0 +1,20 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class FileDialog extends Dialog
{
public FileDialog (Frame owner)
{
super(owner);
// FIXME
}
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class List extends Component
{
}

View File

@ -24,6 +24,11 @@ public class MenuItem extends MenuComponent
transient ActionListener actionListener;
public MenuItem ()
{
this.label = "";
}
public MenuItem (String label)
{
this.label = label;

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
/* A very incomplete placeholder. */
public class ScrollPane extends Container
{
}

View File

@ -0,0 +1,16 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt;
import java.awt.event.*;
/* A very incomplete placeholder. */
public class TextField extends TextComponent
{
}

View File

@ -8,7 +8,12 @@ details. */
package java.awt;
import java.awt.peer.*;
import java.awt.event.*;
import java.net.URL;
import java.beans.*;
import java.awt.image.*;
import java.awt.datatransfer.Clipboard;
import java.util.Hashtable;
/* A very incomplete placeholder. */
@ -16,29 +21,244 @@ public abstract class Toolkit
{
static Toolkit defaultToolkit;
static EventQueue systemEventQueue = new EventQueue();
PropertyChangeSupport pcsupport = new PropertyChangeSupport(this);
Hashtable desktopProperties = new Hashtable();
public static synchronized Toolkit getDefaultToolkit()
public static Toolkit getDefaultToolkit()
{
if (defaultToolkit == null)
init();
if (defaultToolkit != null)
return defaultToolkit;
Class toolkit_class;
String tk_class_name = System.getProperty("awt.toolkit");
if (tk_class_name == null)
tk_class_name = "gnu.awt.peer.gtk.GTKToolkit";
try
{
toolkit_class = Class.forName(tk_class_name);
defaultToolkit = (Toolkit) toolkit_class.newInstance();
}
catch (Exception x)
{
throw new AWTError("Toolkit class " + tk_class_name +
" could not be initialized:\n " + x);
}
return defaultToolkit;
}
protected abstract ButtonPeer createButton(Button target);
protected abstract TextFieldPeer createTextField(TextField target);
protected abstract LabelPeer createLabel(Label target);
protected abstract ListPeer createList(List target);
protected abstract CheckboxPeer createCheckbox(Checkbox target);
protected abstract ScrollbarPeer createScrollbar(Scrollbar target);
protected abstract ScrollPanePeer createScrollPane(ScrollPane target);
protected abstract TextAreaPeer createTextArea(TextArea target);
protected abstract ChoicePeer createChoice(Choice target);
protected abstract FramePeer createFrame(Frame target);
public abstract Image getImage(URL url);
protected abstract CanvasPeer createCanvas(Canvas target);
protected abstract PanelPeer createPanel(Panel target);
protected abstract WindowPeer createWindow(Window target);
protected abstract DialogPeer createDialog(Dialog target);
protected abstract MenuBarPeer createMenuBar(MenuBar target);
protected abstract MenuPeer createMenu(Menu target);
protected abstract PopupMenuPeer createPopupMenu(PopupMenu target);
protected abstract MenuItemPeer createMenuItem(MenuItem target);
protected abstract FileDialogPeer createFileDialog(FileDialog target);
protected abstract CheckboxMenuItemPeer
createCheckboxMenuItem(CheckboxMenuItem target);
protected abstract ButtonPeer createButton (Button target);
protected abstract ContainerPeer createContainer (Container target);
protected abstract LabelPeer createLabel (Label target);
protected abstract ScrollbarPeer createScrollbar (Scrollbar target);
protected abstract WindowPeer createWindow (Window target);
protected LightweightPeer createComponent(Component target)
{
// FIXME
return null;
}
/* @deprecated Use GraphicsEnvironment.getAllFonts() */
protected abstract java.awt.peer.FontPeer getFontPeer(String name, int style);
/*
public abstract DragSourceContextPeer
createDragSourceContextPeer(DragGestureEvent dge)
throws InvalidDnDOperationException;
*/
protected void loadSystemColors(int[] systemColors)
{
// FIXME
}
public abstract Dimension getScreenSize();
public abstract int getScreenResolution();
public abstract ColorModel getColorModel();
/* @deprecated Use GraphicsEnvironment.getAvailableFontFamilyNames() */
public abstract String[] getFontList();
public abstract FontMetrics getFontMetrics(Font font);
public abstract void sync();
public abstract Image getImage(String filename);
public abstract Image getImage(URL url);
public abstract Image createImage(String filename);
public abstract Image createImage(URL url);
public abstract boolean prepareImage(Image image, int width, int height,
ImageObserver observer);
public abstract int checkImage(Image image, int width, int height,
ImageObserver observer);
public abstract Image createImage(ImageProducer producer);
public Image createImage(byte[] imagedata)
{
return createImage (imagedata, 0, imagedata.length);
}
public abstract Image createImage(byte[] imagedata, int imageoffset,
int imagelength);
/*
public abstract PrintJob getPrintJob(Frame frame, String jobtitle,
Properties props);
public PrintJob getPrintJob(Frame frame, String jobtitle,
JobAttributes jobAttributes,
PageAttributes pageAttributes)
{
}
*/
public abstract void beep();
public abstract Clipboard getSystemClipboard();
public int getMenuShortcutKeyMask()
{
return InputEvent.CTRL_MASK;
}
public boolean getLockingKeyState(int keyCode)
{
if (keyCode != KeyEvent.VK_CAPS_LOCK
&& keyCode != KeyEvent.VK_NUM_LOCK
&& keyCode != KeyEvent.VK_SCROLL_LOCK)
throw new IllegalArgumentException();
throw new UnsupportedOperationException();
}
public void setLockingKeyState(int keyCode, boolean on)
{
if (keyCode != KeyEvent.VK_CAPS_LOCK
&& keyCode != KeyEvent.VK_NUM_LOCK
&& keyCode != KeyEvent.VK_SCROLL_LOCK)
throw new IllegalArgumentException();
throw new UnsupportedOperationException();
}
protected static Container getNativeContainer(Component c)
{
while (c != null)
{
if (!c.isLightweight ())
return (Container) c;
c = c.getParent();
}
return null;
}
public Cursor createCustomCursor(Image cursor, Point hotSpot, String name)
throws IndexOutOfBoundsException
{
// Presumably the only reason this isn't abstract is for backwards
// compatibility? FIXME?
return null;
}
public Dimension getBestCursorSize(int preferredWidth, int preferredHeight)
{
return new Dimension (0,0);
}
public int getMaximumCursorColors()
{
return 0;
}
public static String getProperty(String key, String defaultValue)
{
// FIXME
return defaultValue;
}
public final EventQueue getSystemEventQueue()
{
return systemEventQueue;
return systemEventQueue;
}
private static void init() { }
// private static native void init();
// static { init(); }
protected abstract EventQueue getSystemEventQueueImpl();
/*
public DragGestureRecognizer
createDragGestureRecognizer(Class abstractRecognizerClass, DragSource ds,
Component c, int srcActions,
DragGestureListener dgl)
{
// err... FIXME
return null;
}
*/
public final Object getDesktopProperty(String propertyName)
{
return desktopProperties.get(propertyName);
}
protected final void setDesktopProperty(String name, Object newValue)
{
Object oldValue = getDesktopProperty(name);
desktopProperties.put(name, newValue);
pcsupport.firePropertyChange(name, oldValue, newValue);
}
protected Object lazilyLoadDesktopProperty(String name)
{
// FIXME - what is this??
return null;
}
protected void initializeDesktopProperties()
{
// Overridden by toolkit implementation?
}
public void addPropertyChangeListener(String name,
PropertyChangeListener pcl)
{
pcsupport.addPropertyChangeListener(name, pcl);
}
public void removePropertyChangeListener(String name,
PropertyChangeListener pcl)
{
pcsupport.removePropertyChangeListener(name, pcl);
}
public void addAWTEventListener(AWTEventListener listener, long eventMask)
{
// SecurityManager s = System.getSecurityManager();
// if (s != null)
// s.checkPermission(AWTPermission("listenToAllAWTEvents"));
// FIXME
}
public void removeAWTEventListener(AWTEventListener listener)
{
// FIXME
}
/*
public abstract Map mapInputMethodHighlight(InputMethodHighlight highlight)
{
}
*/
}

View File

@ -0,0 +1,15 @@
/* Copyright (C) 2000 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
package java.awt.datatransfer;
/* A very incomplete placeholder. */
public class Clipboard
{
}

View File

@ -1,27 +0,0 @@
/* Copyright (C) 1999 Free Software Foundation
This file is part of libgcj.
This software is copyrighted work licensed under the terms of the
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
details. */
#include <config.h>
/*#define ENABLE_GTK*/
#include <gcj/cni.h>
#include <java/awt/Toolkit.h>
#ifdef ENABLE_GTK
#include <java/awt/peer/GtkToolkit.h>
#endif
void
java::awt::Toolkit::init()
{
#ifdef ENABLE_GTK
defaultToolkit = new java::awt::peer::GtkToolkit();
#else
JvFail("no awt (graphics) toolkit available");
#endif
}