29 import com.sun.glass.ui.Cursor; 30 import com.sun.glass.ui.Pixels; 31 import com.sun.glass.ui.Screen; 32 import com.sun.glass.ui.View; 33 import com.sun.glass.ui.Window; 34 35 import java.util.Map; 36 37 /** 38 * MacOSX platform implementation class for Window. 39 */ 40 final class MacWindow extends Window { 41 42 private native static void _initIDs(); 43 static { 44 _initIDs(); 45 } 46 47 protected MacWindow(Window owner, Screen screen, int styleMask) { 48 super(owner, screen, styleMask); 49 setPlatformScale(screen.getUIScale()); 50 setRenderScale(screen.getRenderScale()); 51 } 52 protected MacWindow(long parent) { 53 super(parent); 54 } 55 56 @Override 57 protected void setScreen(Screen screen) { 58 // SceneState will be called to update with new scale values 59 // before we return from super.setScreen()... 60 setRenderScale(screen.getUIScale()); 61 setRenderScale(screen.getRenderScale()); 62 super.setScreen(screen); 63 } 64 65 @Override 66 public float getOutputScale() { 67 return getRenderScale(); 68 } 69 70 @Override native protected long _createWindow(long ownerPtr, long screenPtr, int mask); 71 @Override native protected long _createChildWindow(long parent); 72 @Override native protected boolean _close(long ptr); 73 @Override native protected boolean _setView(long ptr, View view); 74 @Override native protected boolean _setMenubar(long ptr, long menubarPtr); 75 @Override native protected boolean _minimize(long ptr, boolean minimize); 76 @Override native protected boolean _maximize(long ptr, boolean maximize, boolean wasMaximized); 77 @Override native protected void _setBounds(long ptr, int x, int y, boolean xSet, boolean ySet, int w, int h, int cw, int ch, float xGravity, float yGravity); 78 @Override native protected boolean _setVisible(long ptr, boolean visible); 79 @Override native protected boolean _setResizable(long ptr, boolean resizable); 80 81 native private boolean _requestFocus(long ptr); 82 @Override protected boolean _requestFocus(long ptr, int event) { 83 //TODO: provide reasonable impl for all possible events 84 if (event != WindowEvent.FOCUS_LOST) { 85 return _requestFocus(ptr); 86 } 87 return false; 88 } 89 90 @Override native protected void _setFocusable(long ptr, boolean isFocusable); 91 @Override native protected boolean _setTitle(long ptr, String title); 92 @Override native protected void _setLevel(long ptr, int level); 93 @Override native protected void _setAlpha(long ptr, float alpha); 94 @Override native protected boolean _setBackground(long ptr, float r, float g, float b); 95 @Override native protected void _setEnabled(long ptr, boolean enabled); 96 @Override native protected boolean _setMinimumSize(long ptr, int width, int height); 97 @Override native protected boolean _setMaximumSize(long ptr, int width, int height); 98 @Override native protected void _setIcon(long ptr, Pixels pixels); 99 @Override native protected void _toFront(long ptr); 100 @Override native protected void _toBack(long ptr); 101 @Override native protected void _enterModal(long ptr); 102 @Override native protected void _enterModalWithWindow(long dialog, long window); 103 @Override native protected void _exitModal(long ptr); 104 105 @Override native protected boolean _grabFocus(long ptr); 106 @Override native protected void _ungrabFocus(long ptr); 107 108 @Override native protected int _getEmbeddedX(long ptr); 109 @Override native protected int _getEmbeddedY(long ptr); 110 111 @Override 112 protected void _setCursor(long ptr, Cursor cursor) { 113 ((MacCursor)cursor).set(); 114 } 115 116 @Override 117 public void dispatchNpapiEvent(Map eventInfo) { 118 NpapiEvent.dispatchCocoaNpapiEvent(this, eventInfo); 119 } 120 121 @Override 122 protected void _requestInput(long ptr, String text, int type, double width, double height, 123 double Mxx, double Mxy, double Mxz, double Mxt, 124 double Myx, double Myy, double Myz, double Myt, 125 double Mzx, double Mzy, double Mzz, double Mzt) { 126 throw new UnsupportedOperationException("Not supported yet."); 127 } 128 129 @Override 130 protected void _releaseInput(long ptr) { 131 throw new UnsupportedOperationException("Not supported yet."); | 29 import com.sun.glass.ui.Cursor; 30 import com.sun.glass.ui.Pixels; 31 import com.sun.glass.ui.Screen; 32 import com.sun.glass.ui.View; 33 import com.sun.glass.ui.Window; 34 35 import java.util.Map; 36 37 /** 38 * MacOSX platform implementation class for Window. 39 */ 40 final class MacWindow extends Window { 41 42 private native static void _initIDs(); 43 static { 44 _initIDs(); 45 } 46 47 protected MacWindow(Window owner, Screen screen, int styleMask) { 48 super(owner, screen, styleMask); 49 } 50 protected MacWindow(long parent) { 51 super(parent); 52 } 53 54 @Override 55 protected void setScreen(Screen screen) { 56 // SceneState will be called to update with new scale values 57 // before we return from super.setScreen()... 58 super.setScreen(screen); 59 notifyScaleChanged(1.0f, 1.0f, 60 screen.getRecommendedOutputScaleX(), 61 screen.getRecommendedOutputScaleY()); 62 } 63 64 @Override native protected long _createWindow(long ownerPtr, long screenPtr, int mask); 65 @Override native protected long _createChildWindow(long parent); 66 @Override native protected boolean _close(long ptr); 67 @Override native protected boolean _setView(long ptr, View view); 68 @Override native protected boolean _setMenubar(long ptr, long menubarPtr); 69 @Override native protected boolean _minimize(long ptr, boolean minimize); 70 @Override native protected boolean _maximize(long ptr, boolean maximize, boolean wasMaximized); 71 @Override protected void _setBounds(long ptr, 72 int x, int y, boolean xSet, boolean ySet, 73 int w, int h, int cw, int ch, 74 float xGravity, float yGravity) 75 { 76 float sx = getPlatformScaleX(); 77 float sy = getPlatformScaleY(); 78 if (xSet) x = Math.round( x / sx); 79 if (ySet) y = Math.round( y / sy); 80 if ( w > 0) w = Math.round( w / sx); 81 if ( h > 0) h = Math.round( h / sy); 82 if (cw > 0) cw = Math.round(cw / sx); 83 if (ch > 0) ch = Math.round(ch / sy); 84 _setBounds2(ptr, x, y, xSet, ySet, w, h, cw, ch, xGravity, yGravity); 85 } 86 native protected void _setBounds2(long ptr, int x, int y, boolean xSet, boolean ySet, int w, int h, int cw, int ch, float xGravity, float yGravity); 87 @Override native protected boolean _setVisible(long ptr, boolean visible); 88 @Override native protected boolean _setResizable(long ptr, boolean resizable); 89 90 native private boolean _requestFocus(long ptr); 91 @Override protected boolean _requestFocus(long ptr, int event) { 92 //TODO: provide reasonable impl for all possible events 93 if (event != WindowEvent.FOCUS_LOST) { 94 return _requestFocus(ptr); 95 } 96 return false; 97 } 98 99 @Override native protected void _setFocusable(long ptr, boolean isFocusable); 100 @Override native protected boolean _setTitle(long ptr, String title); 101 @Override native protected void _setLevel(long ptr, int level); 102 @Override native protected void _setAlpha(long ptr, float alpha); 103 @Override native protected boolean _setBackground(long ptr, float r, float g, float b); 104 @Override native protected void _setEnabled(long ptr, boolean enabled); 105 @Override native protected boolean _setMinimumSize(long ptr, int width, int height); 106 @Override native protected boolean _setMaximumSize(long ptr, int width, int height); 107 @Override native protected void _setIcon(long ptr, Pixels pixels); 108 @Override native protected void _toFront(long ptr); 109 @Override native protected void _toBack(long ptr); 110 @Override native protected void _enterModal(long ptr); 111 @Override native protected void _enterModalWithWindow(long dialog, long window); 112 @Override native protected void _exitModal(long ptr); 113 114 @Override native protected boolean _grabFocus(long ptr); 115 @Override native protected void _ungrabFocus(long ptr); 116 117 @Override native protected int _getEmbeddedX(long ptr); 118 @Override native protected int _getEmbeddedY(long ptr); 119 120 @Override 121 protected void notifyResize(int type, int width, int height) { 122 width = Math.round( width * getPlatformScaleX()); 123 height = Math.round(height * getPlatformScaleY()); 124 super.notifyResize(type, width, height); 125 } 126 127 @Override 128 protected void _setCursor(long ptr, Cursor cursor) { 129 ((MacCursor)cursor).set(); 130 } 131 132 @Override 133 public void dispatchNpapiEvent(Map eventInfo) { 134 NpapiEvent.dispatchCocoaNpapiEvent(this, eventInfo); 135 } 136 137 @Override 138 protected void _requestInput(long ptr, String text, int type, double width, double height, 139 double Mxx, double Mxy, double Mxz, double Mxt, 140 double Myx, double Myy, double Myz, double Myt, 141 double Mzx, double Mzy, double Mzz, double Mzt) { 142 throw new UnsupportedOperationException("Not supported yet."); 143 } 144 145 @Override 146 protected void _releaseInput(long ptr) { 147 throw new UnsupportedOperationException("Not supported yet."); |