JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / src / javajs / api / GenericPlatform.java
1 package javajs.api;\r
2 \r
3 \r
4 import java.net.URL;\r
5 import java.util.Map;\r
6 \r
7 \r
8 import javajs.awt.Font;\r
9 import javajs.util.P3;\r
10 \r
11 public interface GenericPlatform extends FontManager {\r
12 \r
13   public final static int CURSOR_DEFAULT = 0;\r
14   public final static int CURSOR_CROSSHAIR = 1;\r
15   public final static int CURSOR_WAIT = 3;\r
16   public final static int CURSOR_ZOOM = 8;\r
17   public final static int CURSOR_HAND = 12;\r
18   public final static int CURSOR_MOVE = 13;\r
19 \r
20   void setViewer(PlatformViewer vwr, Object display);\r
21   \r
22   /////// Display\r
23 \r
24   boolean isHeadless();\r
25   \r
26   void convertPointFromScreen(Object display, P3 ptTemp);\r
27 \r
28   void getFullScreenDimensions(Object display, int[] widthHeight);\r
29   \r
30   boolean hasFocus(Object display);\r
31 \r
32   String prompt(String label, String data, String[] list, boolean asButtons);\r
33 \r
34   void repaint(Object display);\r
35 \r
36   void requestFocusInWindow(Object display);\r
37 \r
38   void setCursor(int i, Object display);\r
39 \r
40   void setTransparentCursor(Object display);\r
41 \r
42   ////  Mouse \r
43 \r
44   GenericMouseInterface getMouseManager(double privateKey, Object display);\r
45 \r
46   ///// core Image handling\r
47   \r
48   Object allocateRgbImage(int windowWidth, int windowHeight, int[] pBuffer,\r
49                           int windowSize, boolean backgroundTransparent, boolean isImageWrite);\r
50 \r
51   void disposeGraphics(Object graphicForText);\r
52 \r
53   void drawImage(Object g, Object img, int x, int y, int width, int height);\r
54 \r
55   int[] drawImageToBuffer(Object gObj, Object imageOffscreen,\r
56                           Object image, int width, int height, int bgcolor);\r
57 \r
58   void flushImage(Object imagePixelBuffer);\r
59 \r
60   Object getStaticGraphics(Object image, boolean backgroundTransparent);\r
61 \r
62   Object getGraphics(Object image);\r
63 \r
64   int getImageWidth(Object image);\r
65 \r
66   int getImageHeight(Object image);\r
67 \r
68   Object newBufferedImage(Object image, int i, int height);\r
69 \r
70   Object newOffScreenImage(int w, int h);\r
71   \r
72   @Deprecated\r
73   void renderScreenImage(Object g, Object currentSize);\r
74 \r
75   int[] getTextPixels(String text, Font font3d, Object gObj,\r
76                       Object image, int mapWidth, int height,\r
77                       int ascent);\r
78 \r
79   ///// Image creation for export (optional for any platform)\r
80 \r
81   /**\r
82    * can be ignored (return null) if platform cannot save images\r
83    * \r
84    * @param ret\r
85    * @return     null only if this platform cannot save images\r
86    */\r
87   Object createImage(Object ret);\r
88 \r
89   /**\r
90    * \r
91    * @param image\r
92    * @param width\r
93    * @param height\r
94    * @param pixels \r
95    * @param startRow \r
96    * @param nRows \r
97    * @return         pixels\r
98    */\r
99   int[] grabPixels(Object image, int width, int height, \r
100                    int[] pixels, int startRow, int nRows);\r
101 \r
102   /**\r
103    * can be ignored (return false) if platform cannot save images\r
104    * \r
105    * @param boolIsEcho\r
106    * @param image\r
107    * @return        false only if this platform cannot save images\r
108    * @throws InterruptedException\r
109    */\r
110   boolean waitForDisplay(Object boolIsEcho, Object image) throws InterruptedException;\r
111 \r
112   GenericMenuInterface getMenuPopup(String menuStructure, char type);\r
113 \r
114   Object getJsObjectInfo(Object[] jsObject, String method, Object[] args);\r
115 \r
116   boolean isSingleThreaded();\r
117 \r
118   void notifyEndOfRendering();\r
119 \r
120   String getDateFormat(String isoType);\r
121   \r
122   GenericFileInterface newFile(String name);\r
123   \r
124   Object getBufferedFileInputStream(String name);\r
125   \r
126   /**\r
127    * \r
128    * @param url\r
129    * @param outputBytes\r
130    * @param post\r
131    * @param asString\r
132    * @return may be javajs.util.SB or byte[] or java.io.InputStream\r
133    */\r
134   Object getURLContents(URL url, byte[] outputBytes, String post, boolean asString);\r
135 \r
136   String getLocalUrl(String fileName);\r
137 \r
138   GenericImageDialog getImageDialog(String title,\r
139                                  Map<String, GenericImageDialog> imageMap);\r
140 \r
141 }\r