| /* Copyright (C) 1999, 2000 Free Software Foundation |
| |
| This file is part of libjava. |
| |
| 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.*; |
| import java.awt.event.*; |
| import java.net.URL; |
| import java.beans.*; |
| import java.awt.image.*; |
| import java.awt.datatransfer.Clipboard; |
| import java.util.Hashtable; |
| import gnu.gcj.awt.GLightweightPeer; |
| |
| /* A very incomplete placeholder. */ |
| |
| public abstract class Toolkit |
| { |
| static Toolkit defaultToolkit; |
| PropertyChangeSupport changeSupport = new PropertyChangeSupport(this); |
| Hashtable desktopProperties = new Hashtable(); |
| |
| public static Toolkit getDefaultToolkit() |
| { |
| 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.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); |
| 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 LightweightPeer createComponent(Component target) |
| { |
| return GLightweightPeer.INSTANCE; |
| } |
| |
| /* @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 getSystemEventQueueImpl(); |
| } |
| |
| 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); |
| changeSupport.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) |
| { |
| changeSupport.addPropertyChangeListener(name, pcl); |
| } |
| |
| public void removePropertyChangeListener(String name, |
| PropertyChangeListener pcl) |
| { |
| changeSupport.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) |
| { |
| } |
| */ |
| } |