/* * * * Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program 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 version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */ package com.sun.midp.lcdui; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.Displayable; /** * Public interface for an object that is used to provide internal access * to a Display object, across package boundaries. The object implements * this interface, and is created inside the same package as Display, so * that it has access to private instance data of Display as necessary. */ public interface DisplayAccess { /** * Get the Display object that is associated with this DisplayAccess. * @return Display The Display object. */ Display getDisplay(); /** * Called to get current display width. * @return Display width. */ public int getDisplayWidth(); /** * Called to get current display height. * @return Display height. */ public int getDisplayHeight(); /** Called to get the display to request the foreground. */ public void requestForeground(); // API's for accessing Display from Games Package /** * Called to get key mask of all the keys that were pressed. * @return keyMask The key mask of all the keys that were pressed. */ int getKeyMask(); /** * Flushes the entire off-screen buffer to the display. * @param screen The Displayable * @param offscreen_buffer The image buffer * @param x The left edge of the region to be flushed * @param y The top edge of the region to be flushed * @param width The width of the region to be flushed * @param height The height of the region to be flushed */ void flush(Displayable screen, Image offscreen_buffer, int x, int y, int width, int height); /** * Called when the system needs to temporarily prevent the application * from painting the screen. The primary use of this method is to allow * a system service to temporarily utilize the screen, e.g. to provide * input method or abstract command processing. * * This method should prevent application-based paints (i.e. those * generated by Canvas.repaint(), Canvas.serviceRepaints() or some * internal paint method on another kind of Displayable) from changing * the contents of the screen in any way. */ // void suspendPainting(); /** * Called when the system is ready to give up its control over the * screen. The application should receive a request for a full * repaint when this is called, and is subsequently free to process * paint events from Canvas.repaint(), Canvas.serviceRepaints() or * internal paint methods on Displayable. */ // void resumePainting(); /** * Get the object that owns this display. * DisplayAccess I/F method. * * @return object that owns this Display */ public Object getOwner(); /** * Get the ID of this display. * * @return Display ID */ public int getDisplayId(); /** * Get the display device object. * * @return Hardware display object */ public DisplayDevice getDisplayDevice(); /** * Sets the ID of this display. * Shall be called only from DisplayContainer.addDisplay() during * Display construction and registration in the container. * * @param newId new ID for Display associated with this DisplayAccess */ public void setDisplayId(int newId); /** * Get the DisplayEventConsumer associated with this display. * * @return Consumer of midlet events that go through this display */ public DisplayEventConsumer getDisplayEventConsumer(); /** * Get the ForegroundEventConsumer associated with this display. * * @return Consumer of foreground events that go through this display */ public ForegroundEventConsumer getForegroundEventConsumer(); }