package org.geogebra.web.web.gui.laf;
import org.geogebra.common.GeoGebraConstants.Versions;
import org.geogebra.common.main.App;
import org.geogebra.common.main.Localization;
import org.geogebra.web.html5.Browser;
import org.geogebra.web.html5.main.AppW;
import org.geogebra.web.web.gui.browser.SignInButton;
import org.geogebra.web.web.move.ggtapi.operations.BASEURL;
import com.google.gwt.storage.client.Storage;
/**
* For offline browser
*/
public class BundleLookAndFeel extends GLookAndFeel {
@Override
public Versions getVersion(int dim, boolean app) {
return Versions.WEB_FOR_DESKTOP;
}
@Override
public void addWindowClosingHandler(final AppW app) {
Localization loc = app.getLocalization();
addNativeHandler(loc.getPlain("CloseApplicationLoseUnsavedData"),
loc.getMenu("Save"), loc.getMenu("DontSave"),
loc.getMenu("Cancel"));
}
private native void addNativeHandler(String message, String save,
String noSave, String cancel) /*-{
if ($wnd.setUnsavedMessage) {
$wnd.setUnsavedMessage(message, save, noSave, cancel);
}
}-*/;
@Override
public native void removeWindowClosingHandler() /*-{
if ($wnd.setUnsavedMessage) {
$wnd.setUnsavedMessage(null);
}
}-*/;
@Override
public void storeLanguage(String s) {
Storage storage = Storage.getLocalStorageIfSupported();
if (storage != null) {
storage.setItem("GeoGebraLangUI", s);
}
}
@Override
public SignInButton getSignInButton(App app) {
return new SignInButton(app, Browser.isIE9() ? 2000 : 0,
BASEURL.getCallbackUrl().replace("file://", "app://"));
}
@Override
public boolean autosaveSupported() {
return false;
}
@Override
public boolean supportsGoogleDrive() {
return false;
}
@Override
public boolean forceReTeX() {
return true;
}
}