package org.geogebra.web.web.main;
import org.geogebra.common.gui.view.consprotocol.ConstructionProtocolView;
import org.geogebra.web.html5.gui.view.browser.BrowseViewI;
import org.geogebra.web.html5.main.AppW;
import org.geogebra.web.web.gui.dialog.image.UploadImageDialog;
/**
* Device interface, gives access to browser or tablet native features
*/
public interface GDevice {
/**
* @param app
* application
* @return file manager
*/
public FileManager createFileManager(AppW app);
/**
* @param app
* application
* @return whether device is offline
*/
public boolean isOffline(AppW app);
/**
* @param app
* application
* @return image input dialog
*/
public UploadImageDialog getImageInputDialog(AppW app);
/**
* @param app
* application
* @return browser view
*/
public BrowseViewI createBrowseView(AppW app);
/**
* TODO make this browser-dependent, not GDevice dependent
*
* @param app
* application
* @return construction protocol
*/
public ConstructionProtocolView getConstructionProtocolView(AppW app);
/**
* @param width
* width in pixels
* @param height
* height in pixels
*/
public void resizeView(int width, int height);
}