@Override public void run() { if (hHook != 0) OS.UnhookWindowsHookEx(hHook); if (callback != null) callback.dispose(); } });
void dispose () { if (display == null) return; if (activeClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKCLIPBOARD); } if (activePrimaryClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKPRIMARYCLIPBOARD); } display = null; if (getFunc != null ) getFunc.dispose(); getFunc = null; if (clearFunc != null) clearFunc.dispose(); clearFunc = null; clipboardData = null; clipboardDataTypes = null; primaryClipboardData = null; primaryClipboardDataTypes = null; if (clipboardOwner != 0) OS.gtk_widget_destroy (clipboardOwner); clipboardOwner = 0; }
void dispose () { if (display == null) return; if (activeClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKCLIPBOARD); } if (activePrimaryClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKPRIMARYCLIPBOARD); } display = null; if (getFunc != null ) getFunc.dispose(); getFunc = null; if (clearFunc != null) clearFunc.dispose(); clearFunc = null; clipboardData = null; clipboardDataTypes = null; primaryClipboardData = null; primaryClipboardDataTypes = null; if (clipboardOwner != 0) OS.gtk_widget_destroy (clipboardOwner); clipboardOwner = 0; }
void dispose () { if (display == null) return; if (activeClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKCLIPBOARD); } if (activePrimaryClipboard != null) { OS.gtk_clipboard_store(Clipboard.GTKPRIMARYCLIPBOARD); } display = null; if (getFunc != null ) getFunc.dispose(); getFunc = null; if (clearFunc != null) clearFunc.dispose(); clearFunc = null; clipboardData = null; clipboardDataTypes = null; primaryClipboardData = null; primaryClipboardDataTypes = null; if (clipboardOwner != 0) OS.gtk_widget_destroy (clipboardOwner); clipboardOwner = 0; }
int /*long*/ embeddedProc (int /*long*/ hwnd, int /*long*/ msg, int /*long*/ wParam, int /*long*/ lParam) { switch ((int)/*64*/msg) { case SWT_KEYMSG: { MSG keyMsg = new MSG (); OS.MoveMemory (keyMsg, lParam, MSG.sizeof); OS.TranslateMessage (keyMsg); OS.DispatchMessage (keyMsg); int /*long*/ hHeap = OS.GetProcessHeap (); OS.HeapFree (hHeap, 0, lParam); break; } case SWT_DESTROY: { OS.DestroyWindow (hwnd); if (embeddedCallback != null) embeddedCallback.dispose (); if (getMsgCallback != null) getMsgCallback.dispose (); embeddedCallback = getMsgCallback = null; embeddedProc = getMsgProc = 0; break; } } return OS.DefWindowProc (hwnd, (int)/*64*/msg, wParam, lParam); }
static int /*long*/ gtkPrinterFromPrinterData(PrinterData data) { gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress(); if (GtkPrinterFunc_FindNamedPrinter == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); findPrinter = 0; findData = data; OS.gtk_enumerate_printers(GtkPrinterFunc_FindNamedPrinter, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findPrinter; }
void convertRgn(NSAffineTransform transform) { long /*int*/ newRgn = OS.NewRgn(); Callback callback = new Callback(this, "convertRgn", 4); long /*int*/ proc = callback.getAddress(); if (proc == 0) SWT.error(SWT.ERROR_NO_MORE_CALLBACKS); this.transform = transform; OS.QDRegionToRects(handle, OS.kQDParseRegionFromTopLeft, proc, newRgn); this.transform = null; callback.dispose(); OS.CopyRgn(newRgn, handle); OS.DisposeRgn(newRgn); }
/** * Returns an array of monitors attached to the device. * * @return the array of monitors * * @since 3.0 */ public Monitor [] getMonitors () { checkDevice (); if (OS.IsWinCE || OS.WIN32_VERSION < OS.VERSION (4, 10)) { return new Monitor [] {getPrimaryMonitor ()}; } monitors = new Monitor [4]; Callback callback = new Callback (this, "monitorEnumProc", 4); //$NON-NLS-1$ int /*long*/ lpfnEnum = callback.getAddress (); if (lpfnEnum == 0) error (SWT.ERROR_NO_MORE_CALLBACKS); OS.EnumDisplayMonitors (0, null, lpfnEnum, 0); callback.dispose (); Monitor [] result = new Monitor [monitorCount]; System.arraycopy (monitors, 0, result, 0, monitorCount); monitors = null; monitorCount = 0; return result; }
static long /*int*/ gtkPrinterFromPrinterData(PrinterData data) { gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$ long /*int*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress(); if (GtkPrinterFunc_FindNamedPrinter == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); findPrinter = 0; findData = data; OS.gtk_enumerate_printers(GtkPrinterFunc_FindNamedPrinter, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findPrinter; }
static int /*long*/ gtkPrinterFromPrinterData(PrinterData data) { gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_FindNamedPrinter", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_FindNamedPrinter = printerCallback.getAddress(); if (GtkPrinterFunc_FindNamedPrinter == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); findPrinter = 0; findData = data; OS.gtk_enumerate_printers(GtkPrinterFunc_FindNamedPrinter, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findPrinter; }
/** * Returns an array of <code>PrinterData</code> objects * representing all available printers. If there are no * printers, the array will be empty. * * @return an array of PrinterData objects representing the available printers */ public static PrinterData[] getPrinterList() { printerList = new PrinterData [0]; if (disablePrinting) { return printerList; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_List", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_List = printerCallback.getAddress(); if (GtkPrinterFunc_List == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_List, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return printerList; }
/** * Returns a <code>PrinterData</code> object representing * the default printer or <code>null</code> if there is no * default printer. * * @return the default printer data or null * * @since 2.1 */ public static PrinterData getDefaultPrinterData() { findData = null; if (disablePrinting) { return null; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_Default", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_Default = printerCallback.getAddress(); if (GtkPrinterFunc_Default == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_Default, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findData; }
void sort (int /*long*/ hParent, boolean all) { int itemCount = (int)/*64*/OS.SendMessage (handle, OS.TVM_GETCOUNT, 0, 0); if (itemCount == 0 || itemCount == 1) return; hFirstIndexOf = hLastIndexOf = 0; itemCount = -1; if (sortDirection == SWT.UP || sortDirection == SWT.NONE) { OS.SendMessage (handle, OS.TVM_SORTCHILDREN, all ? 1 : 0, hParent); } else { Callback compareCallback = new Callback (this, "CompareFunc", 3); int /*long*/ lpfnCompare = compareCallback.getAddress (); TVSORTCB psort = new TVSORTCB (); psort.hParent = hParent; psort.lpfnCompare = lpfnCompare; psort.lParam = sortColumn == null ? 0 : indexOf (sortColumn); OS.SendMessage (handle, OS.TVM_SORTCHILDRENCB, all ? 1 : 0, psort); compareCallback.dispose (); } }
/** * Returns an array of <code>PrinterData</code> objects * representing all available printers. If there are no * printers, the array will be empty. * * @return an array of PrinterData objects representing the available printers */ public static PrinterData[] getPrinterList() { printerList = new PrinterData [0]; if (disablePrinting) { return printerList; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_List", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_List = printerCallback.getAddress(); if (GtkPrinterFunc_List == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_List, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return printerList; }
/** * Returns a <code>PrinterData</code> object representing * the default printer or <code>null</code> if there is no * default printer. * * @return the default printer data or null * * @since 2.1 */ public static PrinterData getDefaultPrinterData() { findData = null; if (disablePrinting) { return null; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_Default", 2); //$NON-NLS-1$ int /*long*/ GtkPrinterFunc_Default = printerCallback.getAddress(); if (GtkPrinterFunc_Default == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_Default, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findData; }
/** * Returns an array of <code>PrinterData</code> objects * representing all available printers. If there are no * printers, the array will be empty. * * @return an array of PrinterData objects representing the available printers */ public static PrinterData[] getPrinterList() { printerList = new PrinterData [0]; if (disablePrinting) { return printerList; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_List", 2); //$NON-NLS-1$ long /*int*/ GtkPrinterFunc_List = printerCallback.getAddress(); if (GtkPrinterFunc_List == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_List, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return printerList; }
/** * Returns a <code>PrinterData</code> object representing * the default printer or <code>null</code> if there is no * default printer. * * @return the default printer data or null * * @since 2.1 */ public static PrinterData getDefaultPrinterData() { findData = null; if (disablePrinting) { return null; } gtk_init(); Callback printerCallback = new Callback(Printer.class, "GtkPrinterFunc_Default", 2); //$NON-NLS-1$ long /*int*/ GtkPrinterFunc_Default = printerCallback.getAddress(); if (GtkPrinterFunc_Default == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS); OS.gtk_enumerate_printers(GtkPrinterFunc_Default, 0, 0, true); /* * This call to gdk_threads_leave() is a temporary work around * to avoid deadlocks when gdk_threads_init() is called by native * code outside of SWT (i.e AWT, etc). It ensures that the current * thread leaves the GTK lock acquired by the function above. */ OS.gdk_threads_leave(); printerCallback.dispose (); return findData; }
NSBezierPath getPath() { Callback callback = new Callback(this, "regionToRects", 4); if (callback.getAddress() == 0) SWT.error(SWT.ERROR_NO_MORE_CALLBACKS); NSBezierPath path = NSBezierPath.bezierPath(); path.retain(); OS.QDRegionToRects(handle, OS.kQDParseRegionFromTopLeft, callback.getAddress(), path.id); callback.dispose(); if (path.isEmpty()) path.appendBezierPathWithRect(new NSRect()); return path; }
NSBezierPath getPath(long /*int*/ region) { Callback callback = new Callback(this, "regionToRects", 4); if (callback.getAddress() == 0) error(SWT.ERROR_NO_MORE_CALLBACKS); NSBezierPath path = NSBezierPath.bezierPath(); path.retain(); OS.QDRegionToRects(region, OS.kQDParseRegionFromTopLeft, callback.getAddress(), path.id); callback.dispose(); if (path.isEmpty()) path.appendBezierPathWithRect(new NSRect()); return path; }
private static void initMsgHook(Display display) { if (display.getData(HHOOK) != null) return; final Callback callback = new Callback(OleFrame.class, "getMsgProc", 3); //$NON-NLS-1$ int /*long*/ address = callback.getAddress(); if (address == 0) SWT.error(SWT.ERROR_NO_MORE_CALLBACKS); int threadId = OS.GetCurrentThreadId(); final int /*long*/ hHook = OS.SetWindowsHookEx(OS.WH_GETMESSAGE, address, 0, threadId); if (hHook == 0) { callback.dispose(); return; } display.setData(HHOOK, new LONG(hHook)); display.setData(HHOOKMSG, new MSG()); display.disposeExec(new Runnable() { @Override public void run() { if (hHook != 0) OS.UnhookWindowsHookEx(hHook); if (callback != null) callback.dispose(); } }); } static int /*long*/ getMsgProc(int /*long*/ code, int /*long*/ wParam, int /*long*/ lParam) {