// Path: src/tonegod/gui/core/ElementManager.java
// public interface ElementManager {
// 	
// 	public Application getApplication();
// 	
// 	public float getWidth();
// 	public float getHeight();
// 	public Vector2f getMouseXY();
// 	public Vector2f getTouchXY();
// 	public CollisionResult getLastCollision();
// 	public Node getGUINode();
// 	
// 	public void addElement(Element element);
// 	public void addElement(Element element, boolean hide);
// 	public void removeElement(Element element);
// 	public Element getElementById(String UID);
// 	public void setKeyboardElement(Element element);
// 	public void setTabFocusElement(Element element);
// 	public void resetTabFocusElement();
// 	public Element getDropElement();
// 	
// 	public float getZOrderStepMinor();
// 	public float getZOrderStepMajor();
// 	public void updateZOrder(Element element);
// 	
// 	public Style getStyle(String key);
// 	public void setClipboardText(String text);
// 	public String getClipboardText();
// 	
// 	public boolean getUseTextureAtlas();
// 	public float[] parseAtlasCoords(String coords);
// 	public Texture getAtlasTexture();
// 	public Texture createNewTexture(String texturePath);
// 	public void setGlobalAlpha(float alpha);
// 	public float getGlobalAlpha();
// 	
// 	public ScaleUtil getScaleManager();
// 	public float scaleFloat(float in);
// 	public Vector2f scaleVector2f(Vector2f in);
// 	public Vector3f scaleVector3f(Vector3f in);
// 	public Vector4f scaleVector4f(Vector4f in);
// 	public float scaleFontSize(float in);
// 	
// 	public BitmapFont getDefaultGUIFont();
// 	public EffectManager getEffectManager();
// 	public AnimManager getAnimManager();
// 	
// 	public boolean getUseUIAudio();
// 	public void setUseUIAudio(boolean use);
// 	public void setUIAudioVolume(float volume);
// 	
// 	public boolean getUseToolTips();
// 	public void setUseToolTips(boolean use);
// 	public void updateToolTipLocation();
// 	public Element getToolTipFocus();
// 	public void hideToolTip();
// 	
// 	public void setUseCustomCursors(boolean use);
// 	public boolean getUseCustomCursors();
// 	public void setCursor(CursorType cursorType);
// 	public void setUseCursorEffects(boolean use);
// 	public CursorEffects getCursorEffects();
// //	public boolean getUseCursorEffects();
// 	
// 	public void onKeyEvent(KeyInputEvent evt);
// 	
// 	public ModalBackground getModalBackground();
// 	public void showAsModal(Element el, boolean showWithEffect);
// 	public void hideModalBackground();
// 	
// 	public void showVirtualKeyboard();
// 	public void hideVirtualKeyboard();
// 	public void handleAndroidMenuState(Element element);
// 	
// 	// 2D Framework
// 	public AnimLayer addAnimLayer(String UID);
// 	public void addAnimLayer(String UID, AnimLayer layer);
// 	public AnimLayer removeAnimLayer(String UID);
// 	public void removeAnimLayer(AnimLayer animLayer);
// }


import tonegod.gui.core.ElementManager;
import tonegod.gui.core.utils.UIDUtil;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector4f;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tonegod.gui.controls.lists;


/**
 *
 * @author t0neg0d
 */
