package org.geogebra.web.web.gui;
import org.geogebra.keyboard.web.UpdateKeyBoardListener;
import org.geogebra.web.html5.gui.ToolBarInterface;
import org.geogebra.web.html5.gui.util.MathKeyboardListener;
import org.geogebra.web.html5.main.HasAppletProperties;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.HeaderPanel;
/**
* Interface for app frame
*
*/
public interface HeaderPanelDeck
extends HasAppletProperties, UpdateKeyBoardListener {
/**
* Hide the full-sized GUI, e.g. material browser
*
* @param myHeaderPanel
* full-sized GUI
*/
void hideBrowser(MyHeaderPanel myHeaderPanel);
/** @return toolbar */
ToolBarInterface getToolbar();
/**
* Update component heights to account for input bar
*
* @param inputShowing
* whether horizontal input bar is shown
*/
void setMenuHeight(boolean inputShowing);
/**
* @param bg
* full-sized GUI
*/
void showBrowser(HeaderPanel bg);
/**
* @return frame element
*/
Element getElement();
/**
* Make sure keyboard visibility corresponds to both app.isKeyboardNeeded()
* and appNeedsKeyboard() TODO rename one of those functions
*/
void refreshKeyboard();
/**
* @param show
* whether to show it
* @param textField
* listening text field
* @param forceShow
* whether to force showing
*/
public void showKeyBoard(boolean show, MathKeyboardListener textField,
boolean forceShow);
}