diff dwtx/ui/forms/widgets/ExpandableComposite.d @ 85:56fea7e5f0f9

Fix some runtime errors
author Frank Benoit <benoit@tionex.de>
date Fri, 20 Jun 2008 14:48:17 +0200
parents 5d489b9f966c
children c3583c6ec027
line wrap: on
line diff
--- a/dwtx/ui/forms/widgets/ExpandableComposite.d	Fri Jun 20 13:00:15 2008 +0200
+++ b/dwtx/ui/forms/widgets/ExpandableComposite.d	Fri Jun 20 14:48:17 2008 +0200
@@ -643,39 +643,8 @@
             final Label label = new Label(this, DWT.WRAP);
             if (!isFixedStyle()) {
                 label.setCursor(FormsResources.getHandCursor());
-                Listener listener = dgListener( (Event e, Label label) {
-                    switch (e.type) {
-                    case DWT.MouseDown:
-                        if (toggle !is null)
-                            toggle.setFocus();
-                        break;
-                    case DWT.MouseUp:
-                        label.setCursor(FormsResources.getBusyCursor());
-                        programmaticToggleState();
-                        label.setCursor(FormsResources.getHandCursor());
-                        break;
-                    case DWT.MouseEnter:
-                        if (toggle !is null) {
-                            label.setForeground(toggle
-                                    .getHoverDecorationColor());
-                            toggle.hover_package = true;
-                            toggle.redraw();
-                        }
-                        break;
-                    case DWT.MouseExit:
-                        if (toggle !is null) {
-                            label.setForeground(getTitleBarForeground());
-                            toggle.hover_package = false;
-                            toggle.redraw();
-                        }
-                        break;
-                    case DWT.Paint:
-                        if (toggle !is null) {
-                            paintTitleFocus(e.gc);
-                        }
-                        break;
-                    }
-                }, label );
+    // DWT FIXME: workaround for DMD anonymous class, nested function problem
+                Listener listener = dgListener( &tst, label );
                 label.addListener(DWT.MouseDown, listener);
                 label.addListener(DWT.MouseUp, listener);
                 label.addListener(DWT.MouseEnter, listener);
@@ -705,6 +674,40 @@
         }
     }
 
+    // DWT FIXME: workaround for DMD anonymous class, nested function problem
+                void tst(Event e, Label label_) {
+                    switch (e.type) {
+                    case DWT.MouseDown:
+                        if (toggle !is null)
+                            toggle.setFocus();
+                        break;
+                    case DWT.MouseUp:
+                        label_.setCursor(FormsResources.getBusyCursor());
+                        programmaticToggleState();
+                        label_.setCursor(FormsResources.getHandCursor());
+                        break;
+                    case DWT.MouseEnter:
+                        if (toggle !is null) {
+                            label_.setForeground(toggle
+                                    .getHoverDecorationColor());
+                            toggle.hover_package = true;
+                            toggle.redraw();
+                        }
+                        break;
+                    case DWT.MouseExit:
+                        if (toggle !is null) {
+                            label_.setForeground(getTitleBarForeground());
+                            toggle.hover_package = false;
+                            toggle.redraw();
+                        }
+                        break;
+                    case DWT.Paint:
+                        if (toggle !is null) {
+                            paintTitleFocus(e.gc);
+                        }
+                        break;
+                    }
+                }
     /* (non-Javadoc)
      * @see dwt.widgets.Control#forceFocus()
      */