/*
*
*
* Copyright 1990-2007 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 javax.microedition.lcdui;
/**
* Look and Feel interface used by Item.
* <p>
* See <a href="doc-files/naming.html">Naming Conventions</a>
* for information about method naming conventions.
*/
interface ItemLF {
/**
* Get the preferred width of this Item
*
* @param h tentative locked height
* @return the preferred width
*/
int lGetPreferredWidth(int h);
/**
* Get the preferred height of this Item
* @param w tentative locked width
* @return the preferred height
*/
int lGetPreferredHeight(int w);
/**
* Get the minimum width of this Item
*
* @return the minimum width
*/
int lGetMinimumWidth();
/**
* Get the minimum height of this Item
*
* @return the minimum height
*/
int lGetMinimumHeight();
/**
* Notifies L&F of a label change in the corresponding Item.
* @param label the new label string
*/
void lSetLabel(String label);
/**
* Notifies L&F of a layout change in the corresponding Item.
* @param layout the new layout descriptor
*/
void lSetLayout(int layout);
/**
* Notifies L&F of a command addition in the corresponding Item.
* @param cmd the newly added command
* @param i the index of the added command in the ChoiceGroup's
* commands[] array
*/
void lAddCommand(Command cmd, int i);
/**
* Notifies L&F of a command removal in the corresponding Item.
* @param cmd the newly removed command
* @param i the index of the removed command in the ChoiceGroup's
* commands[] array
*/
void lRemoveCommand(Command cmd, int i);
/**
* Notifies L&F of a preferred size change in the corresponding Item.
* @param width the value to which the width is locked, or
* <code>-1</code> if it is unlocked
* @param height the value to which the height is locked, or
* <code>-1</code> if it is unlocked
*/
void lSetPreferredSize(int width, int height);
/**
* Notifies L&F of the default command change in the corresponding Item.
* @param cmd the newly set default command
* @param i index of this new command in the ChoiceGroup's commands array
*/
void lSetDefaultCommand(Command cmd, int i);
/**
* Notify this itemLF that its owner screen has changed.
*
* @param oldOwner old owner screen before this change. New owner
* can be found in Item model.
*/
public void lSetOwner(Screen oldOwner);
/**
* Called to commit any pending user interaction for the current
* item before an abstract command is fired.
* Caller should hold LCDUILock around this call.
*/
void lCommitPendingInteraction();
/**
* Return whether the cached requested sizes are valid.
*
* @return <code>true</code> if the cached requested sizes are up to date.
* <code>false</code> if they have been invalidated.
*/
boolean isRequestedSizesValid();
}
|