/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @author Pavel Dolgov * @version $Revision$ */ package org.apache.harmony.awt; //???AWT //import java.awt.Component; //import java.awt.Container; //import java.awt.Dialog; import java.awt.Dimension; //import java.awt.Image; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; //import java.awt.Window; //import java.awt.Choice; import java.lang.reflect.InvocationTargetException; import org.apache.harmony.awt.gl.MultiRectArea; //import org.apache.harmony.awt.text.TextFieldKit; //import org.apache.harmony.awt.text.TextKit; //import org.apache.harmony.awt.wtk.NativeWindow; import org.apache.harmony.luni.util.NotImplementedException; /** * The accessor to AWT private API */ public abstract class ComponentInternals { /** * @return the ComponentInternals instance to serve the requests */ public static ComponentInternals getComponentInternals() { return ContextStorage.getComponentInternals(); } /** * This method must be called by AWT to establish the connection * @param internals - implementation of ComponentInternals created by AWT */ public static void setComponentInternals(ComponentInternals internals) { ContextStorage.setComponentInternals(internals); } /** * The accessor to native resource connected to a component. * It returns non-<code>null</code> value only if component * already has the native resource */ //public abstract NativeWindow getNativeWindow(Component component); /** * Connect Window object to existing native resource * @param nativeWindowId - id of native window to attach * @return Window object with special behaviour that * restricts manupulation with that window */ //public abstract Window attachNativeWindow(long nativeWindowId); /** * Start mouse grab in "client" mode. * All mouse events in AWT components will be reported as usual, * mouse events that occured outside of AWT components will be sent to * the window passed as grabWindow parameter. When mouse grab is canceled * (because of click in non-AWT window or by task switching) * the whenCanceled callback is called * * @param grabWindow - window that will own the grab * @param whenCanceled - callback called when grab is canceled by user's action */ //public abstract void startMouseGrab(Window grabWindow, Runnable whenCanceled); /** * End mouse grab and resume normal processing of mouse events */ //public abstract void endMouseGrab(); /** * Set the <code>popup</code> flag of the window to true. * This window won't be controlled by window manager on Linux. * Call this method before the window is shown first time * @param window - the window that should become popup one */ //public abstract void makePopup(Window window); /** * This method must be called by Graphics at the beginning of drawImage() * to store image drawing parameters (defined by application developer) in component * * @param comp - component that draws the image * @param image - image to be drawn * @param destLocation - location of the image upon the component's surface. Never null. * @param destSize - size of the component's area to be filled with the image. * Equals to null if size parameters omitted in drawImage. * @param source - area of the image to be drawn on the component. * Equals to null if src parameters omitted in drawImage. */ /* public abstract void onDrawImage(Component comp, Image image, Point destLocation, Dimension destSize, Rectangle source); */ /** * Sets system's caret position. * This method should be called by text component to synchronize our caret position * with system's caret position. * @param x * @param y */ //public abstract void setCaretPos(Component c, int x, int y); /** * NEVER USE IT. FORGET IT. IT DOES NOT EXIST. * See Toolkit.unsafeInvokeAndWait(Runnable). * * Accessor for Toolkit.unsafeInvokeAndWait(Runnable) method. * For use in exceptional cases only. * Read comments for Toolkit.unsafeInvokeAndWait(Runnable) before use. */ /* public abstract void unsafeInvokeAndWait(Runnable runnable) throws InterruptedException, InvocationTargetException; public abstract TextKit getTextKit(Component comp); public abstract void setTextKit(Component comp, TextKit kit); public abstract TextFieldKit getTextFieldKit(Component comp); public abstract void setTextFieldKit(Component comp, TextFieldKit kit); */ /** * Terminate event dispatch thread, completely destroy AWT context.<br> * Intended for multi-context mode, in single-context mode does nothing. * */ public abstract void shutdown(); /** * Sets mouse events preprocessor for event queue */ //public abstract void setMouseEventPreprocessor(MouseEventPreprocessor preprocessor); /** * Create customized Choice using style */ //public abstract Choice createCustomChoice(ChoiceStyle style); //public abstract Insets getNativeInsets(Window w); /** * Region to be repainted (could be null). Use this in overridden repaint() */ //public abstract MultiRectArea getRepaintRegion(Component c); //public abstract MultiRectArea subtractPendingRepaintRegion(Component c, MultiRectArea mra); /** * Returns true if the window was at least once painted due to native paint events */ //public abstract boolean wasPainted(Window w); /** * The component's region hidden behind top-level windows * (belonging to both this Java app and all other apps), and behind * heavyweight components overlapping with passed component */ //public abstract MultiRectArea getObscuredRegion(Component c); /** * An accessor to Container.addObscuredRegions() method * @see java.awt.Container#addObscuredRegions(MultiRectArea, Component) */ //public abstract void addObscuredRegions(MultiRectArea mra, Component c, Container container); /** * Makes it possible to call protected Toolkit.setDesktopProperty() * method from any class outside of java.awt package */ public abstract void setDesktopProperty(String name, Object value); /** * Makes it possible to start/stop dialog modal loop * from anywhere outside of java.awt package */ //public abstract void runModalLoop(Dialog dlg); //public abstract void endModalLoop(Dialog dlg); /** * Sets component's visible flag only * (the component is not actually shown/hidden) */ //public abstract void setVisibleFlag(Component comp, boolean visible); }