# HG changeset patch # User Jacob Carlborg # Date 1244157910 -7200 # Node ID c41e13089a3c4b9e6d6b5ff1b25794ca769d5fe8 # Parent 6ef64ef8df0a22c9eaec501e6d56c4d9c6371b2f Fixes #21 diff -r 6ef64ef8df0a -r c41e13089a3c dwt/custom/CTabFolder.d --- a/dwt/custom/CTabFolder.d Thu Jun 04 23:55:22 2009 +0200 +++ b/dwt/custom/CTabFolder.d Fri Jun 05 01:25:10 2009 +0200 @@ -353,23 +353,30 @@ initAccessible(); // Add all listeners - listener = new class() Listener { + listener = new class(this) Listener { + CTabFolder ctf; + + this (CTabFolder ctf) + { + this.ctf = ctf; + } + public void handleEvent(Event event) { switch (event.type) { - case DWT.Dispose: onDispose(event); break; - case DWT.DragDetect: onDragDetect(event); break; - case DWT.FocusIn: onFocus(event); break; - case DWT.FocusOut: onFocus(event); break; - case DWT.KeyDown: onKeyDown(event); break; - case DWT.MouseDoubleClick: onMouseDoubleClick(event); break; - case DWT.MouseDown: onMouse(event); break; - case DWT.MouseEnter: onMouse(event); break; - case DWT.MouseExit: onMouse(event); break; - case DWT.MouseMove: onMouse(event); break; - case DWT.MouseUp: onMouse(event); break; - case DWT.Paint: onPaint(event); break; - case DWT.Resize: onResize(); break; - case DWT.Traverse: onTraverse(event); break; + case DWT.Dispose: ctf.onDispose(event); break; + case DWT.DragDetect: ctf.onDragDetect(event); break; + case DWT.FocusIn: ctf.onFocus(event); break; + case DWT.FocusOut: ctf.onFocus(event); break; + case DWT.KeyDown: ctf.onKeyDown(event); break; + case DWT.MouseDoubleClick: ctf.onMouseDoubleClick(event); break; + case DWT.MouseDown: ctf.onMouse(event); break; + case DWT.MouseEnter: ctf.onMouse(event); break; + case DWT.MouseExit: ctf.onMouse(event); break; + case DWT.MouseMove: ctf.onMouse(event); break; + case DWT.MouseUp: ctf.onMouse(event); break; + case DWT.Paint: ctf.onPaint(event); break; + case DWT.Resize: ctf.onResize(); break; + case DWT.Traverse: ctf.onTraverse(event); break; default: } } @@ -1829,22 +1836,27 @@ } }); - addListener(DWT.Selection, new class(accessible) Listener { - Accessible acc; - this( Accessible a ){ - this.acc = a; + addListener(DWT.Selection, new class(accessible, this) Listener { + Accessible accessible; + CTabFolder ctf; + + this (Accessible accessible, CTabFolder ctf) + { + this.accessible = accessible; + this.ctf = ctf; } + public void handleEvent(Event event) { - if (isFocusControl()) { + if (ctf.isFocusControl()) { if (selectedIndex is -1) { - acc.setFocus(ACC.CHILDID_SELF); + accessible.setFocus(ACC.CHILDID_SELF); } else { - acc.setFocus(selectedIndex); + accessible.setFocus(selectedIndex); } } } }); - + addListener(DWT.FocusIn, new class(accessible) Listener { Accessible acc; this( Accessible a ){ this.acc = a; } @@ -3897,11 +3909,18 @@ item.setText(tab.getText()); item.setImage(tab.getImage()); item.setData(id, tab); - item.addSelectionListener(new class() SelectionAdapter { + item.addSelectionListener(new class(this) SelectionAdapter { + CTabFolder ctf; + + this (CTabFolder ctf) + { + this.ctf = ctf; + } + public void widgetSelected(SelectionEvent e) { MenuItem menuItem = cast(MenuItem)e.widget; - int index = indexOf(cast(CTabItem)menuItem.getData(id)); - this.outer.setSelection(index, true); + int index = ctf.indexOf(cast(CTabItem)menuItem.getData(id)); + ctf.setSelection(index, true); } }); } diff -r 6ef64ef8df0a -r c41e13089a3c dwt/widgets/CoolItem.d --- a/dwt/widgets/CoolItem.d Thu Jun 04 23:55:22 2009 +0200 +++ b/dwt/widgets/CoolItem.d Fri Jun 05 01:25:10 2009 +0200 @@ -106,11 +106,10 @@ */ public this (CoolBar parent, int style) { super(parent, style); + itemBounds = new Rectangle(0, 0, 0, 0); this.parent = parent; parent.createItem (this, parent.getItemCount()); calculateChevronTrim (); - - itemBounds = new Rectangle(0, 0, 0, 0); } /** * Constructs a new instance of this class given its parent @@ -146,11 +145,10 @@ */ public this (CoolBar parent, int style, int index) { super(parent, style); + itemBounds = new Rectangle(0, 0, 0, 0); this.parent = parent; parent.createItem (this, index); calculateChevronTrim (); - - itemBounds = new Rectangle(0, 0, 0, 0); } /** * Adds the listener to the collection of listeners that will diff -r 6ef64ef8df0a -r c41e13089a3c dwt/widgets/Display.d --- a/dwt/widgets/Display.d Thu Jun 04 23:55:22 2009 +0200 +++ b/dwt/widgets/Display.d Fri Jun 05 01:25:10 2009 +0200 @@ -95,8 +95,6 @@ import dwt.widgets.Tray; import dwt.widgets.Widget; -import tango.io.Stdout; - /** * Instances of this class are responsible for managing the * connection between DWT and the underlying operating diff -r 6ef64ef8df0a -r c41e13089a3c dwt/widgets/TypedListener.d --- a/dwt/widgets/TypedListener.d Thu Jun 04 23:55:22 2009 +0200 +++ b/dwt/widgets/TypedListener.d Fri Jun 05 01:25:10 2009 +0200 @@ -299,7 +299,6 @@ } default: - assert(false); } }