Mercurial > projects > dwt-linux
diff dwt/widgets/Control.d @ 30:5e5d1c9cffdb
ATK, Control
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 09 Jan 2008 06:17:26 +0100 |
parents | ffa3c27c4328 |
children | 27324bbbac70 |
line wrap: on
line diff
--- a/dwt/widgets/Control.d Wed Jan 09 03:05:22 2008 +0100 +++ b/dwt/widgets/Control.d Wed Jan 09 06:17:26 2008 +0100 @@ -11,10 +11,52 @@ module dwt.widgets.Control; import dwt.internal.gtk.c.gtktypes; -import dwt.widgets.Widget; + +import dwt.SWT; +//import dwt.accessibility.Accessible; +import dwt.events.ControlListener; +import dwt.events.FocusListener; +import dwt.events.HelpListener; +import dwt.events.KeyListener; +import dwt.events.MouseListener; +import dwt.events.MouseMoveListener; +import dwt.events.MouseTrackListener; +import dwt.events.PaintListener; +import dwt.events.TraverseListener; +import dwt.events.DragDetectListener; +import dwt.events.MenuDetectListener; +import dwt.events.MouseWheelListener; +import dwt.graphics.Color; +import dwt.graphics.Cursor; +import dwt.graphics.Device; +import dwt.graphics.Drawable; +import dwt.graphics.Font; +import dwt.graphics.GC; +import dwt.graphics.GCData; +import dwt.graphics.Image; +import dwt.graphics.Point; +import dwt.graphics.Rectangle; +import dwt.internal.Converter; +import dwt.internal.SWTEventListener; +import dwt.internal.accessibility.gtk.ATK; +import dwt.internal.gtk.OS; +import dwt.widgets.Composite; +import dwt.widgets.Decorations; +import dwt.widgets.Display; +import dwt.widgets.Event; +import dwt.widgets.EventTable; +import dwt.widgets.Listener; +import dwt.widgets.Menu; +import dwt.widgets.Monitor; import dwt.widgets.Shell; -import dwt.graphics.Point; - +import dwt.widgets.TypedListener; +import dwt.widgets.Widget; + +import Math = tango.math.Math; +import tango.stdc.string; +import tango.stdc.stringz; + +/+ class Control : Widget { GdkWindow* paintWindow () { return null; }; public Shell getShell(); @@ -30,13 +72,11 @@ public Point toDisplay (Point point) ; Point getIMCaretPos () ; } -/+++ -import dwt.*; -import dwt.internal.Converter; -import dwt.internal.accessibility.gtk.ATK; -import dwt.graphics.*; -import dwt.events.*; -import dwt.accessibility.*; ++/ + +class Accessible{ + static Accessible internal_new_Accessible(Control); +} /** * Control is the abstract superclass of all windowed user interface classes. @@ -56,20 +96,21 @@ * within the SWT implementation. * </p> */ -public abstract class Control extends Widget implements Drawable { - int /*long*/ fixedHandle; - int /*long*/ redrawWindow, enableWindow; +public abstract class Control : Widget, Drawable { + GtkWidget* fixedHandle; + GdkWindow* redrawWindow; + GdkWindow* enableWindow; int drawCount; Composite parent; Cursor cursor; Menu menu; Image backgroundImage; Font font; - String toolTipText; + char[] toolTipText; Object layoutData; Accessible accessible; -Control () { +this () { } /** @@ -100,46 +141,47 @@ * @see Widget#checkSubclass * @see Widget#getStyle */ -public Control (Composite parent, int style) { +public this (Composite parent, int style) { super (parent, style); this.parent = parent; createWidget (0); } -int /*long*/ defaultFont () { +PangoFontDescription* defaultFont () { return display.getSystemFont ().handle; } void deregister () { super.deregister (); - if (fixedHandle != 0) display.removeWidget (fixedHandle); - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) display.removeWidget (imHandle); + if (fixedHandle !is null) display.removeWidget (fixedHandle); + auto imHandle = imHandle (); + if (imHandle !is null) display.removeWidget (cast(GtkWidget*)imHandle); } -boolean drawGripper (int x, int y, int width, int height, boolean vertical) { - int /*long*/ paintHandle = paintHandle (); - int /*long*/ window = OS.GTK_WIDGET_WINDOW (paintHandle); - if (window == 0) return false; +bool drawGripper (int x, int y, int width, int height, bool vertical) { + auto paintHandle = paintHandle (); + auto window = OS.GTK_WIDGET_WINDOW (paintHandle); + if (window is null) return false; int orientation = vertical ? OS.GTK_ORIENTATION_HORIZONTAL : OS.GTK_ORIENTATION_VERTICAL; - OS.gtk_paint_handle (OS.gtk_widget_get_style (paintHandle), window, OS.GTK_STATE_NORMAL, OS.GTK_SHADOW_OUT, null, paintHandle, new byte [1], x, y, width, height, orientation); + char dummy; + OS.gtk_paint_handle (OS.gtk_widget_get_style (paintHandle), window, cast(GtkStateType)OS.GTK_STATE_NORMAL, cast(GtkShadowType)OS.GTK_SHADOW_OUT, null, paintHandle, &dummy, x, y, width, height, cast(GtkOrientation)orientation); return true; } -void enableWidget (boolean enabled) { +void enableWidget (bool enabled) { OS.gtk_widget_set_sensitive (handle, enabled); } -int /*long*/ enterExitHandle () { +GtkWidget* enterExitHandle () { return eventHandle (); } -int /*long*/ eventHandle () { +GtkWidget* eventHandle () { return handle; } -int /*long*/ eventWindow () { - int /*long*/ eventHandle = eventHandle (); +GdkWindow* eventWindow () { + auto eventHandle = eventHandle (); OS.gtk_widget_realize (eventHandle); return OS.GTK_WIDGET_WINDOW (eventHandle); } @@ -147,21 +189,21 @@ void fixFocus (Control focusControl) { Shell shell = getShell (); Control control = this; - while (control != shell && (control = control.parent) != null) { + while (control !is shell && (control = control.parent) !is null) { if (control.setFocus ()) return; } shell.setSavedFocus (focusControl); - int /*long*/ focusHandle = shell.vboxHandle; + auto focusHandle = shell.vboxHandle; OS.GTK_WIDGET_SET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS); OS.gtk_widget_grab_focus (focusHandle); OS.GTK_WIDGET_UNSET_FLAGS (focusHandle, OS.GTK_CAN_FOCUS); } void fixStyle () { - if (fixedHandle != 0) fixStyle (fixedHandle); + if (fixedHandle !is null) fixStyle (fixedHandle); } -void fixStyle (int /*long*/ handle) { +void fixStyle (GtkWidget* handle) { /* * Feature in GTK. Some GTK themes apply a different background to * the contents of a GtkNotebook. However, in an SWT TabFolder, the @@ -173,30 +215,30 @@ * Note that this has to be when the theme settings changes and that it * should not override the application background. */ - if ((state & BACKGROUND) != 0) return; - int /*long*/ childStyle = parent.childStyle (); - if (childStyle != 0) { - GdkColor color = new GdkColor(); + if ((state & BACKGROUND) !is 0) return; + auto childStyle = parent.childStyle (); + if (childStyle !is null) { + GdkColor* color = new GdkColor(); OS.gtk_style_get_bg (childStyle, 0, color); - OS.gtk_widget_modify_bg (handle, 0, color); + OS.gtk_widget_modify_bg (handle, cast(GtkStateType) 0, color); } } -int /*long*/ focusHandle () { +GtkWidget* focusHandle () { return handle; } -int /*long*/ fontHandle () { +GtkWidget* fontHandle () { return handle; } -boolean hasFocus () { - return this == display.getFocusControl(); +bool hasFocus () { + return this is display.getFocusControl(); } void hookEvents () { /* Connect the keyboard signals */ - int /*long*/ focusHandle = focusHandle (); + auto focusHandle = focusHandle (); int focusMask = OS.GDK_KEY_PRESS_MASK | OS.GDK_KEY_RELEASE_MASK | OS.GDK_FOCUS_CHANGE_MASK; OS.gtk_widget_add_events (focusHandle, focusMask); OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [POPUP_MENU], 0, display.closures [POPUP_MENU], false); @@ -208,7 +250,7 @@ OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [FOCUS_OUT_EVENT], 0, display.closures [FOCUS_OUT_EVENT], false); /* Connect the mouse signals */ - int /*long*/ eventHandle = eventHandle (); + auto eventHandle = eventHandle (); int eventMask = OS.GDK_POINTER_MOTION_MASK | OS.GDK_BUTTON_PRESS_MASK | OS.GDK_BUTTON_RELEASE_MASK; OS.gtk_widget_add_events (eventHandle, eventMask); @@ -218,7 +260,7 @@ OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [SCROLL_EVENT], 0, display.closures [SCROLL_EVENT], false); /* Connect enter/exit signals */ - int /*long*/ enterExitHandle = enterExitHandle (); + auto enterExitHandle = enterExitHandle (); int enterExitMask = OS.GDK_ENTER_NOTIFY_MASK | OS.GDK_LEAVE_NOTIFY_MASK; OS.gtk_widget_add_events (enterExitHandle, enterExitMask); OS.g_signal_connect_closure_by_id (enterExitHandle, display.signalIds [ENTER_NOTIFY_EVENT], 0, display.closures [ENTER_NOTIFY_EVENT], false); @@ -234,19 +276,19 @@ * The signal is hooked to the fixedHandle to catch events sent to * lightweight widgets. */ - int /*long*/ blockHandle = fixedHandle != 0 ? fixedHandle : eventHandle; + auto blockHandle = fixedHandle !is null ? fixedHandle : eventHandle; OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_PRESS_EVENT], 0, display.closures [BUTTON_PRESS_EVENT_INVERSE], true); OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [BUTTON_RELEASE_EVENT], 0, display.closures [BUTTON_RELEASE_EVENT_INVERSE], true); OS.g_signal_connect_closure_by_id (blockHandle, display.signalIds [MOTION_NOTIFY_EVENT], 0, display.closures [MOTION_NOTIFY_EVENT_INVERSE], true); /* Connect the event_after signal for both key and mouse */ OS.g_signal_connect_closure_by_id (eventHandle, display.signalIds [EVENT_AFTER], 0, display.closures [EVENT_AFTER], false); - if (focusHandle != eventHandle) { + if (focusHandle !is eventHandle) { OS.g_signal_connect_closure_by_id (focusHandle, display.signalIds [EVENT_AFTER], 0, display.closures [EVENT_AFTER], false); } /* Connect the paint signal */ - int /*long*/ paintHandle = paintHandle (); + auto paintHandle = paintHandle (); int paintMask = OS.GDK_EXPOSURE_MASK | OS.GDK_VISIBILITY_NOTIFY_MASK; OS.gtk_widget_add_events (paintHandle, paintMask); OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [EXPOSE_EVENT], 0, display.closures [EXPOSE_EVENT_INVERSE], false); @@ -256,43 +298,44 @@ /* Connect the Input Method signals */ OS.g_signal_connect_closure_by_id (handle, display.signalIds [REALIZE], 0, display.closures [REALIZE], true); OS.g_signal_connect_closure_by_id (handle, display.signalIds [UNREALIZE], 0, display.closures [UNREALIZE], false); - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { - OS.g_signal_connect_closure (imHandle, OS.commit, display.closures [COMMIT], false); - OS.g_signal_connect_closure (imHandle, OS.preedit_changed, display.closures [PREEDIT_CHANGED], false); + auto imHandle = imHandle (); + if (imHandle !is null) { + OS.g_signal_connect_closure (imHandle, OS.commit.ptr, display.closures [COMMIT], false); + OS.g_signal_connect_closure (imHandle, OS.preedit_changed.ptr, display.closures [PREEDIT_CHANGED], false); } OS.g_signal_connect_closure_by_id (paintHandle, display.signalIds [STYLE_SET], 0, display.closures [STYLE_SET], false); - int /*long*/ topHandle = topHandle (); + auto topHandle = topHandle (); OS.g_signal_connect_closure_by_id (topHandle, display.signalIds [MAP], 0, display.closures [MAP], true); } int /*long*/ hoverProc (int /*long*/ widget) { - int [] x = new int [1], y = new int [1], mask = new int [1]; - OS.gdk_window_get_pointer (0, x, y, mask); - sendMouseEvent (SWT.MouseHover, 0, /*time*/0, x [0], y [0], false, mask [0]); + int x, y; + GdkModifierType mask; + OS.gdk_window_get_pointer (null, &x, &y, &mask); + sendMouseEvent (SWT.MouseHover, 0, /*time*/0, x , y , false, mask ); /* Always return zero in order to cancel the hover timer */ return 0; } -int /*long*/ topHandle() { - if (fixedHandle != 0) return fixedHandle; +GtkWidget* topHandle() { + if (fixedHandle !is null) return fixedHandle; return super.topHandle (); } -int /*long*/ paintHandle () { - int /*long*/ topHandle = topHandle (); - int /*long*/ paintHandle = handle; - while (paintHandle != topHandle) { - if ((OS.GTK_WIDGET_FLAGS (paintHandle) & OS.GTK_NO_WINDOW) == 0) break; +GtkWidget* paintHandle () { + auto topHandle = topHandle (); + auto paintHandle = handle; + while (paintHandle !is topHandle) { + if ((OS.GTK_WIDGET_FLAGS (paintHandle) & OS.GTK_NO_WINDOW) is 0) break; paintHandle = OS.gtk_widget_get_parent (paintHandle); } return paintHandle; } -int /*long*/ paintWindow () { - int /*long*/ paintHandle = paintHandle (); +GdkWindow* paintWindow () { + auto paintHandle = paintHandle (); OS.gtk_widget_realize (paintHandle); return OS.GTK_WIDGET_WINDOW (paintHandle); } @@ -321,7 +364,7 @@ * @see #getBorderWidth * @see #getBounds * @see #getSize - * @see #pack(boolean) + * @see #pack(bool) * @see "computeTrim, getClientArea for controls that implement them" */ public Point computeSize (int wHint, int hHint) { @@ -336,7 +379,7 @@ Control[] computeTabList() { if (isTabGroup()) { if (getVisible() && getEnabled()) { - return new Control[] {this}; + return [this]; } } return new Control[0]; @@ -344,13 +387,13 @@ Control computeTabRoot () { Control[] tabList = parent._getTabList(); - if (tabList != null) { + if (tabList !is null) { int index = 0; while (index < tabList.length) { - if (tabList [index] == this) break; + if (tabList [index] is this) break; index++; } - if (index == tabList.length) { + if (index is tabList.length) { if (isTabGroup ()) return this; } } @@ -363,34 +406,34 @@ void checkBackground () { Shell shell = getShell (); - if (this == shell) return; + if (this is shell) return; state &= ~PARENT_BACKGROUND; Composite composite = parent; do { int mode = composite.backgroundMode; - if (mode != SWT.INHERIT_NONE) { - if (mode == SWT.INHERIT_DEFAULT) { + if (mode !is SWT.INHERIT_NONE) { + if (mode is SWT.INHERIT_DEFAULT) { Control control = this; do { - if ((control.state & THEME_BACKGROUND) == 0) { + if ((control.state & THEME_BACKGROUND) is 0) { return; } control = control.parent; - } while (control != composite); + } while (control !is composite); } state |= PARENT_BACKGROUND; return; } - if (composite == shell) break; + if (composite is shell) break; composite = composite.parent; } while (true); } void checkBorder () { - if (getBorderWidth () == 0) style &= ~SWT.BORDER; + if (getBorderWidth () is 0) style &= ~SWT.BORDER; } -int /*long*/ childStyle () { +GtkStyle* childStyle () { return parent.childStyle (); } @@ -399,7 +442,7 @@ checkOrientation (parent); super.createWidget (index); checkBackground (); - if ((state & PARENT_BACKGROUND) != 0) setBackground (); + if ((state & PARENT_BACKGROUND) !is 0) setBackground (); checkBuffered (); showWidget (); setInitialBounds (); @@ -439,32 +482,32 @@ * @see #getBorderWidth * @see #getBounds * @see #getSize - * @see #pack(boolean) + * @see #pack(bool) * @see "computeTrim, getClientArea for controls that implement them" */ -public Point computeSize (int wHint, int hHint, boolean changed) { +public Point computeSize (int wHint, int hHint, bool changed) { checkWidget(); - if (wHint != SWT.DEFAULT && wHint < 0) wHint = 0; - if (hHint != SWT.DEFAULT && hHint < 0) hHint = 0; + if (wHint !is SWT.DEFAULT && wHint < 0) wHint = 0; + if (hHint !is SWT.DEFAULT && hHint < 0) hHint = 0; return computeNativeSize (handle, wHint, hHint, changed); } -Point computeNativeSize (int /*long*/ h, int wHint, int hHint, boolean changed) { +Point computeNativeSize (GtkWidget* h, int wHint, int hHint, bool changed) { int width = wHint, height = hHint; - if (wHint == SWT.DEFAULT && hHint == SWT.DEFAULT) { - GtkRequisition requisition = new GtkRequisition (); + if (wHint is SWT.DEFAULT && hHint is SWT.DEFAULT) { + GtkRequisition* requisition = new GtkRequisition (); gtk_widget_size_request (h, requisition); width = OS.GTK_WIDGET_REQUISITION_WIDTH (h); height = OS.GTK_WIDGET_REQUISITION_HEIGHT (h); - } else if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) { - int [] reqWidth = new int [1], reqHeight = new int [1]; - OS.gtk_widget_get_size_request (h, reqWidth, reqHeight); + } else if (wHint is SWT.DEFAULT || hHint is SWT.DEFAULT) { + int reqWidth, reqHeight; + OS.gtk_widget_get_size_request (h, &reqWidth, &reqHeight); OS.gtk_widget_set_size_request (h, wHint, hHint); - GtkRequisition requisition = new GtkRequisition (); + GtkRequisition* requisition = new GtkRequisition (); gtk_widget_size_request (h, requisition); - OS.gtk_widget_set_size_request (h, reqWidth [0], reqHeight [0]); - width = wHint == SWT.DEFAULT ? requisition.width : wHint; - height = hHint == SWT.DEFAULT ? requisition.height : hHint; + OS.gtk_widget_set_size_request (h, reqWidth, reqHeight); + width = wHint is SWT.DEFAULT ? requisition.width : wHint; + height = hHint is SWT.DEFAULT ? requisition.height : hHint; } return new Point (width, height); } @@ -475,10 +518,10 @@ * topHandle. Note that all calls to gtk_widget_size_allocate() * must be preceded by a call to gtk_widget_size_request(). */ - int /*long*/ topHandle = topHandle (); - GtkRequisition requisition = new GtkRequisition (); + auto topHandle = topHandle (); + GtkRequisition* requisition = new GtkRequisition (); gtk_widget_size_request (topHandle, requisition); - GtkAllocation allocation = new GtkAllocation (); + GtkAllocation* allocation = new GtkAllocation (); allocation.x = OS.GTK_WIDGET_X (topHandle); allocation.y = OS.GTK_WIDGET_Y (topHandle); allocation.width = OS.GTK_WIDGET_WIDTH (topHandle); @@ -505,7 +548,7 @@ */ public Accessible getAccessible () { checkWidget (); - if (accessible == null) { + if (accessible is null) { accessible = Accessible.internal_new_Accessible (this); } return accessible; @@ -526,11 +569,11 @@ */ public Rectangle getBounds () { checkWidget(); - int /*long*/ topHandle = topHandle (); + auto topHandle = topHandle (); int x = OS.GTK_WIDGET_X (topHandle); int y = OS.GTK_WIDGET_Y (topHandle); - int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); - int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); + int width = (state & ZERO_WIDTH) !is 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); + int height = (state & ZERO_HEIGHT) !is 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); return new Rectangle (x, y, width, height); } @@ -554,7 +597,7 @@ */ public void setBounds (Rectangle rect) { checkWidget (); - if (rect == null) error (SWT.ERROR_NULL_ARGUMENT); + if (rect is null) error (SWT.ERROR_NULL_ARGUMENT); setBounds (rect.x, rect.y, Math.max (0, rect.width), Math.max (0, rect.height), true, true); } @@ -586,13 +629,13 @@ setBounds (x, y, Math.max (0, width), Math.max (0, height), true, true); } -void markLayout (boolean changed, boolean all) { +void markLayout (bool changed, bool all) { /* Do nothing */ } void moveHandle (int x, int y) { - int /*long*/ topHandle = topHandle (); - int /*long*/ parentHandle = parent.parentingHandle (); + auto topHandle = topHandle (); + auto parentHandle = parent.parentingHandle (); /* * Feature in GTK. Calling gtk_fixed_move() to move a child causes * the whole parent to redraw. This is a performance problem. The @@ -603,43 +646,43 @@ */ int flags = OS.GTK_WIDGET_FLAGS (parentHandle); OS.GTK_WIDGET_UNSET_FLAGS (parentHandle, OS.GTK_VISIBLE); - OS.gtk_fixed_move (parentHandle, topHandle, x, y); - if ((flags & OS.GTK_VISIBLE) != 0) { + OS.gtk_fixed_move (cast(GtkFixed*)parentHandle, topHandle, x, y); + if ((flags & OS.GTK_VISIBLE) !is 0) { OS.GTK_WIDGET_SET_FLAGS (parentHandle, OS.GTK_VISIBLE); } } void resizeHandle (int width, int height) { - int /*long*/ topHandle = topHandle (); + auto topHandle = topHandle (); OS.gtk_widget_set_size_request (topHandle, width, height); - if (topHandle != handle) OS.gtk_widget_set_size_request (handle, width, height); + if (topHandle !is handle) OS.gtk_widget_set_size_request (handle, width, height); } -int setBounds (int x, int y, int width, int height, boolean move, boolean resize) { - int /*long*/ topHandle = topHandle (); - boolean sameOrigin = true, sameExtent = true; +int setBounds (int x, int y, int width, int height, bool move, bool resize) { + auto topHandle = topHandle (); + bool sameOrigin = true, sameExtent = true; if (move) { int oldX = OS.GTK_WIDGET_X (topHandle); int oldY = OS.GTK_WIDGET_Y (topHandle); - sameOrigin = x == oldX && y == oldY; + sameOrigin = x is oldX && y is oldY; if (!sameOrigin) { - if (enableWindow != 0) { + if (enableWindow !is null) { OS.gdk_window_move (enableWindow, x, y); } moveHandle (x, y); } } if (resize) { - int oldWidth = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); - int oldHeight = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); - sameExtent = width == oldWidth && height == oldHeight; - if (!sameExtent && !(width == 0 && height == 0)) { + int oldWidth = (state & ZERO_WIDTH) !is 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); + int oldHeight = (state & ZERO_HEIGHT) !is 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); + sameExtent = width is oldWidth && height is oldHeight; + if (!sameExtent && !(width is 0 && height is 0)) { int newWidth = Math.max (1, width); int newHeight = Math.max (1, height); - if (redrawWindow != 0) { + if (redrawWindow !is null) { OS.gdk_window_resize (redrawWindow, newWidth, newHeight); } - if (enableWindow != 0) { + if (enableWindow !is null) { OS.gdk_window_resize (enableWindow, newWidth, newHeight); } resizeHandle (newWidth, newHeight); @@ -651,9 +694,9 @@ * all calls to gtk_widget_size_allocate() must be preceded by * a call to gtk_widget_size_request(). */ - GtkRequisition requisition = new GtkRequisition (); + GtkRequisition* requisition = new GtkRequisition (); gtk_widget_size_request (topHandle, requisition); - GtkAllocation allocation = new GtkAllocation (); + GtkAllocation* allocation = new GtkAllocation (); if (move) { allocation.x = x; allocation.y = y; @@ -676,16 +719,16 @@ * when they are resized larger. */ if (!sameExtent) { - state = (width == 0) ? state | ZERO_WIDTH : state & ~ZERO_WIDTH; - state = (height == 0) ? state | ZERO_HEIGHT : state & ~ZERO_HEIGHT; - if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) != 0) { - if (enableWindow != 0) { + state = (width is 0) ? state | ZERO_WIDTH : state & ~ZERO_WIDTH; + state = (height is 0) ? state | ZERO_HEIGHT : state & ~ZERO_HEIGHT; + if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) !is 0) { + if (enableWindow !is null) { OS.gdk_window_hide (enableWindow); } OS.gtk_widget_hide (topHandle); } else { - if ((state & HIDDEN) == 0) { - if (enableWindow != 0) { + if ((state & HIDDEN) is 0) { + if (enableWindow !is null) { OS.gdk_window_show_unraised (enableWindow); } OS.gtk_widget_show (topHandle); @@ -695,7 +738,7 @@ int result = 0; if (move && !sameOrigin) { Control control = findBackgroundControl (); - if (control != null && control.backgroundImage != null) { + if (control !is null && control.backgroundImage !is null) { if (isVisible ()) redrawWidget (0, 0, 0, 0, true, true, true); } sendEvent (SWT.Move); @@ -723,7 +766,7 @@ */ public Point getLocation () { checkWidget(); - int /*long*/ topHandle = topHandle (); + auto topHandle = topHandle (); int x = OS.GTK_WIDGET_X (topHandle); int y = OS.GTK_WIDGET_Y (topHandle); return new Point (x, y); @@ -745,7 +788,7 @@ */ public void setLocation (Point location) { checkWidget (); - if (location == null) error (SWT.ERROR_NULL_ARGUMENT); + if (location is null) error (SWT.ERROR_NULL_ARGUMENT); setBounds (location.x, location.y, 0, 0, true, false); } @@ -784,9 +827,9 @@ */ public Point getSize () { checkWidget(); - int /*long*/ topHandle = topHandle (); - int width = (state & ZERO_WIDTH) != 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); - int height = (state & ZERO_HEIGHT) != 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); + auto topHandle = topHandle (); + int width = (state & ZERO_WIDTH) !is 0 ? 0 : OS.GTK_WIDGET_WIDTH (topHandle); + int height = (state & ZERO_HEIGHT) !is 0 ? 0 : OS.GTK_WIDGET_HEIGHT (topHandle); return new Point (width, height); } @@ -810,26 +853,25 @@ */ public void setSize (Point size) { checkWidget (); - if (size == null) error (SWT.ERROR_NULL_ARGUMENT); + if (size is null) error (SWT.ERROR_NULL_ARGUMENT); setBounds (0, 0, Math.max (0, size.x), Math.max (0, size.y), false, true); } void setRelations () { - int /*long*/ parentHandle = parent.parentingHandle (); - int /*long*/ list = OS.gtk_container_get_children (parentHandle); - if (list == 0) return; + auto parentHandle = parent.parentingHandle (); + auto list = OS.gtk_container_get_children (cast(GtkContainer*)parentHandle); + if (list is null) return; int count = OS.g_list_length (list); if (count > 1) { /* * the receiver is the last item in the list, so its predecessor will * be the second-last item in the list */ - int /*long*/ handle = OS.g_list_nth_data (list, count - 2); - if (handle != 0) { + auto handle = cast(GtkWidget*) OS.g_list_nth_data (list, count - 2); + if (handle !is null) { Widget widget = display.getWidget (handle); - if (widget != null && widget != this) { - if (widget instanceof Control) { - Control sibling = (Control)widget; + if (widget !is null && widget !is this) { + if (auto sibling = cast(Control)widget ) { sibling.addRelation (this); } } @@ -860,10 +902,10 @@ } /* - * Answers a boolean indicating whether a Label that precedes the receiver in + * Answers a bool indicating whether a Label that precedes the receiver in * a layout should be read by screen readers as the recevier's label. */ -boolean isDescribedByLabel () { +bool isDescribedByLabel () { return true; } @@ -889,9 +931,9 @@ */ public void moveAbove (Control control) { checkWidget(); - if (control != null) { + if (control !is null) { if (control.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); - if (parent != control.parent) return; + if (parent !is control.parent) return; } setZOrder (control, true, true); } @@ -918,9 +960,9 @@ */ public void moveBelow (Control control) { checkWidget(); - if (control != null) { + if (control !is null) { if (control.isDisposed ()) error(SWT.ERROR_INVALID_ARGUMENT); - if (parent != control.parent) return; + if (parent !is control.parent) return; } setZOrder (control, false, true); } @@ -935,7 +977,7 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> * - * @see #computeSize(int, int, boolean) + * @see #computeSize(int, int, bool) */ public void pack () { pack (true); @@ -960,9 +1002,9 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> * - * @see #computeSize(int, int, boolean) + * @see #computeSize(int, int, bool) */ -public void pack (boolean changed) { +public void pack (bool changed) { setSize (computeSize (SWT.DEFAULT, SWT.DEFAULT, changed)); } @@ -999,10 +1041,10 @@ */ public Point toControl (int x, int y) { checkWidget (); - int /*long*/ window = eventWindow (); - int [] origin_x = new int [1], origin_y = new int [1]; - OS.gdk_window_get_origin (window, origin_x, origin_y); - return new Point (x - origin_x [0], y - origin_y [0]); + auto window = eventWindow (); + int origin_x, origin_y; + OS.gdk_window_get_origin (window, &origin_x, &origin_y); + return new Point (x - origin_x , y - origin_y ); } /** @@ -1023,7 +1065,7 @@ */ public Point toControl (Point point) { checkWidget (); - if (point == null) error (SWT.ERROR_NULL_ARGUMENT); + if (point is null) error (SWT.ERROR_NULL_ARGUMENT); return toControl (point.x, point.y); } @@ -1045,10 +1087,10 @@ */ public Point toDisplay (int x, int y) { checkWidget(); - int /*long*/ window = eventWindow (); - int [] origin_x = new int [1], origin_y = new int [1]; - OS.gdk_window_get_origin (window, origin_x, origin_y); - return new Point (origin_x [0] + x, origin_y [0] + y); + auto window = eventWindow (); + int origin_x, origin_y; + OS.gdk_window_get_origin (window, &origin_x, &origin_y); + return new Point (origin_x + x, origin_y + y); } /** @@ -1069,7 +1111,7 @@ */ public Point toDisplay (Point point) { checkWidget(); - if (point == null) error (SWT.ERROR_NULL_ARGUMENT); + if (point is null) error (SWT.ERROR_NULL_ARGUMENT); return toDisplay (point.x, point.y); } @@ -1094,7 +1136,7 @@ */ public void addControlListener(ControlListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.Resize,typedListener); addListener (SWT.Move,typedListener); @@ -1123,7 +1165,7 @@ */ public void addDragDetectListener (DragDetectListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.DragDetect,typedListener); } @@ -1149,7 +1191,7 @@ */ public void addFocusListener(FocusListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener(SWT.FocusIn,typedListener); addListener(SWT.FocusOut,typedListener); @@ -1176,7 +1218,7 @@ */ public void addHelpListener (HelpListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.Help, typedListener); } @@ -1213,7 +1255,7 @@ */ public void addKeyListener(KeyListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener(SWT.KeyUp,typedListener); addListener(SWT.KeyDown,typedListener); @@ -1242,7 +1284,7 @@ */ public void addMenuDetectListener (MenuDetectListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.MenuDetect, typedListener); } @@ -1268,7 +1310,7 @@ */ public void addMouseListener(MouseListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener(SWT.MouseDown,typedListener); addListener(SWT.MouseUp,typedListener); @@ -1296,7 +1338,7 @@ */ public void addMouseMoveListener(MouseMoveListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener(SWT.MouseMove,typedListener); } @@ -1322,7 +1364,7 @@ */ public void addMouseTrackListener (MouseTrackListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.MouseEnter,typedListener); addListener (SWT.MouseExit,typedListener); @@ -1352,7 +1394,7 @@ */ public void addMouseWheelListener (MouseWheelListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.MouseWheel, typedListener); } @@ -1378,7 +1420,7 @@ */ public void addPaintListener(PaintListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener(SWT.Paint,typedListener); } @@ -1407,7 +1449,7 @@ */ public void addTraverseListener (TraverseListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.Traverse,typedListener); } @@ -1431,8 +1473,8 @@ */ public void removeControlListener (ControlListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.Move, listener); eventTable.unhook (SWT.Resize, listener); } @@ -1458,8 +1500,8 @@ */ public void removeDragDetectListener(DragDetectListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.DragDetect, listener); } @@ -1482,8 +1524,8 @@ */ public void removeFocusListener(FocusListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.FocusIn, listener); eventTable.unhook (SWT.FocusOut, listener); } @@ -1506,8 +1548,8 @@ */ public void removeHelpListener (HelpListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.Help, listener); } /** @@ -1529,8 +1571,8 @@ */ public void removeKeyListener(KeyListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.KeyUp, listener); eventTable.unhook (SWT.KeyDown, listener); } @@ -1556,8 +1598,8 @@ */ public void removeMenuDetectListener (MenuDetectListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.MenuDetect, listener); } /** @@ -1579,8 +1621,8 @@ */ public void removeMouseListener (MouseListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.MouseDown, listener); eventTable.unhook (SWT.MouseUp, listener); eventTable.unhook (SWT.MouseDoubleClick, listener); @@ -1604,8 +1646,8 @@ */ public void removeMouseMoveListener(MouseMoveListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.MouseMove, listener); } @@ -1628,8 +1670,8 @@ */ public void removeMouseTrackListener(MouseTrackListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.MouseEnter, listener); eventTable.unhook (SWT.MouseExit, listener); eventTable.unhook (SWT.MouseHover, listener); @@ -1656,8 +1698,8 @@ */ public void removeMouseWheelListener (MouseWheelListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.MouseWheel, listener); } @@ -1680,8 +1722,8 @@ */ public void removePaintListener(PaintListener listener) { checkWidget(); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook(SWT.Paint, listener); } @@ -1690,12 +1732,12 @@ */ void removeRelation () { if (!isDescribedByLabel ()) return; /* there will not be any */ - int /*long*/ accessible = OS.gtk_widget_get_accessible (handle); - if (accessible == 0) return; - int /*long*/ set = ATK.atk_object_ref_relation_set (accessible); + auto accessible = OS.gtk_widget_get_accessible (handle); + if (accessible is null) return; + auto set = ATK.atk_object_ref_relation_set (accessible); int count = ATK.atk_relation_set_get_n_relations (set); for (int i = 0; i < count; i++) { - int /*long*/ relation = ATK.atk_relation_set_get_relation (set, 0); + auto relation = ATK.atk_relation_set_get_relation (set, 0); ATK.atk_relation_set_remove (set, relation); } OS.g_object_unref (set); @@ -1720,8 +1762,8 @@ */ public void removeTraverseListener(TraverseListener listener) { checkWidget (); - if (listener == null) error (SWT.ERROR_NULL_ARGUMENT); - if (eventTable == null) return; + if (listener is null) error (SWT.ERROR_NULL_ARGUMENT); + if (eventTable is null) return; eventTable.unhook (SWT.Traverse, listener); } @@ -1761,9 +1803,9 @@ * * @since 3.3 */ -public boolean dragDetect (Event event) { +public bool dragDetect (Event event) { checkWidget (); - if (event == null) error (SWT.ERROR_NULL_ARGUMENT); + if (event is null) error (SWT.ERROR_NULL_ARGUMENT); return dragDetect (event.button, event.count, event.stateMask, event.x, event.y); } @@ -1803,51 +1845,51 @@ * * @since 3.3 */ -public boolean dragDetect (MouseEvent event) { +public bool dragDetect (MouseEvent event) { checkWidget (); - if (event == null) error (SWT.ERROR_NULL_ARGUMENT); + if (event is null) error (SWT.ERROR_NULL_ARGUMENT); return dragDetect (event.button, event.count, event.stateMask, event.x, event.y); } -boolean dragDetect (int button, int count, int stateMask, int x, int y) { - if (button != 1 || count != 1) return false; +bool dragDetect (int button, int count, int stateMask, int x, int y) { + if (button !is 1 || count !is 1) return false; if (!dragDetect (x, y, false, null)) return false; return sendDragEvent (button, stateMask, x, y, true); } -boolean dragDetect (int x, int y, boolean filter, boolean [] consume) { - boolean quit = false, dragging = false; +bool dragDetect (int x, int y, bool filter, bool [] consume) { + bool quit = false, dragging = false; while (!quit) { - int /*long*/ eventPtr = 0; + GdkEvent* eventPtr; while (true) { eventPtr = OS.gdk_event_get (); - if (eventPtr != 0) { + if (eventPtr !is null) { break; } else { try {Thread.sleep(50);} catch (Exception ex) {} } } - switch (OS.GDK_EVENT_TYPE (eventPtr)) { + switch (cast(int)OS.GDK_EVENT_TYPE (eventPtr)) { case OS.GDK_MOTION_NOTIFY: { - GdkEventMotion gdkMotionEvent = new GdkEventMotion (); - OS.memmove (gdkMotionEvent, eventPtr, GdkEventMotion.sizeof); - if ((gdkMotionEvent.state & OS.GDK_BUTTON1_MASK) != 0) { - if (OS.gtk_drag_check_threshold (handle, x, y, (int) gdkMotionEvent.x, (int) gdkMotionEvent.y)) { + GdkEventMotion* gdkMotionEvent = new GdkEventMotion (); + memmove (gdkMotionEvent, eventPtr, GdkEventMotion.sizeof); + if ((gdkMotionEvent.state & OS.GDK_BUTTON1_MASK) !is 0) { + if (OS.gtk_drag_check_threshold (handle, x, y, cast(int) gdkMotionEvent.x, cast(int) gdkMotionEvent.y)) { dragging = true; quit = true; } } else { quit = true; } - int [] newX = new int [1], newY = new int [1]; - OS.gdk_window_get_pointer (gdkMotionEvent.window, newX, newY, null); + int newX, newY; + OS.gdk_window_get_pointer (gdkMotionEvent.window, &newX, &newY, null); break; } case OS.GDK_KEY_PRESS: case OS.GDK_KEY_RELEASE: { - GdkEventKey gdkEvent = new GdkEventKey (); - OS.memmove (gdkEvent, eventPtr, GdkEventKey.sizeof); - if (gdkEvent.keyval == OS.GDK_Escape) quit = true; + GdkEventKey* gdkEvent = new GdkEventKey (); + memmove (gdkEvent, eventPtr, GdkEventKey.sizeof); + if (gdkEvent.keyval is OS.GDK_Escape) quit = true; break; } case OS.GDK_BUTTON_RELEASE: @@ -1866,21 +1908,21 @@ return dragging; } -boolean filterKey (int keyval, int /*long*/ event) { - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { - return OS.gtk_im_context_filter_keypress (imHandle, event); +bool filterKey (int keyval, GdkEventKey* event) { + auto imHandle = imHandle (); + if (imHandle !is null) { + return cast(bool)OS.gtk_im_context_filter_keypress (imHandle, event); } return false; } Control findBackgroundControl () { - if ((state & BACKGROUND) != 0 || backgroundImage != null) return this; - return (state & PARENT_BACKGROUND) != 0 ? parent.findBackgroundControl () : null; + if ((state & BACKGROUND) !is 0 || backgroundImage !is null) return this; + return (state & PARENT_BACKGROUND) !is 0 ? parent.findBackgroundControl () : null; } Menu [] findMenus (Control control) { - if (menu != null && this != control) return new Menu [] {menu}; + if (menu !is null && this !is control) return [menu]; return new Menu [0]; } @@ -1889,21 +1931,21 @@ oldDecorations.fixDecorations (newDecorations, this, menus); } -int /*long*/ fixedMapProc (int /*long*/ widget) { +int /*long*/ fixedMapProc (GtkWidget* widget) { OS.GTK_WIDGET_SET_FLAGS (widget, OS.GTK_MAPPED); - int /*long*/ widgetList = OS.gtk_container_get_children (widget); - if (widgetList != 0) { - int /*long*/ widgets = widgetList; - while (widgets != 0) { - int /*long*/ child = OS.g_list_data (widgets); + auto widgetList = OS.gtk_container_get_children (cast(GtkContainer*)widget); + if (widgetList !is null) { + auto widgets = widgetList; + while (widgets !is null) { + auto child = cast(GtkWidget*)OS.g_list_data (widgets); if (OS.GTK_WIDGET_VISIBLE (child) && OS.gtk_widget_get_child_visible (child) && !OS.GTK_WIDGET_MAPPED (child)) { OS.gtk_widget_map (child); } - widgets = OS.g_list_next (widgets); + widgets = cast(GList*)OS.g_list_next (widgets); } OS.g_list_free (widgetList); } - if ((OS.GTK_WIDGET_FLAGS (widget) & OS.GTK_NO_WINDOW) == 0) { + if ((OS.GTK_WIDGET_FLAGS (widget) & OS.GTK_NO_WINDOW) is 0) { OS.gdk_window_show_unraised (OS.GTK_WIDGET_WINDOW (widget)); } return 0; @@ -1922,9 +1964,9 @@ * * @see #setFocus */ -public boolean forceFocus () { +public bool forceFocus () { checkWidget(); - if (display.focusEvent == SWT.FocusOut) return false; + if (display.focusEvent is SWT.FocusOut) return false; Shell shell = getShell (); shell.setSavedFocus (this); if (!isEnabled () || !isVisible ()) return false; @@ -1932,18 +1974,18 @@ return forceFocus (focusHandle ()); } -boolean forceFocus (int /*long*/ focusHandle) { +bool forceFocus (GtkWidget* focusHandle) { /* When the control is zero sized it must be realized */ OS.gtk_widget_realize (focusHandle); OS.gtk_widget_grab_focus (focusHandle); Shell shell = getShell (); - int /*long*/ shellHandle = shell.shellHandle; - int /*long*/ handle = OS.gtk_window_get_focus (shellHandle); - while (handle != 0) { - if (handle == focusHandle) return true; + auto shellHandle = shell.shellHandle; + auto handle = OS.gtk_window_get_focus (cast(GtkWindow*)shellHandle); + while (handle !is null) { + if (handle is focusHandle) return true; Widget widget = display.getWidget (handle); - if (widget != null && widget instanceof Control) { - return widget == this; + if (widget !is null && (null !is cast(Control)widget)) { + return widget is this; } handle = OS.gtk_widget_get_parent (handle); } @@ -1963,11 +2005,11 @@ public Color getBackground () { checkWidget(); Control control = findBackgroundControl (); - if (control == null) control = this; + if (control is null) control = this; return Color.gtk_new (display, control.getBackgroundColor ()); } -GdkColor getBackgroundColor () { +GdkColor* getBackgroundColor () { return getBgColor (); } @@ -1986,22 +2028,22 @@ public Image getBackgroundImage () { checkWidget (); Control control = findBackgroundControl (); - if (control == null) control = this; + if (control is null) control = this; return control.backgroundImage; } -GdkColor getBgColor () { - int /*long*/ fontHandle = fontHandle (); +GdkColor* getBgColor () { + auto fontHandle = fontHandle (); OS.gtk_widget_realize (fontHandle); - GdkColor color = new GdkColor (); + GdkColor* color = new GdkColor (); OS.gtk_style_get_bg (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color); return color; } -GdkColor getBaseColor () { - int /*long*/ fontHandle = fontHandle (); +GdkColor* getBaseColor () { + auto fontHandle = fontHandle (); OS.gtk_widget_realize (fontHandle); - GdkColor color = new GdkColor (); + GdkColor* color = new GdkColor (); OS.gtk_style_get_base (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color); return color; } @@ -2053,9 +2095,9 @@ * * @since 3.3 */ -public boolean getDragDetect () { +public bool getDragDetect () { checkWidget (); - return (state & DRAG_DETECT) != 0; + return (state & DRAG_DETECT) !is 0; } /** @@ -2073,9 +2115,9 @@ * * @see #isEnabled */ -public boolean getEnabled () { +public bool getEnabled () { checkWidget (); - return (state & DISABLED) == 0; + return (state & DISABLED) is 0; } /** @@ -2090,12 +2132,12 @@ */ public Font getFont () { checkWidget(); - if (font != null) return font; + if (font !is null) return font; return Font.gtk_new (display, defaultFont ()); } -int /*long*/ getFontDescription () { - int /*long*/ fontHandle = fontHandle (); +PangoFontDescription* getFontDescription () { + auto fontHandle = fontHandle (); OS.gtk_widget_realize (fontHandle); return OS.gtk_style_get_font_desc (OS.gtk_widget_get_style (fontHandle)); } @@ -2115,14 +2157,14 @@ return Color.gtk_new (display, getForegroundColor ()); } -GdkColor getForegroundColor () { +GdkColor* getForegroundColor () { return getFgColor (); } -GdkColor getFgColor () { - int /*long*/ fontHandle = fontHandle (); +GdkColor* getFgColor () { + auto fontHandle = fontHandle (); OS.gtk_widget_realize (fontHandle); - GdkColor color = new GdkColor (); + GdkColor* color = new GdkColor (); OS.gtk_style_get_fg (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color); return color; } @@ -2131,10 +2173,10 @@ return new Point (0, 0); } -GdkColor getTextColor () { - int /*long*/ fontHandle = fontHandle (); +GdkColor* getTextColor () { + auto fontHandle = fontHandle (); OS.gtk_widget_realize (fontHandle); - GdkColor color = new GdkColor (); + GdkColor* color = new GdkColor (); OS.gtk_style_get_text (OS.gtk_widget_get_style (fontHandle), OS.GTK_STATE_NORMAL, color); return color; } @@ -2181,23 +2223,23 @@ * * @since 3.0 */ -public Monitor getMonitor () { +public dwt.widgets.Monitor.Monitor getMonitor () { checkWidget(); - Monitor monitor = null; - int /*long*/ screen = OS.gdk_screen_get_default (); - if (screen != 0) { + dwt.widgets.Monitor.Monitor monitor = null; + auto screen = OS.gdk_screen_get_default (); + if (screen !is null) { int monitorNumber = OS.gdk_screen_get_monitor_at_window (screen, paintWindow ()); - GdkRectangle dest = new GdkRectangle (); + GdkRectangle* dest = new GdkRectangle (); OS.gdk_screen_get_monitor_geometry (screen, monitorNumber, dest); - monitor = new Monitor (); + monitor = new dwt.widgets.Monitor.Monitor (); monitor.handle = monitorNumber; monitor.x = dest.x; monitor.y = dest.y; monitor.width = dest.width; monitor.height = dest.height; Rectangle workArea = null; - if (monitorNumber == 0) workArea = display.getWorkArea (); - if (workArea != null) { + if (monitorNumber is 0) workArea = display.getWorkArea (); + if (workArea !is null) { monitor.clientX = workArea.x; monitor.clientY = workArea.y; monitor.clientWidth = workArea.width; @@ -2235,13 +2277,13 @@ int count = 0; Shell shell = getShell (); Control control = this; - while (control != shell) { + while (control !is shell) { count++; control = control.parent; } control = this; Control [] result = new Control [count]; - while (control != shell) { + while (control !is shell) { result [--count] = control; control = control.parent; } @@ -2283,7 +2325,7 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public String getToolTipText () { +public char[] getToolTipText () { checkWidget(); return toolTipText; } @@ -2304,15 +2346,15 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean getVisible () { +public bool getVisible () { checkWidget(); - return (state & HIDDEN) == 0; + return (state & HIDDEN) is 0; } -int /*long*/ gtk_button_press_event (int /*long*/ widget, int /*long*/ event) { - GdkEventButton gdkEvent = new GdkEventButton (); - OS.memmove (gdkEvent, event, GdkEventButton.sizeof); - if (gdkEvent.type == OS.GDK_3BUTTON_PRESS) return 0; +int /*long*/ gtk_button_press_event (GtkWidget* widget, GdkEventButton* event) { + GdkEventButton* gdkEvent = new GdkEventButton (); + memmove (gdkEvent, event, GdkEventButton.sizeof); + if (gdkEvent.type is OS.GDK_3BUTTON_PRESS) return 0; /* * When a shell is created with SWT.ON_TOP and SWT.NO_FOCUS, * do not activate the shell when the user clicks on the @@ -2320,24 +2362,24 @@ * shell that does not take focus. */ Shell shell = _getShell (); - if (((shell.style & SWT.ON_TOP) != 0) && (((shell.style & SWT.NO_FOCUS) == 0) || ((style & SWT.NO_FOCUS) == 0))) { + if (((shell.style & SWT.ON_TOP) !is 0) && (((shell.style & SWT.NO_FOCUS) is 0) || ((style & SWT.NO_FOCUS) is 0))) { shell.forceActive(); } int /*long*/ result = 0; - if (gdkEvent.type == OS.GDK_BUTTON_PRESS) { + if (gdkEvent.type is OS.GDK_BUTTON_PRESS) { display.clickCount = 1; - int /*long*/ nextEvent = OS.gdk_event_peek (); - if (nextEvent != 0) { + auto nextEvent = OS.gdk_event_peek (); + if (nextEvent !is null) { int eventType = OS.GDK_EVENT_TYPE (nextEvent); - if (eventType == OS.GDK_2BUTTON_PRESS) display.clickCount = 2; - if (eventType == OS.GDK_3BUTTON_PRESS) display.clickCount = 3; + if (eventType is OS.GDK_2BUTTON_PRESS) display.clickCount = 2; + if (eventType is OS.GDK_3BUTTON_PRESS) display.clickCount = 3; OS.gdk_event_free (nextEvent); } - boolean dragging = false; - if ((state & DRAG_DETECT) != 0 && hooks (SWT.DragDetect)) { - if (gdkEvent.button == 1) { - boolean [] consume = new boolean [1]; - if (dragDetect ((int) gdkEvent.x, (int) gdkEvent.y, true, consume)) { + bool dragging = false; + if ((state & DRAG_DETECT) !is 0 && hooks (SWT.DragDetect)) { + if (gdkEvent.button is 1) { + bool [] consume = new bool [1]; + if (dragDetect (cast(int) gdkEvent.x, cast(int) gdkEvent.y, true, consume)) { dragging = true; if (consume [0]) result = 1; } @@ -2349,7 +2391,7 @@ } if (isDisposed ()) return 1; if (dragging) { - sendDragEvent (gdkEvent.button, gdkEvent.state, (int) gdkEvent.x, (int) gdkEvent.y, false); + sendDragEvent (gdkEvent.button, gdkEvent.state, cast(int) gdkEvent.x, cast(int) gdkEvent.y, false); if (isDisposed ()) return 1; } /* @@ -2357,9 +2399,9 @@ * that have default operating system menus in order to stop the * operating system from displaying the menu if necessary. */ - if ((state & MENU) != 0) { - if (gdkEvent.button == 3) { - if (showMenu ((int)gdkEvent.x_root, (int)gdkEvent.y_root)) { + if ((state & MENU) !is 0) { + if (gdkEvent.button is 3) { + if (showMenu (cast(int)gdkEvent.x_root, cast(int)gdkEvent.y_root)) { result = 1; } } @@ -2373,9 +2415,9 @@ return result; } -int /*long*/ gtk_button_release_event (int /*long*/ widget, int /*long*/ event) { - GdkEventButton gdkEvent = new GdkEventButton (); - OS.memmove (gdkEvent, event, GdkEventButton.sizeof); +int /*long*/ gtk_button_release_event (GtkWidget* widget, GdkEventButton* event) { + GdkEventButton* gdkEvent = new GdkEventButton (); + memmove (gdkEvent, event, GdkEventButton.sizeof); /* * Feature in GTK. When button 4, 5, 6, or 7 is released, GTK * does not deliver a corresponding GTK event. Button 6 and 7 @@ -2392,24 +2434,20 @@ return sendMouseEvent (SWT.MouseUp, button, display.clickCount, 0, false, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state) ? 0 : 1; } -int /*long*/ gtk_commit (int /*long*/ imcontext, int /*long*/ text) { - if (text == 0) return 0; - int length = OS.strlen (text); - if (length == 0) return 0; - byte [] buffer = new byte [length]; - OS.memmove (buffer, text, length); - char [] chars = Converter.mbcsToWcs (null, buffer); +int /*long*/ gtk_commit (GtkIMContext* imcontext, char* text) { + char [] chars = fromUtf8z( text ); + if (chars.length is 0) return 0; sendIMKeyEvent (SWT.KeyDown, null, chars); return 0; } -int /*long*/ gtk_enter_notify_event (int /*long*/ widget, int /*long*/ event) { - if (display.currentControl == this) return 0; - GdkEventCrossing gdkEvent = new GdkEventCrossing (); - OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); - if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL && gdkEvent.mode != OS.GDK_CROSSING_UNGRAB) return 0; - if ((gdkEvent.state & (OS.GDK_BUTTON1_MASK | OS.GDK_BUTTON2_MASK | OS.GDK_BUTTON3_MASK)) != 0) return 0; - if (display.currentControl != null && !display.currentControl.isDisposed ()) { +int /*long*/ gtk_enter_notify_event (GtkWidget* widget, GdkEventCrossing* event) { + if (display.currentControl is this) return 0; + GdkEventCrossing* gdkEvent = new GdkEventCrossing (); + memmove (gdkEvent, event, GdkEventCrossing.sizeof); + if (gdkEvent.mode !is OS.GDK_CROSSING_NORMAL && gdkEvent.mode !is OS.GDK_CROSSING_UNGRAB) return 0; + if ((gdkEvent.state & (OS.GDK_BUTTON1_MASK | OS.GDK_BUTTON2_MASK | OS.GDK_BUTTON3_MASK)) !is 0) return 0; + if (display.currentControl !is null && !display.currentControl.isDisposed ()) { display.removeMouseHoverTimeout (display.currentControl.handle); display.currentControl.sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state); } @@ -2420,30 +2458,30 @@ return 0; } -int /*long*/ gtk_event_after (int /*long*/ widget, int /*long*/ gdkEvent) { - GdkEvent event = new GdkEvent (); - OS.memmove (event, gdkEvent, GdkEvent.sizeof); - switch (event.type) { +int /*long*/ gtk_event_after (GtkWidget* widget, GdkEvent* gdkEvent) { + GdkEvent* event = new GdkEvent (); + memmove (event, gdkEvent, GdkEvent.sizeof); + switch (cast(int)event.type) { case OS.GDK_BUTTON_PRESS: { - if (widget != eventHandle ()) break; + if (widget !is eventHandle ()) break; /* * Pop up the context menu in the event_after signal to allow * the widget to process the button press. This allows widgets * such as GtkTreeView to select items before a menu is shown. */ - if ((state & MENU) == 0) { - GdkEventButton gdkEventButton = new GdkEventButton (); - OS.memmove (gdkEventButton, gdkEvent, GdkEventButton.sizeof); - if (gdkEventButton.button == 3) { - showMenu ((int) gdkEventButton.x_root, (int) gdkEventButton.y_root); + if ((state & MENU) is 0) { + GdkEventButton* gdkEventButton = new GdkEventButton (); + memmove (gdkEventButton, gdkEvent, GdkEventButton.sizeof); + if (gdkEventButton.button is 3) { + showMenu (cast(int) gdkEventButton.x_root, cast(int) gdkEventButton.y_root); } } break; } case OS.GDK_FOCUS_CHANGE: { - if (widget != focusHandle ()) break; - GdkEventFocus gdkEventFocus = new GdkEventFocus (); - OS.memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof); + if (widget !is focusHandle ()) break; + GdkEventFocus* gdkEventFocus = new GdkEventFocus (); + memmove (gdkEventFocus, gdkEvent, GdkEventFocus.sizeof); /* * Feature in GTK. The GTK combo box popup under some window managers @@ -2453,40 +2491,40 @@ * and ignore the focus event when the menu is both shown and hidden. */ Display display = this.display; - if (gdkEventFocus.in != 0) { + if (gdkEventFocus.in_ !is 0) { if (display.ignoreFocus) { display.ignoreFocus = false; break; } } else { display.ignoreFocus = false; - int /*long*/ grabHandle = OS.gtk_grab_get_current (); - if (grabHandle != 0) { - if (OS.G_OBJECT_TYPE (grabHandle) == OS.GTK_TYPE_MENU ()) { + auto grabHandle = OS.gtk_grab_get_current (); + if (grabHandle !is null) { + if (OS.G_OBJECT_TYPE ( cast(GObject*)grabHandle) is OS.GTK_TYPE_MENU ()) { display.ignoreFocus = true; break; } } } - sendFocusEvent (gdkEventFocus.in != 0 ? SWT.FocusIn : SWT.FocusOut); + sendFocusEvent (gdkEventFocus.in_ !is 0 ? SWT.FocusIn : SWT.FocusOut); break; } } return 0; } -int /*long*/ gtk_expose_event (int /*long*/ widget, int /*long*/ eventPtr) { - if ((state & OBSCURED) != 0) return 0; +int /*long*/ gtk_expose_event (GtkWidget* widget, GdkEventExpose* eventPtr) { + if ((state & OBSCURED) !is 0) return 0; if (!hooks (SWT.Paint) && !filters (SWT.Paint)) return 0; - GdkEventExpose gdkEvent = new GdkEventExpose (); - OS.memmove(gdkEvent, eventPtr, GdkEventExpose.sizeof); + GdkEventExpose* gdkEvent = new GdkEventExpose (); + memmove(gdkEvent, eventPtr, GdkEventExpose.sizeof); Event event = new Event (); event.count = gdkEvent.count; - event.x = gdkEvent.area_x; - event.y = gdkEvent.area_y; - event.width = gdkEvent.area_width; - event.height = gdkEvent.area_height; + event.x = gdkEvent.area.x; + event.y = gdkEvent.area.y; + event.width = gdkEvent.area.width; + event.height = gdkEvent.area.height; GCData data = new GCData (); data.damageRgn = gdkEvent.region; GC gc = event.gc = GC.gtk_new (this, data); @@ -2497,35 +2535,35 @@ return 0; } -int /*long*/ gtk_focus (int /*long*/ widget, int /*long*/ directionType) { +int /*long*/ gtk_focus (GtkWidget* widget, int /*long*/ directionType) { /* Stop GTK traversal for every widget */ return 1; } -int /*long*/ gtk_focus_in_event (int /*long*/ widget, int /*long*/ event) { +int /*long*/ gtk_focus_in_event (GtkWidget* widget, int /*long*/ event) { // widget could be disposed at this point - if (handle != 0) { + if (handle !is null) { Control oldControl = display.imControl; - if (oldControl != this) { - if (oldControl != null && !oldControl.isDisposed ()) { - int /*long*/ oldIMHandle = oldControl.imHandle (); - if (oldIMHandle != 0) OS.gtk_im_context_reset (oldIMHandle); + if (oldControl !is this) { + if (oldControl !is null && !oldControl.isDisposed ()) { + auto oldIMHandle = oldControl.imHandle (); + if (oldIMHandle !is null) OS.gtk_im_context_reset (oldIMHandle); } } if (hooks (SWT.KeyDown) || hooks (SWT.KeyUp)) { - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) OS.gtk_im_context_focus_in (imHandle); + auto imHandle = imHandle (); + if (imHandle !is null) OS.gtk_im_context_focus_in (imHandle); } } return 0; } -int /*long*/ gtk_focus_out_event (int /*long*/ widget, int /*long*/ event) { +int /*long*/ gtk_focus_out_event (GtkWidget* widget, int /*long*/ event) { // widget could be disposed at this point - if (handle != 0) { + if (handle !is null) { if (hooks (SWT.KeyDown) || hooks (SWT.KeyUp)) { - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { + auto imHandle = imHandle (); + if (imHandle !is null) { OS.gtk_im_context_focus_out (imHandle); } } @@ -2533,10 +2571,10 @@ return 0; } -int /*long*/ gtk_key_press_event (int /*long*/ widget, int /*long*/ event) { +int /*long*/ gtk_key_press_event (GtkWidget* widget, GdkEventKey* event) { if (!hasFocus ()) return 0; - GdkEventKey gdkEvent = new GdkEventKey (); - OS.memmove (gdkEvent, event, GdkEventKey.sizeof); + GdkEventKey* gdkEvent = new GdkEventKey (); + memmove (gdkEvent, event, GdkEventKey.sizeof); if (translateMnemonic (gdkEvent.keyval, gdkEvent)) return 1; // widget could be disposed at this point @@ -2552,40 +2590,40 @@ return super.gtk_key_press_event (widget, event); } -int /*long*/ gtk_key_release_event (int /*long*/ widget, int /*long*/ event) { +int /*long*/ gtk_key_release_event (GtkWidget* widget, GdkEventKey* event) { if (!hasFocus ()) return 0; - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { + auto imHandle = imHandle (); + if (imHandle !is null) { if (OS.gtk_im_context_filter_keypress (imHandle, event)) return 1; } return super.gtk_key_release_event (widget, event); } -int /*long*/ gtk_leave_notify_event (int /*long*/ widget, int /*long*/ event) { - if (display.currentControl != this) return 0; +int /*long*/ gtk_leave_notify_event (GtkWidget* widget, GdkEventCrossing* event) { + if (display.currentControl !is this) return 0; display.removeMouseHoverTimeout (handle); int result = 0; - if (sendLeaveNotify () || display.getCursorControl () == null) { - GdkEventCrossing gdkEvent = new GdkEventCrossing (); - OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); - if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL && gdkEvent.mode != OS.GDK_CROSSING_UNGRAB) return 0; - if ((gdkEvent.state & (OS.GDK_BUTTON1_MASK | OS.GDK_BUTTON2_MASK | OS.GDK_BUTTON3_MASK)) != 0) return 0; + if (sendLeaveNotify () || display.getCursorControl () is null) { + GdkEventCrossing* gdkEvent = new GdkEventCrossing (); + memmove (gdkEvent, event, GdkEventCrossing.sizeof); + if (gdkEvent.mode !is OS.GDK_CROSSING_NORMAL && gdkEvent.mode !is OS.GDK_CROSSING_UNGRAB) return 0; + if ((gdkEvent.state & (OS.GDK_BUTTON1_MASK | OS.GDK_BUTTON2_MASK | OS.GDK_BUTTON3_MASK)) !is 0) return 0; result = sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state) ? 0 : 1; display.currentControl = null; } return result; } -int /*long*/ gtk_mnemonic_activate (int /*long*/ widget, int /*long*/ arg1) { +int /*long*/ gtk_mnemonic_activate (GtkWidget* widget, int /*long*/ arg1) { int result = 0; - int /*long*/ eventPtr = OS.gtk_get_current_event (); - if (eventPtr != 0) { - GdkEventKey keyEvent = new GdkEventKey (); - OS.memmove (keyEvent, eventPtr, GdkEventKey.sizeof); - if (keyEvent.type == OS.GDK_KEY_PRESS) { + auto eventPtr = OS.gtk_get_current_event (); + if (eventPtr !is null) { + GdkEventKey* keyEvent = new GdkEventKey (); + memmove (keyEvent, eventPtr, GdkEventKey.sizeof); + if (keyEvent.type is OS.GDK_KEY_PRESS) { Control focusControl = display.getFocusControl (); - int /*long*/ focusHandle = focusControl != null ? focusControl.focusHandle () : 0; - if (focusHandle != 0) { + auto focusHandle = focusControl !is null ? focusControl.focusHandle () : null; + if (focusHandle !is null) { display.mnemonicControl = this; OS.gtk_widget_event (focusHandle, eventPtr); display.mnemonicControl = null; @@ -2597,31 +2635,32 @@ return result; } -int /*long*/ gtk_motion_notify_event (int /*long*/ widget, int /*long*/ event) { - GdkEventMotion gdkEvent = new GdkEventMotion (); - OS.memmove (gdkEvent, event, GdkEventMotion.sizeof); - if (this == display.currentControl && (hooks (SWT.MouseHover) || filters (SWT.MouseHover))) { +int /*long*/ gtk_motion_notify_event (GtkWidget* widget, GdkEventMotion* event) { + GdkEventMotion* gdkEvent = new GdkEventMotion (); + memmove (gdkEvent, event, GdkEventMotion.sizeof); + if (this is display.currentControl && (hooks (SWT.MouseHover) || filters (SWT.MouseHover))) { display.addMouseHoverTimeout (handle); } double x = gdkEvent.x_root, y = gdkEvent.y_root; int state = gdkEvent.state; - if (gdkEvent.is_hint != 0) { - int [] pointer_x = new int [1], pointer_y = new int [1], mask = new int [1]; - int /*long*/ window = eventWindow (); - OS.gdk_window_get_pointer (window, pointer_x, pointer_y, mask); - x = pointer_x [0]; - y = pointer_y [0]; - state = mask [0]; + if (gdkEvent.is_hint !is 0) { + int pointer_x, pointer_y; + GdkModifierType mask; + auto window = eventWindow (); + OS.gdk_window_get_pointer (window, &pointer_x, &pointer_y, &mask); + x = pointer_x; + y = pointer_y; + state = mask; } - int result = sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x, y, gdkEvent.is_hint != 0, state) ? 0 : 1; + int result = sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x, y, gdkEvent.is_hint !is 0, state) ? 0 : 1; return result; } -int /*long*/ gtk_popup_menu (int /*long*/ widget) { +int /*long*/ gtk_popup_menu (GtkWidget* widget) { if (!hasFocus()) return 0; - int [] x = new int [1], y = new int [1]; - OS.gdk_window_get_pointer (0, x, y, null); - return showMenu (x [0], y [0]) ? 1 : 0; + int x, y ; + OS.gdk_window_get_pointer (null, &x, &y, null); + return showMenu (x, y) ? 1 : 0; } int /*long*/ gtk_preedit_changed (int /*long*/ imcontext) { @@ -2629,23 +2668,23 @@ return 0; } -int /*long*/ gtk_realize (int /*long*/ widget) { - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { - int /*long*/ window = OS.GTK_WIDGET_WINDOW (paintHandle ()); +int /*long*/ gtk_realize (GtkWidget* widget) { + auto imHandle = imHandle (); + if (imHandle !is null) { + auto window = OS.GTK_WIDGET_WINDOW (paintHandle ()); OS.gtk_im_context_set_client_window (imHandle, window); } - if (backgroundImage != null) { - int /*long*/ window = OS.GTK_WIDGET_WINDOW (paintHandle ()); - if (window != 0) OS.gdk_window_set_back_pixmap (window, backgroundImage.pixmap, false); + if (backgroundImage !is null) { + auto window = OS.GTK_WIDGET_WINDOW (paintHandle ()); + if (window !is null) OS.gdk_window_set_back_pixmap (window, cast(GdkPixmap*)backgroundImage.pixmap, false); } return 0; } -int /*long*/ gtk_scroll_event (int /*long*/ widget, int /*long*/ eventPtr) { - GdkEventScroll gdkEvent = new GdkEventScroll (); - OS.memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof); - switch (gdkEvent.direction) { +int /*long*/ gtk_scroll_event (GtkWidget* widget, GdkEventScroll* eventPtr) { + GdkEventScroll* gdkEvent = new GdkEventScroll (); + memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof); + switch (cast(int)gdkEvent.direction) { case OS.GDK_SCROLL_UP: return sendMouseEvent (SWT.MouseWheel, 0, 3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state) ? 0 : 1; case OS.GDK_SCROLL_DOWN: @@ -2658,39 +2697,39 @@ return 0; } -int /*long*/ gtk_show_help (int /*long*/ widget, int /*long*/ helpType) { +int /*long*/ gtk_show_help (GtkWidget* widget, int /*long*/ helpType) { if (!hasFocus ()) return 0; return sendHelpEvent (helpType) ? 1 : 0; } -int /*long*/ gtk_style_set (int /*long*/ widget, int /*long*/ previousStyle) { - if (backgroundImage != null) { +int /*long*/ gtk_style_set (GtkWidget* widget, int /*long*/ previousStyle) { + if (backgroundImage !is null) { setBackgroundPixmap (backgroundImage.pixmap); } return 0; } -int /*long*/ gtk_unrealize (int /*long*/ widget) { - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) OS.gtk_im_context_set_client_window (imHandle, 0); +int /*long*/ gtk_unrealize (GtkWidget* widget) { + auto imHandle = imHandle (); + if (imHandle !is null) OS.gtk_im_context_set_client_window (imHandle, null); return 0; } -int /*long*/ gtk_visibility_notify_event (int /*long*/ widget, int /*long*/ event) { - GdkEventVisibility gdkEvent = new GdkEventVisibility (); - OS.memmove (gdkEvent, event, GdkEventVisibility.sizeof); - int /*long*/ paintWindow = paintWindow(); - int /*long*/ window = gdkEvent.window; - if (window == paintWindow) { - if (gdkEvent.state == OS.GDK_VISIBILITY_FULLY_OBSCURED) { +int /*long*/ gtk_visibility_notify_event (GtkWidget* widget, GdkEventVisibility* event) { + GdkEventVisibility* gdkEvent = new GdkEventVisibility (); + memmove (gdkEvent, event, GdkEventVisibility.sizeof); + auto paintWindow = paintWindow(); + auto window = gdkEvent.window; + if (window is paintWindow) { + if (gdkEvent.state is OS.GDK_VISIBILITY_FULLY_OBSCURED) { state |= OBSCURED; } else { - if ((state & OBSCURED) != 0) { - int [] width = new int [1], height = new int [1]; - OS.gdk_drawable_get_size (window, width, height); - GdkRectangle rect = new GdkRectangle (); - rect.width = width [0]; - rect.height = height [0]; + if ((state & OBSCURED) !is 0) { + int width, height; + OS.gdk_drawable_get_size (cast(GdkDrawable*)window, &width, &height); + GdkRectangle* rect = new GdkRectangle (); + rect.width = width; + rect.height = height; OS.gdk_window_invalidate_rect (window, rect, false); } state &= ~OBSCURED; @@ -2699,7 +2738,7 @@ return 0; } -void gtk_widget_size_request (int /*long*/ widget, GtkRequisition requisition) { +void gtk_widget_size_request (GtkWidget* widget, GtkRequisition* requisition) { OS.gtk_widget_size_request (widget, requisition); } @@ -2716,30 +2755,30 @@ * @param data the platform specific GC data * @return the platform specific GC handle */ -public int /*long*/ internal_new_GC (GCData data) { +public GdkGC* internal_new_GC (GCData data) { checkWidget (); - int /*long*/ window = paintWindow (); - if (window == 0) SWT.error (SWT.ERROR_NO_HANDLES); - int /*long*/ gdkGC = OS.gdk_gc_new (window); - if (gdkGC == 0) error (SWT.ERROR_NO_HANDLES); - if (data != null) { + auto window = paintWindow (); + if (window is null) SWT.error (SWT.ERROR_NO_HANDLES); + auto gdkGC = OS.gdk_gc_new (cast(GdkDrawable*)window); + if (gdkGC is null) error (SWT.ERROR_NO_HANDLES); + if (data !is null) { int mask = SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT; - if ((data.style & mask) == 0) { + if ((data.style & mask) is 0) { data.style |= style & (mask | SWT.MIRRORED); } - data.drawable = window; + data.drawable = cast(GdkDrawable*)window; data.device = display; data.foreground = getForegroundColor (); Control control = findBackgroundControl (); - if (control == null) control = this; + if (control is null) control = this; data.background = control.getBackgroundColor (); - data.font = font != null ? font.handle : defaultFont (); + data.font = font !is null ? font.handle : defaultFont (); } return gdkGC; } -int /*long*/ imHandle () { - return 0; +GtkIMContext* imHandle () { + return null; } /** @@ -2755,7 +2794,7 @@ * @param hDC the platform specific GC handle * @param data the platform specific GC data */ -public void internal_dispose_GC (int /*long*/ gdkGC, GCData data) { +public void internal_dispose_GC (GdkGC* gdkGC, GCData data) { checkWidget (); OS.g_object_unref (gdkGC); } @@ -2771,46 +2810,46 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean isReparentable () { +public bool isReparentable () { checkWidget(); return true; } -boolean isShowing () { +bool isShowing () { /* * This is not complete. Need to check if the * widget is obscurred by a parent or sibling. */ if (!isVisible ()) return false; Control control = this; - while (control != null) { + while (control !is null) { Point size = control.getSize (); - if (size.x == 0 || size.y == 0) { + if (size.x is 0 || size.y is 0) { return false; } control = control.parent; } return true; } -boolean isTabGroup () { +bool isTabGroup () { Control [] tabList = parent._getTabList (); - if (tabList != null) { + if (tabList !is null) { for (int i=0; i<tabList.length; i++) { - if (tabList [i] == this) return true; + if (tabList [i] is this) return true; } } int code = traversalCode (0, null); - if ((code & (SWT.TRAVERSE_ARROW_PREVIOUS | SWT.TRAVERSE_ARROW_NEXT)) != 0) return false; - return (code & (SWT.TRAVERSE_TAB_PREVIOUS | SWT.TRAVERSE_TAB_NEXT)) != 0; + if ((code & (SWT.TRAVERSE_ARROW_PREVIOUS | SWT.TRAVERSE_ARROW_NEXT)) !is 0) return false; + return (code & (SWT.TRAVERSE_TAB_PREVIOUS | SWT.TRAVERSE_TAB_NEXT)) !is 0; } -boolean isTabItem () { +bool isTabItem () { Control [] tabList = parent._getTabList (); - if (tabList != null) { + if (tabList !is null) { for (int i=0; i<tabList.length; i++) { - if (tabList [i] == this) return false; + if (tabList [i] is this) return false; } } int code = traversalCode (0, null); - return (code & (SWT.TRAVERSE_ARROW_PREVIOUS | SWT.TRAVERSE_ARROW_NEXT)) != 0; + return (code & (SWT.TRAVERSE_ARROW_PREVIOUS | SWT.TRAVERSE_ARROW_NEXT)) !is 0; } /** @@ -2829,16 +2868,16 @@ * * @see #getEnabled */ -public boolean isEnabled () { +public bool isEnabled () { checkWidget (); return getEnabled () && parent.isEnabled (); } -boolean isFocusAncestor (Control control) { - while (control != null && control != this && !(control instanceof Shell)) { +bool isFocusAncestor (Control control) { + while (control !is null && control !is this && !( null !is cast(Shell)control )) { control = control.parent; } - return control == this; + return control is this; } /** @@ -2852,11 +2891,11 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean isFocusControl () { +public bool isFocusControl () { checkWidget(); Control focusControl = display.focusControl; - if (focusControl != null && !focusControl.isDisposed ()) { - return this == focusControl; + if (focusControl !is null && !focusControl.isDisposed ()) { + return this is focusControl; } return hasFocus (); } @@ -2875,7 +2914,7 @@ * * @see #getVisible */ -public boolean isVisible () { +public bool isVisible () { checkWidget(); return getVisible () && parent.isVisible (); } @@ -2884,19 +2923,19 @@ return parent.menuShell (); } -boolean mnemonicHit (char key) { +bool mnemonicHit (char key) { return false; } -boolean mnemonicMatch (char key) { +bool mnemonicMatch (char key) { return false; } void register () { super.register (); - if (fixedHandle != 0) display.addWidget (fixedHandle, this); - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) display.addWidget (imHandle, this); + if (fixedHandle !is null) display.addWidget (fixedHandle, this); + auto imHandle = imHandle (); + if (imHandle !is null) display.addWidget (cast(GtkWidget*)imHandle, this); } /** @@ -2923,7 +2962,7 @@ redraw (false); } -void redraw (boolean all) { +void redraw (bool all) { // checkWidget(); if (!OS.GTK_WIDGET_VISIBLE (topHandle ())) return; redrawWidget (0, 0, 0, 0, true, all, false); @@ -2959,7 +2998,7 @@ * @see SWT#NO_MERGE_PAINTS * @see SWT#DOUBLE_BUFFERED */ -public void redraw (int x, int y, int width, int height, boolean all) { +public void redraw (int x, int y, int width, int height, bool all) { checkWidget(); if (!OS.GTK_WIDGET_VISIBLE (topHandle ())) return; redrawWidget (x, y, width, height, false, all, false); @@ -2968,15 +3007,15 @@ void redrawChildren () { } -void redrawWidget (int x, int y, int width, int height, boolean redrawAll, boolean all, boolean trim) { - if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return; - int /*long*/ window = paintWindow (); - GdkRectangle rect = new GdkRectangle (); +void redrawWidget (int x, int y, int width, int height, bool redrawAll, bool all, bool trim) { + if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) is 0) return; + auto window = paintWindow (); + GdkRectangle* rect = new GdkRectangle (); if (redrawAll) { - int [] w = new int [1], h = new int [1]; - OS.gdk_drawable_get_size (window, w, h); - rect.width = w [0]; - rect.height = h [0]; + int w, h; + OS.gdk_drawable_get_size (cast(GdkDrawable*)window, &w, &h); + rect.width = w; + rect.height = h; } else { rect.x = x; rect.y = y; @@ -2986,13 +3025,13 @@ OS.gdk_window_invalidate_rect (window, rect, all); } -void release (boolean destroy) { +void release (bool destroy) { Control next = null, previous = null; - if (destroy && parent != null) { + if (destroy && parent !is null) { Control[] children = parent._getChildren (); int index = 0; while (index < children.length) { - if (children [index] == this) break; + if (children [index] is this) break; index++; } if (0 < index && (index + 1) < children.length) { @@ -3002,13 +3041,13 @@ } super.release (destroy); if (destroy) { - if (previous != null) previous.addRelation (next); + if (previous !is null) previous.addRelation (next); } } void releaseHandle () { super.releaseHandle (); - fixedHandle = 0; + fixedHandle = null; parent = null; } @@ -3018,20 +3057,20 @@ void releaseWidget () { super.releaseWidget (); - if (display.currentControl == this) display.currentControl = null; + if (display.currentControl is this) display.currentControl = null; display.removeMouseHoverTimeout (handle); - int /*long*/ imHandle = imHandle (); - if (imHandle != 0) { + auto imHandle = imHandle (); + if (imHandle !is null) { OS.gtk_im_context_reset (imHandle); - OS.gtk_im_context_set_client_window (imHandle, 0); + OS.gtk_im_context_set_client_window (imHandle, null); } - if (enableWindow != 0) { - OS.gdk_window_set_user_data (enableWindow, 0); + if (enableWindow !is null) { + OS.gdk_window_set_user_data (enableWindow, null); OS.gdk_window_destroy (enableWindow); - enableWindow = 0; + enableWindow = null; } - redrawWindow = 0; - if (menu != null && !menu.isDisposed ()) { + redrawWindow = null; + if (menu !is null && !menu.isDisposed ()) { menu.dispose (); } menu = null; @@ -3041,7 +3080,7 @@ accessible = null; } -boolean sendDragEvent (int button, int stateMask, int x, int y, boolean isStateMask) { +bool sendDragEvent (int button, int stateMask, int x, int y, bool isStateMask) { Event event = new Event (); event.button = button; event.x = x; @@ -3076,7 +3115,7 @@ shell.setActiveControl (this); break; case SWT.FocusOut: - if (shell != display.activeShell) { + if (shell !is display.activeShell) { shell.setActiveControl (null); } break; @@ -3084,9 +3123,9 @@ } } -boolean sendHelpEvent (int /*long*/ helpType) { +bool sendHelpEvent (int /*long*/ helpType) { Control control = this; - while (control != null) { + while (control !is null) { if (control.hooks (SWT.Help)) { control.postEvent (SWT.Help); return true; @@ -3096,15 +3135,15 @@ return false; } -boolean sendLeaveNotify() { +bool sendLeaveNotify() { return false; } -boolean sendMouseEvent (int type, int button, int time, double x, double y, boolean is_hint, int state) { +bool sendMouseEvent (int type, int button, int time, double x, double y, bool is_hint, int state) { return sendMouseEvent (type, button, 0, 0, false, time, x, y, is_hint, state); } -boolean sendMouseEvent (int type, int button, int count, int detail, boolean send, int time, double x, double y, boolean is_hint, int state) { +bool sendMouseEvent (int type, int button, int count, int detail, bool send, int time, double x, double y, bool is_hint, int state) { if (!hooks (type) && !filters (type)) return true; Event event = new Event (); event.time = time; @@ -3112,14 +3151,14 @@ event.detail = detail; event.count = count; if (is_hint) { - event.x = (int)x; - event.y = (int)y; + event.x = cast(int)x; + event.y = cast(int)y; } else { - int /*long*/ window = eventWindow (); - int [] origin_x = new int [1], origin_y = new int [1]; - OS.gdk_window_get_origin (window, origin_x, origin_y); - event.x = (int)x - origin_x [0]; - event.y = (int)y - origin_y [0]; + auto window = eventWindow (); + int origin_x, origin_y; + OS.gdk_window_get_origin (window, &origin_x, &origin_y); + event.x = cast(int)x - origin_x; + event.y = cast(int)y - origin_y; } setInputState (event, state); if (send) { @@ -3132,7 +3171,7 @@ } void setBackground () { - if ((state & PARENT_BACKGROUND) != 0 && (state & BACKGROUND) == 0 && backgroundImage == null) { + if ((state & PARENT_BACKGROUND) !is 0 && (state & BACKGROUND) is 0 && backgroundImage is null) { setParentBackground (); } else { setWidgetBackground (); @@ -3160,22 +3199,22 @@ */ public void setBackground (Color color) { checkWidget(); - if (((state & BACKGROUND) == 0) && color == null) return; - GdkColor gdkColor = null; - if (color != null) { + if (((state & BACKGROUND) is 0) && color is null) return; + GdkColor* gdkColor = null; + if (color !is null) { if (color.isDisposed ()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); gdkColor = color.handle; } - boolean set = false; - if (gdkColor == null) { - int /*long*/ style = OS.gtk_widget_get_modifier_style (handle); - set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_BG) != 0; + bool set = false; + if (gdkColor is null) { + auto style = OS.gtk_widget_get_modifier_style (handle); + set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_BG) !is 0; } else { - GdkColor oldColor = getBackgroundColor (); - set = oldColor.pixel != gdkColor.pixel; + GdkColor* oldColor = getBackgroundColor (); + set = oldColor.pixel !is gdkColor.pixel; } if (set) { - if (color == null) { + if (color is null) { state &= ~BACKGROUND; } else { state |= BACKGROUND; @@ -3185,24 +3224,24 @@ } } -void setBackgroundColor (int /*long*/ handle, GdkColor color) { +void setBackgroundColor (GtkWidget* handle, GdkColor* color) { int index = OS.GTK_STATE_NORMAL; - int /*long*/ style = OS.gtk_widget_get_modifier_style (handle); - int /*long*/ ptr = OS.gtk_rc_style_get_bg_pixmap_name (style, index); - if (ptr != 0) OS.g_free (ptr); - String name = color == null ? "<parent>" : "<none>"; - byte[] buffer = Converter.wcsToMbcs (null, name, true); - ptr = OS.g_malloc (buffer.length); - OS.memmove (ptr, buffer, buffer.length); + auto style = OS.gtk_widget_get_modifier_style (handle); + auto ptr = OS.gtk_rc_style_get_bg_pixmap_name (style, index); + if (ptr !is null) OS.g_free (ptr); + char[] name = color is null ? "<parent>" : "<none>" ; + char* pname = toStringz( name ); + ptr = cast(char*)OS.g_malloc (name.length+1); + memmove (ptr, pname, name.length+1); OS.gtk_rc_style_set_bg_pixmap_name (style, index, ptr); OS.gtk_rc_style_set_bg (style, index, color); int flags = OS.gtk_rc_style_get_color_flags (style, index); - flags = (color == null) ? flags & ~OS.GTK_RC_BG : flags | OS.GTK_RC_BG; + flags = (color is null) ? flags & ~OS.GTK_RC_BG : flags | OS.GTK_RC_BG; OS.gtk_rc_style_set_color_flags (style, index, flags); OS.gtk_widget_modify_style (handle, style); } -void setBackgroundColor (GdkColor color) { +void setBackgroundColor (GdkColor* color) { setBackgroundColor (handle, color); } @@ -3230,10 +3269,10 @@ */ public void setBackgroundImage (Image image) { checkWidget (); - if (image != null && image.isDisposed ()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); - if (image == backgroundImage) return; + if (image !is null && image.isDisposed ()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); + if (image is backgroundImage) return; this.backgroundImage = image; - if (backgroundImage != null) { + if (backgroundImage !is null) { setBackgroundPixmap (backgroundImage.pixmap); redrawWidget (0, 0, 0, 0, true, false, false); } else { @@ -3242,9 +3281,9 @@ redrawChildren (); } -void setBackgroundPixmap (int /*long*/ pixmap) { - int /*long*/ window = OS.GTK_WIDGET_WINDOW (paintHandle ()); - if (window != 0) OS.gdk_window_set_back_pixmap (window, backgroundImage.pixmap, false); +void setBackgroundPixmap (GdkDrawable* pixmap) { + auto window = OS.GTK_WIDGET_WINDOW (paintHandle ()); + if (window !is null) OS.gdk_window_set_back_pixmap (window, cast(GdkPixmap*)backgroundImage.pixmap, false); } /** @@ -3259,7 +3298,7 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setCapture (boolean capture) { +public void setCapture (bool capture) { checkWidget(); /* FIXME !!!!! */ /* @@ -3291,19 +3330,19 @@ */ public void setCursor (Cursor cursor) { checkWidget(); - if (cursor != null && cursor.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); + if (cursor !is null && cursor.isDisposed ()) error (SWT.ERROR_INVALID_ARGUMENT); this.cursor = cursor; - setCursor (cursor != null ? cursor.handle : 0); + setCursor (cursor !is null ? cursor.handle : null); } -void setCursor (int /*long*/ cursor) { - int /*long*/ window = eventWindow (); - if (window != 0) { +void setCursor (GdkCursor* cursor) { + auto window = eventWindow (); + if (window !is null) { OS.gdk_window_set_cursor (window, cursor); if (!OS.GDK_WINDOWING_X11 ()) { OS.gdk_flush (); } else { - int /*long*/ xDisplay = OS.GDK_DISPLAY (); + auto xDisplay = OS.GDK_DISPLAY (); OS.XFlush (xDisplay); } } @@ -3323,7 +3362,7 @@ * * @since 3.3 */ -public void setDragDetect (boolean dragDetect) { +public void setDragDetect (bool dragDetect) { checkWidget (); if (dragDetect) { state |= DRAG_DETECT; @@ -3345,15 +3384,15 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setEnabled (boolean enabled) { +public void setEnabled (bool enabled) { checkWidget(); - if (((state & DISABLED) == 0) == enabled) return; + if (((state & DISABLED) is 0) is enabled) return; Control control = null; - boolean fixFocus = false; + bool fixFocus_ = false; if (!enabled) { - if (display.focusEvent != SWT.FocusOut) { + if (display.focusEvent !is SWT.FocusOut) { control = display.getFocusControl (); - fixFocus = isFocusAncestor (control); + fixFocus_ = isFocusAncestor (control); } } if (enabled) { @@ -3364,17 +3403,17 @@ enableWidget (enabled); if (isDisposed ()) return; if (enabled) { - if (enableWindow != 0) { - OS.gdk_window_set_user_data (enableWindow, 0); + if (enableWindow !is null) { + OS.gdk_window_set_user_data (enableWindow, null); OS.gdk_window_destroy (enableWindow); - enableWindow = 0; + enableWindow = null; } } else { OS.gtk_widget_realize (handle); - int /*long*/ parentHandle = parent.parentingHandle (); - int /*long*/ window = OS.GTK_WIDGET_WINDOW (parentHandle); + auto parentHandle = parent.parentingHandle (); + auto window = OS.GTK_WIDGET_WINDOW (parentHandle); Rectangle rect = getBounds (); - GdkWindowAttr attributes = new GdkWindowAttr (); + GdkWindowAttr* attributes = new GdkWindowAttr (); attributes.x = rect.x; attributes.y = rect.y; attributes.width = rect.width; @@ -3383,26 +3422,26 @@ attributes.wclass = OS.GDK_INPUT_ONLY; attributes.window_type = OS.GDK_WINDOW_CHILD; enableWindow = OS.gdk_window_new (window, attributes, OS.GDK_WA_X | OS.GDK_WA_Y); - if (enableWindow != 0) { - int /*long*/ topHandle = topHandle (); + if (enableWindow !is null) { + auto topHandle = topHandle (); OS.gdk_window_set_user_data (enableWindow, parentHandle); if (!OS.GDK_WINDOWING_X11 ()) { OS.gdk_window_raise (enableWindow); } else { - int /*long*/ topWindow = OS.GTK_WIDGET_WINDOW (topHandle); - int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (topWindow); - int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (enableWindow); + auto topWindow = OS.GTK_WIDGET_WINDOW (topHandle); + auto xDisplay = OS.gdk_x11_drawable_get_xdisplay (cast(GdkDrawable*)topWindow); + auto xWindow = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)enableWindow); int xScreen = OS.XDefaultScreen (xDisplay); int flags = OS.CWStackMode | OS.CWSibling; - XWindowChanges changes = new XWindowChanges (); - changes.sibling = OS.gdk_x11_drawable_get_xid (topWindow); + XWindowChanges* changes = new XWindowChanges (); + changes.sibling = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)topWindow); changes.stack_mode = OS.Above; OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes); } if (OS.GTK_WIDGET_VISIBLE (topHandle)) OS.gdk_window_show_unraised (enableWindow); } } - if (fixFocus) fixFocus (control); + if (fixFocus_) fixFocus (control); } /** @@ -3419,9 +3458,9 @@ * * @see #forceFocus */ -public boolean setFocus () { +public bool setFocus () { checkWidget(); - if ((style & SWT.NO_FOCUS) != 0) return false; + if ((style & SWT.NO_FOCUS) !is 0) return false; return forceFocus (); } @@ -3442,16 +3481,16 @@ */ public void setFont (Font font) { checkWidget(); - if (((state & FONT) == 0) && font == null) return; + if (((state & FONT) is 0) && font is null) return; this.font = font; - int /*long*/ fontDesc; - if (font == null) { + PangoFontDescription* fontDesc; + if (font is null) { fontDesc = defaultFont (); } else { if (font.isDisposed ()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); fontDesc = font.handle; } - if (font == null) { + if (font is null) { state &= ~FONT; } else { state |= FONT; @@ -3459,7 +3498,7 @@ setFontDescription (fontDesc); } -void setFontDescription (int /*long*/ font) { +void setFontDescription (PangoFontDescription* font) { OS.gtk_widget_modify_font (handle, font); } @@ -3482,22 +3521,22 @@ */ public void setForeground (Color color) { checkWidget(); - if (((state & FOREGROUND) == 0) && color == null) return; - GdkColor gdkColor = null; - if (color != null) { + if (((state & FOREGROUND) is 0) && color is null) return; + GdkColor* gdkColor = null; + if (color !is null) { if (color.isDisposed ()) SWT.error(SWT.ERROR_INVALID_ARGUMENT); gdkColor = color.handle; } - boolean set = false; - if (gdkColor == null) { - int /*long*/ style = OS.gtk_widget_get_modifier_style (handle); - set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_FG) != 0; + bool set = false; + if (gdkColor is null) { + auto style = OS.gtk_widget_get_modifier_style (handle); + set = (OS.gtk_rc_style_get_color_flags (style, OS.GTK_STATE_NORMAL) & OS.GTK_RC_FG) !is 0; } else { - GdkColor oldColor = getForegroundColor (); - set = oldColor.pixel != gdkColor.pixel; + GdkColor* oldColor = getForegroundColor (); + set = oldColor.pixel !is gdkColor.pixel; } if (set) { - if (color == null) { + if (color is null) { state &= ~FOREGROUND; } else { state |= FOREGROUND; @@ -3506,19 +3545,20 @@ } } -void setForegroundColor (GdkColor color) { +alias Widget.setForegroundColor setForegroundColor; +void setForegroundColor (GdkColor* color) { setForegroundColor (handle, color); } void setInitialBounds () { - if ((state & ZERO_WIDTH) != 0 && (state & ZERO_HEIGHT) != 0) { + if ((state & ZERO_WIDTH) !is 0 && (state & ZERO_HEIGHT) !is 0) { /* * Feature in GTK. On creation, each widget's allocation is * initialized to a position of (-1, -1) until the widget is * first sized. The fix is to set the value to (0, 0) as * expected by SWT. */ - int /*long*/ topHandle = topHandle (); + auto topHandle = topHandle (); OS.GTK_WIDGET_SET_X (topHandle, 0); OS.GTK_WIDGET_SET_Y (topHandle, 0); } else { @@ -3554,11 +3594,11 @@ */ public void setMenu (Menu menu) { checkWidget(); - if (menu != null) { - if ((menu.style & SWT.POP_UP) == 0) { + if (menu !is null) { + if ((menu.style & SWT.POP_UP) is 0) { error (SWT.ERROR_MENU_NOT_POP_UP); } - if (menu.parent != menuShell ()) { + if (menu.parent !is menuShell ()) { error (SWT.ERROR_INVALID_PARENT); } } @@ -3566,9 +3606,9 @@ } void setOrientation () { - if ((style & SWT.RIGHT_TO_LEFT) != 0) { - if (handle != 0) OS.gtk_widget_set_direction (handle, OS.GTK_TEXT_DIR_RTL); - if (fixedHandle != 0) OS.gtk_widget_set_direction (fixedHandle, OS.GTK_TEXT_DIR_RTL); + if ((style & SWT.RIGHT_TO_LEFT) !is 0) { + if (handle !is null) OS.gtk_widget_set_direction (handle, cast(GtkTextDirection)OS.GTK_TEXT_DIR_RTL); + if (fixedHandle !is null) OS.gtk_widget_set_direction (fixedHandle, cast(GtkTextDirection)OS.GTK_TEXT_DIR_RTL); } } @@ -3589,27 +3629,27 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean setParent (Composite parent) { +public bool setParent (Composite parent) { checkWidget (); - if (parent == null) SWT.error (SWT.ERROR_NULL_ARGUMENT); + if (parent is null) SWT.error (SWT.ERROR_NULL_ARGUMENT); if (parent.isDisposed()) SWT.error (SWT.ERROR_INVALID_ARGUMENT); - if (this.parent == parent) return true; + if (this.parent is parent) return true; if (!isReparentable ()) return false; releaseParent (); Shell newShell = parent.getShell (), oldShell = getShell (); Decorations newDecorations = parent.menuShell (), oldDecorations = menuShell (); Menu [] menus = oldShell.findMenus (this); - if (oldShell != newShell || oldDecorations != newDecorations) { + if (oldShell !is newShell || oldDecorations !is newDecorations) { fixChildren (newShell, oldShell, newDecorations, oldDecorations, menus); newDecorations.fixAccelGroup (); oldDecorations.fixAccelGroup (); } - int /*long*/ topHandle = topHandle (); - int /*long*/ newParent = parent.parentingHandle(); + auto topHandle = topHandle (); + auto newParent = parent.parentingHandle(); int x = OS.GTK_WIDGET_X (topHandle); int y = OS.GTK_WIDGET_Y (topHandle); OS.gtk_widget_reparent (topHandle, newParent); - OS.gtk_fixed_move (newParent, topHandle, x, y); + OS.gtk_fixed_move (cast(GtkFixed*)newParent, topHandle, x, y); this.parent = parent; setZOrder (null, false, true); return true; @@ -3617,13 +3657,13 @@ void setParentBackground () { setBackgroundColor (handle, null); - if (fixedHandle != 0) setBackgroundColor (fixedHandle, null); + if (fixedHandle !is null) setBackgroundColor (fixedHandle, null); } -void setParentWindow (int /*long*/ widget) { +void setParentWindow (GtkWidget* widget) { } -boolean setRadioSelection (boolean value) { +bool setRadioSelection (bool value) { return false; } @@ -3647,41 +3687,41 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> * - * @see #redraw(int, int, int, int, boolean) + * @see #redraw(int, int, int, int, bool) * @see #update() */ -public void setRedraw (boolean redraw) { +public void setRedraw (bool redraw) { checkWidget(); if (redraw) { - if (--drawCount == 0) { - if (redrawWindow != 0) { - int /*long*/ window = paintWindow (); + if (--drawCount is 0) { + if (redrawWindow !is null) { + auto window = paintWindow (); /* Explicitly hiding the window avoids flicker on GTK+ >= 2.6 */ OS.gdk_window_hide (redrawWindow); OS.gdk_window_destroy (redrawWindow); - OS.gdk_window_set_events (window, OS.gtk_widget_get_events (paintHandle ())); - redrawWindow = 0; + OS.gdk_window_set_events (window, cast(GdkEventMask)OS.gtk_widget_get_events (paintHandle ())); + redrawWindow = null; } } } else { - if (drawCount++ == 0) { - if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) != 0) { - int /*long*/ window = paintWindow (); + if (drawCount++ is 0) { + if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) !is 0) { + auto window = paintWindow (); Rectangle rect = getBounds (); - GdkWindowAttr attributes = new GdkWindowAttr (); + GdkWindowAttr* attributes = new GdkWindowAttr (); attributes.width = rect.width; attributes.height = rect.height; attributes.event_mask = OS.GDK_EXPOSURE_MASK; attributes.window_type = OS.GDK_WINDOW_CHILD; redrawWindow = OS.gdk_window_new (window, attributes, 0); - if (redrawWindow != 0) { + if (redrawWindow !is null) { int mouseMask = OS.GDK_BUTTON_PRESS_MASK | OS.GDK_BUTTON_RELEASE_MASK | OS.GDK_ENTER_NOTIFY_MASK | OS.GDK_LEAVE_NOTIFY_MASK | OS.GDK_POINTER_MOTION_MASK | OS.GDK_POINTER_MOTION_HINT_MASK | OS.GDK_BUTTON_MOTION_MASK | OS.GDK_BUTTON1_MOTION_MASK | OS.GDK_BUTTON2_MOTION_MASK | OS.GDK_BUTTON3_MOTION_MASK; - OS.gdk_window_set_events (window, OS.gdk_window_get_events (window) & ~mouseMask); - OS.gdk_window_set_back_pixmap (redrawWindow, 0, false); + OS.gdk_window_set_events (window, cast(GdkEventMask)(OS.gdk_window_get_events (window) & ~mouseMask)); + OS.gdk_window_set_back_pixmap (redrawWindow, null, false); OS.gdk_window_show (redrawWindow); } } @@ -3689,10 +3729,10 @@ } } -boolean setTabGroupFocus (boolean next) { +bool setTabGroupFocus (bool next) { return setTabItemFocus (next); } -boolean setTabItemFocus (boolean next) { +bool setTabItemFocus (bool next) { if (!isShowing ()) return false; return forceFocus (); } @@ -3701,20 +3741,20 @@ * Sets the receiver's tool tip text to the argument, which * may be null indicating that no tool tip text should be shown. * - * @param string the new tool tip text (or null) + * @param str the new tool tip text (or null) * * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setToolTipText (String string) { +public void setToolTipText (char[] str) { checkWidget(); - setToolTipText (_getShell (), string); - toolTipText = string; + setToolTipText (_getShell (), str); + toolTipText = str; } -void setToolTipText (Shell shell, String newString) { +void setToolTipText (Shell shell, char[] newString) { shell.setToolTipText (eventHandle (), newString); } @@ -3734,10 +3774,10 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public void setVisible (boolean visible) { +public void setVisible (bool visible) { checkWidget(); - if (((state & HIDDEN) == 0) == visible) return; - int /*long*/ topHandle = topHandle(); + if (((state & HIDDEN) is 0) is visible) return; + auto topHandle = topHandle(); if (visible) { /* * It is possible (but unlikely), that application @@ -3747,8 +3787,8 @@ sendEvent (SWT.Show); if (isDisposed ()) return; state &= ~HIDDEN; - if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) == 0) { - if (enableWindow != 0) OS.gdk_window_show_unraised (enableWindow); + if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) is 0) { + if (enableWindow !is null) OS.gdk_window_show_unraised (enableWindow); OS.gtk_widget_show (topHandle); } } else { @@ -3762,13 +3802,13 @@ * temporarily clear and set the GTK_VISIBLE flag. */ Control control = null; - boolean fixFocus = false; - if (display.focusEvent != SWT.FocusOut) { + bool fixFocus_ = false; + if (display.focusEvent !is SWT.FocusOut) { control = display.getFocusControl (); - fixFocus = isFocusAncestor (control); + fixFocus_ = isFocusAncestor (control); } state |= HIDDEN; - if (fixFocus) { + if (fixFocus_) { OS.GTK_WIDGET_UNSET_FLAGS (topHandle, OS.GTK_VISIBLE); fixFocus (control); if (isDisposed ()) return; @@ -3776,28 +3816,28 @@ } OS.gtk_widget_hide (topHandle); if (isDisposed ()) return; - if (enableWindow != 0) OS.gdk_window_hide (enableWindow); + if (enableWindow !is null) OS.gdk_window_hide (enableWindow); sendEvent (SWT.Hide); } } -void setZOrder (Control sibling, boolean above, boolean fixRelations) { +void setZOrder (Control sibling, bool above, bool fixRelations) { setZOrder (sibling, above, fixRelations, true); } -void setZOrder (Control sibling, boolean above, boolean fixRelations, boolean fixChildren) { +void setZOrder (Control sibling, bool above, bool fixRelations, bool fixChildren) { int index = 0, siblingIndex = 0, oldNextIndex = -1; Control[] children = null; if (fixRelations) { /* determine the receiver's and sibling's indexes in the parent */ children = parent._getChildren (); while (index < children.length) { - if (children [index] == this) break; + if (children [index] is this) break; index++; } - if (sibling != null) { + if (sibling !is null) { while (siblingIndex < children.length) { - if (children [siblingIndex] == sibling) break; + if (children [siblingIndex] is sibling) break; siblingIndex++; } } @@ -3807,7 +3847,7 @@ oldNextIndex = index + 1; children [oldNextIndex].removeRelation (); } - if (sibling != null) { + if (sibling !is null) { if (above) { sibling.removeRelation (); } else { @@ -3818,35 +3858,35 @@ } } - int /*long*/ topHandle = topHandle (); - int /*long*/ siblingHandle = sibling != null ? sibling.topHandle () : 0; - int /*long*/ window = OS.GTK_WIDGET_WINDOW (topHandle); - if (window != 0) { - int /*long*/ siblingWindow = 0; - if (sibling != null) { - if (above && sibling.enableWindow != 0) { + auto topHandle = topHandle (); + auto siblingHandle = sibling !is null ? sibling.topHandle () : null; + auto window = OS.GTK_WIDGET_WINDOW (topHandle); + if (window !is null) { + GdkWindow* siblingWindow; + if (sibling !is null) { + if (above && sibling.enableWindow !is null) { siblingWindow = enableWindow; } else { siblingWindow = OS.GTK_WIDGET_WINDOW (siblingHandle); } } - int /*long*/ redrawWindow = fixChildren ? parent.redrawWindow : 0; - if (!OS.GDK_WINDOWING_X11 () || (siblingWindow == 0 && (!above || redrawWindow == 0))) { + auto redrawWindow = fixChildren ? parent.redrawWindow : null; + if (!OS.GDK_WINDOWING_X11 () || (siblingWindow is null && (!above || redrawWindow is null))) { if (above) { OS.gdk_window_raise (window); - if (redrawWindow != 0) OS.gdk_window_raise (redrawWindow); - if (enableWindow != 0) OS.gdk_window_raise (enableWindow); + if (redrawWindow !is null) OS.gdk_window_raise (redrawWindow); + if (enableWindow !is null) OS.gdk_window_raise (enableWindow); } else { - if (enableWindow != 0) OS.gdk_window_lower (enableWindow); + if (enableWindow !is null) OS.gdk_window_lower (enableWindow); OS.gdk_window_lower (window); } } else { - XWindowChanges changes = new XWindowChanges (); - changes.sibling = OS.gdk_x11_drawable_get_xid (siblingWindow != 0 ? siblingWindow : redrawWindow); + XWindowChanges* changes = new XWindowChanges (); + changes.sibling = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)(siblingWindow !is null ? siblingWindow : redrawWindow)); changes.stack_mode = above ? OS.Above : OS.Below; - if (redrawWindow != 0 && siblingWindow == 0) changes.stack_mode = OS.Below; - int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window); - int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window); + if (redrawWindow !is null && siblingWindow is null) changes.stack_mode = OS.Below; + auto xDisplay = OS.gdk_x11_drawable_get_xdisplay (cast(GdkDrawable*)window); + auto xWindow = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)window); int xScreen = OS.XDefaultScreen (xDisplay); int flags = OS.CWStackMode | OS.CWSibling; /* @@ -3859,10 +3899,10 @@ * behaves the same as XConfigureWindow (). */ OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes); - if (enableWindow != 0) { - changes.sibling = OS.gdk_x11_drawable_get_xid (window); + if (enableWindow !is null) { + changes.sibling = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)window); changes.stack_mode = OS.Above; - xWindow = OS.gdk_x11_drawable_get_xid (enableWindow); + xWindow = OS.gdk_x11_drawable_get_xid (cast(GdkDrawable*)enableWindow); OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes); } } @@ -3879,7 +3919,7 @@ if (fixRelations) { /* determine the receiver's new index in the parent */ - if (sibling != null) { + if (sibling !is null) { if (above) { index = siblingIndex - (index < siblingIndex ? 1 : 0); } else { @@ -3901,10 +3941,10 @@ if (index + 1 < children.length) { addRelation (children [index + 1]); } - if (oldNextIndex != -1) { + if (oldNextIndex !is -1) { if (oldNextIndex <= index) oldNextIndex--; /* the last two conditions below ensure that duplicate relations are not hooked */ - if (0 < oldNextIndex && oldNextIndex != index && oldNextIndex != index + 1) { + if (0 < oldNextIndex && oldNextIndex !is index && oldNextIndex !is index + 1) { children [oldNextIndex - 1].addRelation (children [oldNextIndex]); } } @@ -3912,24 +3952,24 @@ } void setWidgetBackground () { - if (fixedHandle != 0) { - int /*long*/ style = OS.gtk_widget_get_modifier_style (fixedHandle); + if (fixedHandle !is null) { + auto style = OS.gtk_widget_get_modifier_style (fixedHandle); OS.gtk_widget_modify_style (fixedHandle, style); } - int /*long*/ style = OS.gtk_widget_get_modifier_style (handle); + auto style = OS.gtk_widget_get_modifier_style (handle); OS.gtk_widget_modify_style (handle, style); } -boolean showMenu (int x, int y) { +bool showMenu (int x, int y) { Event event = new Event (); event.x = x; event.y = y; sendEvent (SWT.MenuDetect, event); if (event.doit) { - if (menu != null && !menu.isDisposed ()) { - boolean hooksKeys = hooks (SWT.KeyDown) || hooks (SWT.KeyUp); - menu.createIMMenu (hooksKeys ? imHandle() : 0); - if (event.x != x || event.y != y) { + if (menu !is null && !menu.isDisposed ()) { + bool hooksKeys = hooks (SWT.KeyDown) || hooks (SWT.KeyUp); + menu.createIMMenu (hooksKeys ? imHandle() : null); + if (event.x !is x || event.y !is y) { menu.setLocation (event.x, event.y); } menu.setVisible (true); @@ -3942,15 +3982,15 @@ void showWidget () { // Comment this line to disable zero-sized widgets state |= ZERO_WIDTH | ZERO_HEIGHT; - int /*long*/ topHandle = topHandle (); - int /*long*/ parentHandle = parent.parentingHandle (); + auto topHandle = topHandle (); + auto parentHandle = parent.parentingHandle (); parent.setParentWindow (topHandle); - OS.gtk_container_add (parentHandle, topHandle); - if (handle != 0 && handle != topHandle) OS.gtk_widget_show (handle); - if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) == 0) { - if (fixedHandle != 0) OS.gtk_widget_show (fixedHandle); + OS.gtk_container_add (cast(GtkContainer*)parentHandle, topHandle); + if (handle !is null && handle !is topHandle) OS.gtk_widget_show (handle); + if ((state & (ZERO_WIDTH | ZERO_HEIGHT)) is 0) { + if (fixedHandle !is null) OS.gtk_widget_show (fixedHandle); } - if (fixedHandle != 0) fixStyle (fixedHandle); + if (fixedHandle !is null) fixStyle (fixedHandle); } void sort (int [] items) { @@ -3984,7 +4024,7 @@ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ -public boolean traverse (int traversal) { +public bool traverse (int traversal) { checkWidget (); Event event = new Event (); event.doit = true; @@ -3992,23 +4032,23 @@ return traverse (event); } -boolean translateMnemonic (Event event, Control control) { - if (control == this) return false; +bool translateMnemonic (Event event, Control control) { + if (control is this) return false; if (!isVisible () || !isEnabled ()) return false; - event.doit = this == display.mnemonicControl || mnemonicMatch (event.character); + event.doit = this is display.mnemonicControl || mnemonicMatch (event.character); return traverse (event); } -boolean translateMnemonic (int keyval, GdkEventKey gdkEvent) { +bool translateMnemonic (int keyval, GdkEventKey* gdkEvent) { int key = OS.gdk_keyval_to_unicode (keyval); if (key < 0x20) return false; - if (gdkEvent.state == 0) { + if (gdkEvent.state is 0) { int code = traversalCode (keyval, gdkEvent); - if ((code & SWT.TRAVERSE_MNEMONIC) == 0) return false; + if ((code & SWT.TRAVERSE_MNEMONIC) is 0) return false; } else { Shell shell = _getShell (); int mask = OS.GDK_CONTROL_MASK | OS.GDK_SHIFT_MASK | OS.GDK_MOD1_MASK; - if ((gdkEvent.state & mask) != OS.gtk_window_get_mnemonic_modifier (shell.shellHandle)) return false; + if ((gdkEvent.state & mask) !is OS.gtk_window_get_mnemonic_modifier (cast(GtkWindow*)shell.shellHandle)) return false; } Decorations shell = menuShell (); if (shell.isVisible () && shell.isEnabled ()) { @@ -4021,11 +4061,11 @@ return false; } -boolean translateTraversal (GdkEventKey keyEvent) { +bool translateTraversal (GdkEventKey* keyEvent) { int detail = SWT.TRAVERSE_NONE; int key = keyEvent.keyval; int code = traversalCode (key, keyEvent); - boolean all = false; + bool all = false; switch (key) { case OS.GDK_Escape: { all = true; @@ -4040,7 +4080,7 @@ } case OS.GDK_ISO_Left_Tab: case OS.GDK_Tab: { - boolean next = (keyEvent.state & OS.GDK_SHIFT_MASK) == 0; + bool next = (keyEvent.state & OS.GDK_SHIFT_MASK) is 0; detail = next ? SWT.TRAVERSE_TAB_NEXT : SWT.TRAVERSE_TAB_PREVIOUS; break; } @@ -4048,22 +4088,22 @@ case OS.GDK_Left: case OS.GDK_Down: case OS.GDK_Right: { - boolean next = key == OS.GDK_Down || key == OS.GDK_Right; + bool next = key is OS.GDK_Down || key is OS.GDK_Right; detail = next ? SWT.TRAVERSE_ARROW_NEXT : SWT.TRAVERSE_ARROW_PREVIOUS; break; } case OS.GDK_Page_Up: case OS.GDK_Page_Down: { all = true; - if ((keyEvent.state & OS.GDK_CONTROL_MASK) == 0) return false; - detail = key == OS.GDK_Page_Down ? SWT.TRAVERSE_PAGE_NEXT : SWT.TRAVERSE_PAGE_PREVIOUS; + if ((keyEvent.state & OS.GDK_CONTROL_MASK) is 0) return false; + detail = key is OS.GDK_Page_Down ? SWT.TRAVERSE_PAGE_NEXT : SWT.TRAVERSE_PAGE_PREVIOUS; break; } default: return false; } Event event = new Event (); - event.doit = (code & detail) != 0; + event.doit = (code & detail) !is 0; event.detail = detail; event.time = keyEvent.time; if (!setKeyState (event, keyEvent)) return false; @@ -4072,20 +4112,20 @@ do { if (control.traverse (event)) return true; if (!event.doit && control.hooks (SWT.Traverse)) return false; - if (control == shell) return false; + if (control is shell) return false; control = control.parent; - } while (all && control != null); + } while (all && control !is null); return false; } -int traversalCode (int key, GdkEventKey event) { +int traversalCode (int key, GdkEventKey* event) { int code = SWT.TRAVERSE_RETURN | SWT.TRAVERSE_TAB_NEXT | SWT.TRAVERSE_TAB_PREVIOUS | SWT.TRAVERSE_PAGE_NEXT | SWT.TRAVERSE_PAGE_PREVIOUS; Shell shell = getShell (); - if (shell.parent != null) code |= SWT.TRAVERSE_ESCAPE; + if (shell.parent !is null) code |= SWT.TRAVERSE_ESCAPE; return code; } -boolean traverse (Event event) { +bool traverse (Event event) { /* * It is possible (but unlikely), that application * code could have disposed the widget in the traverse @@ -4110,18 +4150,18 @@ return false; } -boolean traverseEscape () { +bool traverseEscape () { return false; } -boolean traverseGroup (boolean next) { +bool traverseGroup (bool next) { Control root = computeTabRoot (); Control group = computeTabGroup (); Control [] list = root.computeTabList (); int length = list.length; int index = 0; while (index < length) { - if (list [index] == group) break; + if (list [index] is group) break; index++; } /* @@ -4130,9 +4170,9 @@ * or out events. Ensure that a disposed widget is * not accessed. */ - if (index == length) return false; + if (index is length) return false; int start = index, offset = (next) ? 1 : -1; - while ((index = ((index + offset + length) % length)) != start) { + while ((index = ((index + offset + length) % length)) !is start) { Control control = list [index]; if (!control.isDisposed () && control.setTabGroupFocus (next)) { return true; @@ -4142,12 +4182,12 @@ return group.setTabGroupFocus (next); } -boolean traverseItem (boolean next) { +bool traverseItem (bool next) { Control [] children = parent._getChildren (); int length = children.length; int index = 0; while (index < length) { - if (children [index] == this) break; + if (children [index] is this) break; index++; } /* @@ -4156,9 +4196,9 @@ * or out events. Ensure that a disposed widget is * not accessed. */ - if (index == length) return false; + if (index is length) return false; int start = index, offset = (next) ? 1 : -1; - while ((index = (index + offset + length) % length) != start) { + while ((index = (index + offset + length) % length) !is start) { Control child = children [index]; if (!child.isDisposed () && child.isTabItem ()) { if (child.setTabItemFocus (next)) return true; @@ -4167,15 +4207,15 @@ return false; } -boolean traverseReturn () { +bool traverseReturn () { return false; } -boolean traversePage (boolean next) { +bool traversePage (bool next) { return false; } -boolean traverseMnemonic (char key) { +bool traverseMnemonic (char key) { return mnemonicHit (key); } @@ -4194,7 +4234,7 @@ * </ul> * * @see #redraw() - * @see #redraw(int, int, int, int, boolean) + * @see #redraw(int, int, int, int, bool) * @see PaintListener * @see SWT#Paint */ @@ -4203,11 +4243,11 @@ update (false, true); } -void update (boolean all, boolean flush) { +void update (bool all, bool flush) { // checkWidget(); if (!OS.GTK_WIDGET_VISIBLE (topHandle ())) return; - if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) == 0) return; - int /*long*/ window = paintWindow (); + if ((OS.GTK_WIDGET_FLAGS (handle) & OS.GTK_REALIZED) is 0) return; + auto window = paintWindow (); if (flush) display.flushExposes (window, all); OS.gdk_window_process_updates (window, all); OS.gdk_flush (); @@ -4216,34 +4256,34 @@ void updateBackgroundMode () { int oldState = state & PARENT_BACKGROUND; checkBackground (); - if (oldState != (state & PARENT_BACKGROUND)) { + if (oldState !is (state & PARENT_BACKGROUND)) { setBackground (); } } -void updateLayout (boolean all) { +void updateLayout (bool all) { /* Do nothing */ } -int /*long*/ windowProc (int /*long*/ handle, int /*long*/ arg0, int /*long*/ user_data) { - switch ((int)/*64*/user_data) { +int /*long*/ windowProc (GtkWidget* handle, int /*long*/ arg0, int /*long*/ user_data) { + switch (cast(int)/*64*/user_data) { case EXPOSE_EVENT_INVERSE: { - if ((OS.GTK_VERSION < OS.VERSION (2, 8, 0)) && ((state & OBSCURED) == 0)) { + if ((OS.GTK_VERSION < OS.buildVERSION (2, 8, 0)) && ((state & OBSCURED) is 0)) { Control control = findBackgroundControl (); - if (control != null && control.backgroundImage != null) { - GdkEventExpose gdkEvent = new GdkEventExpose (); - OS.memmove (gdkEvent, arg0, GdkEventExpose.sizeof); - int /*long*/ paintWindow = paintWindow(); - int /*long*/ window = gdkEvent.window; - if (window != paintWindow) break; - int /*long*/ gdkGC = OS.gdk_gc_new (window); + if (control !is null && control.backgroundImage !is null) { + GdkEventExpose* gdkEvent = new GdkEventExpose (); + memmove (gdkEvent, cast(void*)arg0, GdkEventExpose.sizeof); + auto paintWindow = paintWindow(); + auto window = gdkEvent.window; + if (window !is paintWindow) break; + auto gdkGC = OS.gdk_gc_new (cast(GdkDrawable*)window); OS.gdk_gc_set_clip_region (gdkGC, gdkEvent.region); - int[] dest_x = new int[1], dest_y = new int[1]; - OS.gtk_widget_translate_coordinates (paintHandle (), control.paintHandle (), 0, 0, dest_x, dest_y); - OS.gdk_gc_set_fill (gdkGC, OS.GDK_TILED); - OS.gdk_gc_set_ts_origin (gdkGC, -dest_x [0], -dest_y [0]); - OS.gdk_gc_set_tile (gdkGC, control.backgroundImage.pixmap); - OS.gdk_draw_rectangle (window, gdkGC, 1, gdkEvent.area_x, gdkEvent.area_y, gdkEvent.area_width, gdkEvent.area_height); + int dest_x, dest_y; + OS.gtk_widget_translate_coordinates (paintHandle (), control.paintHandle (), 0, 0, &dest_x, &dest_y); + OS.gdk_gc_set_fill (gdkGC, cast(GdkFill)OS.GDK_TILED); + OS.gdk_gc_set_ts_origin (gdkGC, -dest_x, -dest_y); + OS.gdk_gc_set_tile (gdkGC, cast(GdkPixmap*)control.backgroundImage.pixmap); + OS.gdk_draw_rectangle (cast(GdkDrawable*)window, gdkGC, 1, gdkEvent.area.x, gdkEvent.area.y, gdkEvent.area.width, gdkEvent.area.height); OS.g_object_unref (gdkGC); } } @@ -4253,4 +4293,3 @@ return super.windowProc (handle, arg0, user_data); } } -+++/ \ No newline at end of file