/* * DesktopFrame.java * * Copyright (C) 2009-12 by RStudio, Inc. * * Unless you have received this program directly from RStudio pursuant * to the terms of a commercial license agreement with RStudio, then * this program is licensed to you under the terms of version 3 of the * GNU Affero General Public License. This program is distributed WITHOUT * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT, * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details. * */ package org.rstudio.studio.client.application; import org.rstudio.core.client.js.BaseExpression; import org.rstudio.core.client.js.JavaScriptPassthrough; /** * This is an interface straight through to a C++ object that lives * in the Qt desktop frame. */ @BaseExpression("$wnd.desktop") public interface DesktopFrame extends JavaScriptPassthrough { boolean isCocoa(); void browseUrl(String url); String getOpenFileName(String caption, String dir, String filter, boolean canChooseDirectories); String getSaveFileName(String caption, String dir, String defaultExtension, boolean forceDefaultExtension); String getExistingDirectory(String caption, String dir); void undo(boolean forAce); void redo(boolean forAce); void clipboardCut(); void clipboardCopy(); void clipboardPaste(); void setGlobalMouseSelection(String selection); String getGlobalMouseSelection(); String getUriForPath(String path); void onWorkbenchInitialized(String scratchDir); void showFolder(String path); void showFile(String path); void showWordDoc(String path); void showPDF(String path, int pdfPage); void prepareShowWordDoc(); void openMinimalWindow(String name, String url, int width, int height); void activateMinimalWindow(String name); void activateSatelliteWindow(String name); void prepareForSatelliteWindow(String name, int x, int y, int width, int height); void prepareForNamedWindow(String name, boolean allowExternalNavigation, boolean showDesktopToolbar); void closeNamedWindow(String name); // interface for plot export where coordinates are specified relative to // the iframe where the image is located within void copyImageToClipboard(int clientLeft, int clientTop, int clientWidth, int clientHeight); void copyPageRegionToClipboard(int left, int top, int width, int height); void exportPageRegionToFile(String targetPath, String format, int left, int top, int width, int height); boolean supportsClipboardMetafile(); int showMessageBox(int type, String caption, String message, String buttons, int defaultButton, int cancelButton); String promptForText(String title, String label, String initialValue, boolean usePasswordMask, String rememberPasswordPrompt, boolean rememberByDefault, boolean numbersOnly, int selectionStart, int selectionLength, String okButtonCaption); void showAboutDialog(); void bringMainFrameToFront(); void bringMainFrameBehindActive(); String getRVersion(); String chooseRVersion(); boolean canChooseRVersion(); double devicePixelRatio(); int getDisplayDpi(); void cleanClipboard(); public static final int PENDING_QUIT_NONE = 0; public static final int PENDING_QUIT_AND_EXIT = 1; public static final int PENDING_QUIT_AND_RESTART = 2; public static final int PENDING_QUIT_RESTART_AND_RELOAD = 3; void setPendingQuit(int pendingQuit); void setPendingProject(String projectFilePath); void launchSession(boolean reload); void openProjectInNewWindow(String projectFilePath); void openSessionInNewWindow(String workingDirectoryPath); void openTerminal(String terminalPath, String workingDirectory, String extraPathEntries); String getFixedWidthFontList(); String getFixedWidthFont(); void setFixedWidthFont(String font); String getZoomLevels(); double getZoomLevel(); void setZoomLevel(double zoomLevel); // mac-specific zoom calls void macZoomActualSize(); void macZoomIn(); void macZoomOut(); String getDesktopSynctexViewer(); void externalSynctexPreview(String pdfPath, int page); void externalSynctexView(String pdfFile, String srcFile, int line, int column); boolean supportsFullscreenMode(); void toggleFullscreenMode(); void showKeyboardShortcutHelp(); void reloadZoomWindow(); void setViewerUrl(String url); void reloadViewerZoomWindow(String url); void setShinyDialogUrl(String url); boolean isOSXMavericks(); boolean isCentOS(); String getScrollingCompensationType(); void setBusy(boolean busy); void setWindowTitle(String title); void installRtools(String version, String installerPath); }