Mercurial > projects > dwt-mac
changeset 143:c41e13089a3c
Fixes #21
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Fri, 05 Jun 2009 01:25:10 +0200 |
parents | 6ef64ef8df0a |
children | 476f8d5c0b07 |
files | dwt/custom/CTabFolder.d dwt/widgets/CoolItem.d dwt/widgets/Display.d dwt/widgets/TypedListener.d |
diffstat | 4 files changed, 47 insertions(+), 33 deletions(-) [+] |
line wrap: on
line diff
--- 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); } }); }
--- 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
--- 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