public void setImage(Image image) { checkWidget(); if ((style & SWT.SEPARATOR) != 0) return; if (image != null && image.isDisposed()) error(SWT.ERROR_INVALID_ARGUMENT); super.setImage(image); updateImages(getEnabled() && parent.getEnabled()); }
void hookEvents() { super.hookEvents(); if ((style & SWT.SEPARATOR) != 0) return; if ((style & (SWT.RADIO | SWT.CHECK)) != 0) { int handler = OS.gcnew_RoutedEventHandler(jniRef, "HandleChecked"); if (handler == 0) error(SWT.ERROR_NO_HANDLES); OS.ToggleButton_Checked(handle, handler); OS.GCHandle_Free(handler); handler = OS.gcnew_RoutedEventHandler(jniRef, "HandleUnchecked"); if (handler == 0) error(SWT.ERROR_NO_HANDLES); OS.ToggleButton_Unchecked(handle, handler); OS.GCHandle_Free(handler); } else { int handler = OS.gcnew_RoutedEventHandler(jniRef, "HandleClick"); if (handler == 0) error(SWT.ERROR_NO_HANDLES); OS.ButtonBase_Click(handle, handler); OS.GCHandle_Free(handler); } int handler = OS.gcnew_MouseEventHandler(jniRef, "HandleMouseEnter"); if (handler == 0) error(SWT.ERROR_NO_HANDLES); OS.UIElement_MouseEnter(handle, handler); OS.GCHandle_Free(handler); handler = OS.gcnew_MouseEventHandler(jniRef, "HandleMouseLeave"); if (handler == 0) error(SWT.ERROR_NO_HANDLES); OS.UIElement_MouseLeave(handle, handler); OS.GCHandle_Free(handler); }
void releaseHandle() { super.releaseHandle(); if (handle != 0) OS.GCHandle_Free(handle); handle = 0; if (imageHandle != 0) { OS.GCHandle_Free(imageHandle); imageHandle = 0; } if (textHandle != 0) { OS.GCHandle_Free(textHandle); textHandle = 0; } if (arrowHandle != 0) { OS.GCHandle_Free(arrowHandle); arrowHandle = 0; } parent = null; }
/** * Sets the receiver's text. The string may include the mnemonic character. * * <p>Mnemonics are indicated by an '&' that causes the next character to be the mnemonic. * When the user presses a key sequence that matches the mnemonic, a selection event occurs. On * most platforms, the mnemonic appears underlined but may be emphasised in a platform specific * manner. The mnemonic indicator character '&' can be escaped by doubling it in the string, * causing a single '&' to be displayed. * * @param string the new text * @exception IllegalArgumentException * <ul> * <li>ERROR_NULL_ARGUMENT - if the text is null * </ul> * * @exception SWTException * <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver * </ul> */ public void setText(String string) { checkWidget(); if (string == null) error(SWT.ERROR_NULL_ARGUMENT); if ((style & SWT.SEPARATOR) != 0) return; if (string.equals(text)) return; super.setText(string); int strPtr = createDotNetString(string, true); if (strPtr == 0) error(SWT.ERROR_NO_HANDLES); OS.AccessText_Text(textHandle, strPtr); OS.GCHandle_Free(strPtr); OS.UIElement_Visibility( textHandle, string.length() == 0 && image != null ? OS.Visibility_Collapsed : OS.Visibility_Visible); int spacing = image != null && text.length() != 0 ? 3 : 0; int margin = (parent.style & SWT.RIGHT) != 0 ? OS.gcnew_Thickness(0, 0, spacing, 0) : OS.gcnew_Thickness(0, 0, 0, spacing); OS.FrameworkElement_Margin(imageHandle, margin); OS.GCHandle_Free(margin); }
void releaseWidget() { super.releaseWidget(); control = null; toolTipText = null; image = disabledImage = hotImage = null; }