/** * Copyright (c) 2003-2009, Xith3D Project Group all rights reserved. * * Portions based on the Java3D interface, Copyright by Sun Microsystems. * Many thanks to the developers of Java3D and Sun Microsystems for their * innovation and design. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of the 'Xith3D Project Group' nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) A * RISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE */ package org.xith3d.ui.hud.menusystem; /** * A {@link MenuSystemListener} is notified of {@link MenuGroup} events. * * @author Marvin Froehlich (aka Qudus) */ public interface MenuSystemListener { /** * This event is fired before the {@link MenuGroup}'s state has changed. * * @param menuSystem * @param currentMenu * @param target * * @return true to skip the actual state-change. */ public boolean beforeMenuStateChanged( MenuSystem menuSystem, String currentMenu, Object target ); /** * This event is fired, if the {@link MenuGroup}'s state has changed. * * @param menuSystem * @param oldMenu * @param target */ public void onMenuStateChanged( MenuSystem menuSystem, String oldMenu, Object target ); /** * This event is fired, when a setting has been changed in one of the {@link Menu}s. * * @param menuSystem * @param menu * @param setting * @param value */ public void onSettingChanged( MenuSystem menuSystem, Menu menu, String setting, Object value ); /** * This event is fired when a custom menu action was performed. * * @param menuSystem * @param menuGroup * @param menu * @param action * * @return true, if the action was consumed. */ public boolean onMenuActionPerformed( MenuSystem menuSystem, MenuGroup menuGroup, Menu menu, String action ); /** * This event is fired when the MenuSystem has been entered. * * @param menuSystem */ public void onMenuSystemEntered( MenuSystem menuSystem ); /** * This event is fired when the MenuSystem has been exited. * * @param menuSystem */ public void onMenuSystemExited( MenuSystem menuSystem ); }