comparison dwt/custom/CTabFolder.d @ 143:c41e13089a3c

Fixes #21
author Jacob Carlborg <doob@me.com>
date Fri, 05 Jun 2009 01:25:10 +0200
parents 6337764516f1
children 1324fd764db4
comparison
equal deleted inserted replaced
142:6ef64ef8df0a 143:c41e13089a3c
351 updateTabHeight(false); 351 updateTabHeight(false);
352 352
353 initAccessible(); 353 initAccessible();
354 354
355 // Add all listeners 355 // Add all listeners
356 listener = new class() Listener { 356 listener = new class(this) Listener {
357 CTabFolder ctf;
358
359 this (CTabFolder ctf)
360 {
361 this.ctf = ctf;
362 }
363
357 public void handleEvent(Event event) { 364 public void handleEvent(Event event) {
358 switch (event.type) { 365 switch (event.type) {
359 case DWT.Dispose: onDispose(event); break; 366 case DWT.Dispose: ctf.onDispose(event); break;
360 case DWT.DragDetect: onDragDetect(event); break; 367 case DWT.DragDetect: ctf.onDragDetect(event); break;
361 case DWT.FocusIn: onFocus(event); break; 368 case DWT.FocusIn: ctf.onFocus(event); break;
362 case DWT.FocusOut: onFocus(event); break; 369 case DWT.FocusOut: ctf.onFocus(event); break;
363 case DWT.KeyDown: onKeyDown(event); break; 370 case DWT.KeyDown: ctf.onKeyDown(event); break;
364 case DWT.MouseDoubleClick: onMouseDoubleClick(event); break; 371 case DWT.MouseDoubleClick: ctf.onMouseDoubleClick(event); break;
365 case DWT.MouseDown: onMouse(event); break; 372 case DWT.MouseDown: ctf.onMouse(event); break;
366 case DWT.MouseEnter: onMouse(event); break; 373 case DWT.MouseEnter: ctf.onMouse(event); break;
367 case DWT.MouseExit: onMouse(event); break; 374 case DWT.MouseExit: ctf.onMouse(event); break;
368 case DWT.MouseMove: onMouse(event); break; 375 case DWT.MouseMove: ctf.onMouse(event); break;
369 case DWT.MouseUp: onMouse(event); break; 376 case DWT.MouseUp: ctf.onMouse(event); break;
370 case DWT.Paint: onPaint(event); break; 377 case DWT.Paint: ctf.onPaint(event); break;
371 case DWT.Resize: onResize(); break; 378 case DWT.Resize: ctf.onResize(); break;
372 case DWT.Traverse: onTraverse(event); break; 379 case DWT.Traverse: ctf.onTraverse(event); break;
373 default: 380 default:
374 } 381 }
375 } 382 }
376 }; 383 };
377 384
1827 } 1834 }
1828 e.children = children; 1835 e.children = children;
1829 } 1836 }
1830 }); 1837 });
1831 1838
1832 addListener(DWT.Selection, new class(accessible) Listener { 1839 addListener(DWT.Selection, new class(accessible, this) Listener {
1833 Accessible acc; 1840 Accessible accessible;
1834 this( Accessible a ){ 1841 CTabFolder ctf;
1835 this.acc = a; 1842
1836 } 1843 this (Accessible accessible, CTabFolder ctf)
1844 {
1845 this.accessible = accessible;
1846 this.ctf = ctf;
1847 }
1848
1837 public void handleEvent(Event event) { 1849 public void handleEvent(Event event) {
1838 if (isFocusControl()) { 1850 if (ctf.isFocusControl()) {
1839 if (selectedIndex is -1) { 1851 if (selectedIndex is -1) {
1840 acc.setFocus(ACC.CHILDID_SELF); 1852 accessible.setFocus(ACC.CHILDID_SELF);
1841 } else { 1853 } else {
1842 acc.setFocus(selectedIndex); 1854 accessible.setFocus(selectedIndex);
1843 } 1855 }
1844 } 1856 }
1845 } 1857 }
1846 }); 1858 });
1847 1859
1848 addListener(DWT.FocusIn, new class(accessible) Listener { 1860 addListener(DWT.FocusIn, new class(accessible) Listener {
1849 Accessible acc; 1861 Accessible acc;
1850 this( Accessible a ){ this.acc = a; } 1862 this( Accessible a ){ this.acc = a; }
1851 public void handleEvent(Event event) { 1863 public void handleEvent(Event event) {
1852 if (selectedIndex is -1) { 1864 if (selectedIndex is -1) {
3895 if (tab.showing) continue; 3907 if (tab.showing) continue;
3896 MenuItem item = new MenuItem(showMenu, DWT.NONE); 3908 MenuItem item = new MenuItem(showMenu, DWT.NONE);
3897 item.setText(tab.getText()); 3909 item.setText(tab.getText());
3898 item.setImage(tab.getImage()); 3910 item.setImage(tab.getImage());
3899 item.setData(id, tab); 3911 item.setData(id, tab);
3900 item.addSelectionListener(new class() SelectionAdapter { 3912 item.addSelectionListener(new class(this) SelectionAdapter {
3913 CTabFolder ctf;
3914
3915 this (CTabFolder ctf)
3916 {
3917 this.ctf = ctf;
3918 }
3919
3901 public void widgetSelected(SelectionEvent e) { 3920 public void widgetSelected(SelectionEvent e) {
3902 MenuItem menuItem = cast(MenuItem)e.widget; 3921 MenuItem menuItem = cast(MenuItem)e.widget;
3903 int index = indexOf(cast(CTabItem)menuItem.getData(id)); 3922 int index = ctf.indexOf(cast(CTabItem)menuItem.getData(id));
3904 this.outer.setSelection(index, true); 3923 ctf.setSelection(index, true);
3905 } 3924 }
3906 }); 3925 });
3907 } 3926 }
3908 int x = rect.x; 3927 int x = rect.x;
3909 int y = rect.y + rect.height; 3928 int y = rect.y + rect.height;