Class SWTAccessor
- java.lang.Object
-
- com.jogamp.nativewindow.swt.SWTAccessor
-
public class SWTAccessor extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static booleanisOSXstatic booleanisWindowsstatic booleanisX11static booleanisX11GTKstatic Class<?>OS_gtk_classstatic VersionNumberOS_gtk_version
-
Constructor Summary
Constructors Constructor Description SWTAccessor()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static longcreateCompatibleGDKChildWindow(org.eclipse.swt.widgets.Control swtControl, int visualID, int width, int height)static longcreateCompatibleX11ChildWindow(AbstractGraphicsScreen screen, org.eclipse.swt.widgets.Control swtControl, int visualID, int width, int height)static voiddestroyGDKWindow(long gdkWindow)static voiddestroyX11Window(AbstractGraphicsDevice device, long x11Window)static voiddisposeGC(org.eclipse.swt.widgets.Control swtControl, long gc, org.eclipse.swt.graphics.GCData gcData)static voidfocusGDKWindow(long gdkWindow)static longgdk_widget_get_window(long handle)static longgdk_window_get_xdisplay(long window)static longgdk_window_get_xwindow(long window)static voidgdk_window_set_back_pixmap(long window, long pixmap, boolean parent_relative)static org.eclipse.swt.graphics.RectanglegetClientAreaInPixels(org.eclipse.swt.widgets.Scrollable s)Returns the unscaledScrollable.getClientArea()in pixels.static AbstractGraphicsDevicegetDevice(org.eclipse.swt.widgets.Control swtControl)static longgetHandle(org.eclipse.swt.widgets.Control swtControl)static org.eclipse.swt.graphics.PointgetLocationInPixels(org.eclipse.swt.widgets.Control c)static intgetNativeVisualID(AbstractGraphicsDevice device, long windowHandle)static AbstractGraphicsScreengetScreen(AbstractGraphicsDevice device, int screen)static org.eclipse.swt.graphics.PointgetSizeInPixels(org.eclipse.swt.widgets.Control c)static longgetWindowHandle(org.eclipse.swt.widgets.Control swtControl)static VersionNumberGTK_VERSION()static voidinvoke(boolean wait, Runnable runnable)Runs the specified action in an SWT compatible thread, which is: Mac OSX Main Thread: Run on OSX UI main thread.static voidinvoke(org.eclipse.swt.widgets.Display display, boolean wait, Runnable runnable)Runs the specified action on the SWT UI thread.static booleanisUsingLongHandles()static longnewGC(org.eclipse.swt.widgets.Control swtControl, org.eclipse.swt.graphics.GCData gcData)static voidresizeGDKWindow(org.eclipse.swt.graphics.Rectangle clientArea, long gdkWindow)static voidresizeX11Window(AbstractGraphicsDevice device, org.eclipse.swt.graphics.Rectangle clientArea, long x11Window)static voidsetRealized(org.eclipse.swt.widgets.Control swtControl, boolean realize)static voidshowGDKWindow(long gdkWindow)static booleanuseX11GTK()
-
-
-
Field Detail
-
isOSX
public static final boolean isOSX
-
isWindows
public static final boolean isWindows
-
isX11
public static final boolean isX11
-
isX11GTK
public static final boolean isX11GTK
-
OS_gtk_class
public static final Class<?> OS_gtk_class
-
OS_gtk_version
public static final VersionNumber OS_gtk_version
-
-
Method Detail
-
isUsingLongHandles
public static boolean isUsingLongHandles()
-
useX11GTK
public static boolean useX11GTK()
-
GTK_VERSION
public static VersionNumber GTK_VERSION()
-
gdk_widget_get_window
public static long gdk_widget_get_window(long handle)
-
gdk_window_get_xdisplay
public static long gdk_window_get_xdisplay(long window)
-
gdk_window_get_xwindow
public static long gdk_window_get_xwindow(long window)
-
gdk_window_set_back_pixmap
public static void gdk_window_set_back_pixmap(long window, long pixmap, boolean parent_relative)
-
getClientAreaInPixels
public static org.eclipse.swt.graphics.Rectangle getClientAreaInPixels(org.eclipse.swt.widgets.Scrollable s) throws NativeWindowExceptionReturns the unscaledScrollable.getClientArea()in pixels.If the package restricted method
Scrollable.getClientAreaInPixels()is implemented, we return its result.Fallback is to return
DPIUtil#autoScaleUp(Scrollable.getClientArea()), revertingScrollable.getClientArea()'sDPIUtil.autoScaleDown(Rectangle).Note to SWT's API spec writers: You need to allow access to the unscaled value, scale properties and define what is being scaled (fonts, images, ..). Further more the scale should be separate for x/y coordinates, as DPI differs here.
Note to Eclipse authors: Scaling up the fonts and images hardly works on GTK/SWT/Eclipse. GDK_SCALE, GDK_DPI_SCALE and swt.autoScale produce inconsistent results with Eclipse. Broken High-DPI for .. some years now.
Requires SWT >= 3.105 (DPIUtil)- Parameters:
s- theScrollableinstance- Returns:
- unscaled client area in pixels, see above
- Throws:
NativeWindowException- during invocation of the method, if any
-
getLocationInPixels
public static org.eclipse.swt.graphics.Point getLocationInPixels(org.eclipse.swt.widgets.Control c) throws NativeWindowException- Throws:
NativeWindowException
-
getSizeInPixels
public static org.eclipse.swt.graphics.Point getSizeInPixels(org.eclipse.swt.widgets.Control c) throws NativeWindowException- Throws:
NativeWindowException
-
getHandle
public static long getHandle(org.eclipse.swt.widgets.Control swtControl) throws NativeWindowException- Parameters:
swtControl- the SWT Control to retrieve the native widget-handle from- Returns:
- the native widget-handle
- Throws:
NativeWindowException- if the widget handle is null
-
setRealized
public static void setRealized(org.eclipse.swt.widgets.Control swtControl, boolean realize) throws NativeWindowException- Throws:
NativeWindowException
-
getDevice
public static AbstractGraphicsDevice getDevice(org.eclipse.swt.widgets.Control swtControl) throws NativeWindowException, UnsupportedOperationException
- Parameters:
swtControl- the SWT Control to retrieve the native device handle from- Returns:
- the AbstractGraphicsDevice w/ the native device handle
- Throws:
NativeWindowException- if the widget handle is nullUnsupportedOperationException- if the windowing system is not supported
-
getScreen
public static AbstractGraphicsScreen getScreen(AbstractGraphicsDevice device, int screen)
- Parameters:
device-screen- -1 is default screen of the given device, e.g. maybe 0 or determined by native API. >= 0 is specific screen- Returns:
-
getNativeVisualID
public static int getNativeVisualID(AbstractGraphicsDevice device, long windowHandle)
-
getWindowHandle
public static long getWindowHandle(org.eclipse.swt.widgets.Control swtControl) throws NativeWindowException, UnsupportedOperationException- Parameters:
swtControl- the SWT Control to retrieve the native window handle from- Returns:
- the native window handle
- Throws:
NativeWindowException- if the widget handle is nullUnsupportedOperationException- if the windowing system is not supported
-
newGC
public static long newGC(org.eclipse.swt.widgets.Control swtControl, org.eclipse.swt.graphics.GCData gcData)
-
disposeGC
public static void disposeGC(org.eclipse.swt.widgets.Control swtControl, long gc, org.eclipse.swt.graphics.GCData gcData)
-
invoke
public static void invoke(boolean wait, Runnable runnable)Runs the specified action in an SWT compatible thread, which is:- Mac OSX
- Main Thread: Run on OSX UI main thread. 'wait' is implemented on Java site via lock/wait on
RunnableTaskto not freeze OSX main thread.
- Main Thread: Run on OSX UI main thread. 'wait' is implemented on Java site via lock/wait on
- Linux, Windows, ..
- Current thread.
- See Also:
Platform.AWT_AVAILABLE,Platform.getOSType()
- Mac OSX
-
invoke
public static void invoke(org.eclipse.swt.widgets.Display display, boolean wait, Runnable runnable)Runs the specified action on the SWT UI thread.If
displayis disposed or the current thread is the SWT UI threadinvoke(boolean, Runnable)is being used.- See Also:
invoke(boolean, Runnable)
-
createCompatibleX11ChildWindow
public static long createCompatibleX11ChildWindow(AbstractGraphicsScreen screen, org.eclipse.swt.widgets.Control swtControl, int visualID, int width, int height)
-
resizeX11Window
public static void resizeX11Window(AbstractGraphicsDevice device, org.eclipse.swt.graphics.Rectangle clientArea, long x11Window)
-
destroyX11Window
public static void destroyX11Window(AbstractGraphicsDevice device, long x11Window)
-
createCompatibleGDKChildWindow
public static long createCompatibleGDKChildWindow(org.eclipse.swt.widgets.Control swtControl, int visualID, int width, int height)
-
showGDKWindow
public static void showGDKWindow(long gdkWindow)
-
focusGDKWindow
public static void focusGDKWindow(long gdkWindow)
-
resizeGDKWindow
public static void resizeGDKWindow(org.eclipse.swt.graphics.Rectangle clientArea, long gdkWindow)
-
destroyGDKWindow
public static void destroyGDKWindow(long gdkWindow)
-
-