public abstract class SelectBox extends ComboBox {
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 */
	public SelectBox(ElementManager screen) {
		this(screen, UIDUtil.getUID(), Vector2f.ZERO,
			screen.getStyle("TextField").getVector2f("defaultSize"),
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 */
	public SelectBox(ElementManager screen, Vector2f position) {
		this(screen, UIDUtil.getUID(), position,
			screen.getStyle("TextField").getVector2f("defaultSize"),
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 */
	public SelectBox(ElementManager screen, Vector2f position, Vector2f dimensions) {
		this(screen, UIDUtil.getUID(), position, dimensions,
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 * @param resizeBorders A Vector4f containing the border information used when resizing the default image (x = N, y = W, z = E, w = S)
	 * @param defaultImg The default image to use for the SelectBox
	 */

// Path: src/tonegod/gui/core/ElementManager.java
// public interface ElementManager {
// 	
// 	public Application getApplication();
// 	
// 	public float getWidth();
// 	public float getHeight();
// 	public Vector2f getMouseXY();
// 	public Vector2f getTouchXY();
// 	public CollisionResult getLastCollision();
// 	public Node getGUINode();
// 	
// 	public void addElement(Element element);
// 	public void addElement(Element element, boolean hide);
// 	public void removeElement(Element element);
// 	public Element getElementById(String UID);
// 	public void setKeyboardElement(Element element);
// 	public void setTabFocusElement(Element element);
// 	public void resetTabFocusElement();
// 	public Element getDropElement();
// 	
// 	public float getZOrderStepMinor();
// 	public float getZOrderStepMajor();
// 	public void updateZOrder(Element element);
// 	
// 	public Style getStyle(String key);
// 	public void setClipboardText(String text);
// 	public String getClipboardText();
// 	
// 	public boolean getUseTextureAtlas();
// 	public float[] parseAtlasCoords(String coords);
// 	public Texture getAtlasTexture();
// 	public Texture createNewTexture(String texturePath);
// 	public void setGlobalAlpha(float alpha);
// 	public float getGlobalAlpha();
// 	
// 	public ScaleUtil getScaleManager();
// 	public float scaleFloat(float in);
// 	public Vector2f scaleVector2f(Vector2f in);
// 	public Vector3f scaleVector3f(Vector3f in);
// 	public Vector4f scaleVector4f(Vector4f in);
// 	public float scaleFontSize(float in);
// 	
// 	public BitmapFont getDefaultGUIFont();
// 	public EffectManager getEffectManager();
// 	public AnimManager getAnimManager();
// 	
// 	public boolean getUseUIAudio();
// 	public void setUseUIAudio(boolean use);
// 	public void setUIAudioVolume(float volume);
// 	
// 	public boolean getUseToolTips();
// 	public void setUseToolTips(boolean use);
// 	public void updateToolTipLocation();
// 	public Element getToolTipFocus();
// 	public void hideToolTip();
// 	
// 	public void setUseCustomCursors(boolean use);
// 	public boolean getUseCustomCursors();
// 	public void setCursor(CursorType cursorType);
// 	public void setUseCursorEffects(boolean use);
// 	public CursorEffects getCursorEffects();
// //	public boolean getUseCursorEffects();
// 	
// 	public void onKeyEvent(KeyInputEvent evt);
// 	
// 	public ModalBackground getModalBackground();
// 	public void showAsModal(Element el, boolean showWithEffect);
// 	public void hideModalBackground();
// 	
// 	public void showVirtualKeyboard();
// 	public void hideVirtualKeyboard();
// 	public void handleAndroidMenuState(Element element);
// 	
// 	// 2D Framework
// 	public AnimLayer addAnimLayer(String UID);
// 	public void addAnimLayer(String UID, AnimLayer layer);
// 	public AnimLayer removeAnimLayer(String UID);
// 	public void removeAnimLayer(AnimLayer animLayer);
// }


// Path: src/tonegod/gui/controls/lists/SelectBox.java
import tonegod.gui.core.ElementManager;
import tonegod.gui.core.utils.UIDUtil;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector4f;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tonegod.gui.controls.lists;


/**
 *
 * @author t0neg0d
 */
public abstract class SelectBox extends ComboBox {
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 */
	public SelectBox(ElementManager screen) {
		this(screen, UIDUtil.getUID(), Vector2f.ZERO,
			screen.getStyle("TextField").getVector2f("defaultSize"),
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 */
	public SelectBox(ElementManager screen, Vector2f position) {
		this(screen, UIDUtil.getUID(), position,
			screen.getStyle("TextField").getVector2f("defaultSize"),
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 */
	public SelectBox(ElementManager screen, Vector2f position, Vector2f dimensions) {
		this(screen, UIDUtil.getUID(), position, dimensions,
			screen.getStyle("TextField").getVector4f("resizeBorders"),
			screen.getStyle("TextField").getString("defaultImg")
		);
	}
	
	/**
	 * Creates a new instance of the SelectBox control
	 * 
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 * @param resizeBorders A Vector4f containing the border information used when resizing the default image (x = N, y = W, z = E, w = S)
	 * @param defaultImg The default image to use for the SelectBox
	 */

	public SelectBox(ElementManager screen, Vector2f position, Vector2f dimensions, Vector4f resizeBorders, String defaultImg) {
