# HG changeset patch # User Frank Benoit # Date 1200957257 -3600 # Node ID 9a61fc56eb5695b2b6f027419239809742bb610b # Parent c3880d67f906e3a3d10d61ad615bd8d12d4837fa standard tabs complete diff -r c3880d67f906 -r 9a61fc56eb56 dwtexamples/controlexample/ControlExample.d --- a/dwtexamples/controlexample/ControlExample.d Mon Jan 21 23:52:45 2008 +0100 +++ b/dwtexamples/controlexample/ControlExample.d Tue Jan 22 00:14:17 2008 +0100 @@ -59,11 +59,9 @@ import dwtexamples.controlexample.TabFolderTab; import dwtexamples.controlexample.TableTab; import dwtexamples.controlexample.TextTab; -/+ import dwtexamples.controlexample.ToolBarTab; import dwtexamples.controlexample.ToolTipTab; import dwtexamples.controlexample.TreeTab; -+/ import tango.core.Exception; @@ -161,12 +159,10 @@ new SpinnerTab (this), new TabFolderTab (this), new TableTab (this), - new TextTab (this) - /+ + new TextTab (this), new ToolBarTab (this), new ToolTipTab (this), - new TreeTab (this), - +/ + new TreeTab (this) ]; } diff -r c3880d67f906 -r 9a61fc56eb56 dwtexamples/controlexample/Tab.d --- a/dwtexamples/controlexample/Tab.d Mon Jan 21 23:52:45 2008 +0100 +++ b/dwtexamples/controlexample/Tab.d Tue Jan 22 00:14:17 2008 +0100 @@ -71,6 +71,9 @@ import dwt.widgets.Table; import dwt.widgets.TableItem; import dwt.widgets.Text; +import dwt.widgets.Tree; +import dwt.widgets.TreeItem; +import dwt.widgets.ToolTip; import dwt.widgets.Widget; import dwt.widgets.Canvas; import dwt.widgets.CoolBar; @@ -329,6 +332,20 @@ createSetterGetter( ti, "TopIndex", typeid(int) ); reflectTypeInfos[ Text.classinfo ] = ti; } + { + ReflectTypeInfo ti; + createSetterGetter( ti, "Message", typeid(int) ); + createSetterGetter( ti, "Text", typeid(char[]) ); + reflectTypeInfos[ ToolTip.classinfo ] = ti; + } + { + ReflectTypeInfo ti; + createSetterGetter( ti, "ColumnOrder", typeid(int[]) ); + createSetterGetter( ti, "Selection", typeid(TreeItem[]) ); + createSetterGetter( ti, "ToolTipText", typeid(char[]) ); + createSetterGetter( ti, "TopItem", typeid(int) ); + reflectTypeInfos[ Tree.classinfo ] = ti; + } /+{ ReflectTypeInfo ti; diff -r c3880d67f906 -r 9a61fc56eb56 dwtexamples/controlexample/ToolBarTab.d --- a/dwtexamples/controlexample/ToolBarTab.d Mon Jan 21 23:52:45 2008 +0100 +++ b/dwtexamples/controlexample/ToolBarTab.d Tue Jan 22 00:14:17 2008 +0100 @@ -29,6 +29,10 @@ import dwt.widgets.ToolItem; import dwt.widgets.Widget; +import dwtexamples.controlexample.Tab; +import dwtexamples.controlexample.ControlExample; +import tango.util.Convert; + class ToolBarTab : Tab { /* Example widgets and groups that contain them */ ToolBar imageToolBar, textToolBar, imageTextToolBar; @@ -121,7 +125,7 @@ item.setToolTipText("DWT.SEPARATOR"); if (comboChildButton.getSelection ()) { Combo combo = new Combo (imageToolBar, DWT.NONE); - combo.setItems (new String [] {"250", "500", "750"}); + combo.setItems (["250", "500", "750"]); combo.setText (combo.getItem (0)); combo.pack (); item.setWidth (combo.getSize ().x); @@ -159,7 +163,7 @@ item.setToolTipText("DWT.SEPARATOR"); if (comboChildButton.getSelection ()) { Combo combo = new Combo (textToolBar, DWT.NONE); - combo.setItems (new String [] {"250", "500", "750"}); + combo.setItems (["250", "500", "750"]); combo.setText (combo.getItem (0)); combo.pack (); item.setWidth (combo.getSize ().x); @@ -204,7 +208,7 @@ item.setToolTipText("DWT.SEPARATOR"); if (comboChildButton.getSelection ()) { Combo combo = new Combo (imageTextToolBar, DWT.NONE); - combo.setItems (new String [] {"250", "500", "750"}); + combo.setItems (["250", "500", "750"]); combo.setText (combo.getItem (0)); combo.pack (); item.setWidth (combo.getSize ().x); @@ -235,7 +239,7 @@ comboChildButton.setText (ControlExample.getResourceString("Combo_child")); /* Add the listeners */ - comboChildButton.addSelectionListener (new SelectionAdapter () { + comboChildButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { recreateExampleWidgets (); } @@ -289,20 +293,20 @@ * Gets the "Example" widget children. */ Widget [] getExampleWidgets () { - return new Widget [] {imageToolBar, textToolBar, imageTextToolBar}; + return [ cast(Widget) imageToolBar, textToolBar, imageTextToolBar ]; } /** * Gets the short text for the tab folder item. */ - public String getShortTabText() { + public char[] getShortTabText() { return "TB"; } /** * Gets the text for the tab folder item. */ - String getTabText () { + char[] getTabText () { return "ToolBar"; } @@ -324,7 +328,7 @@ * Listens to widgetSelected() events on DWT.DROP_DOWN type ToolItems * and opens/closes a menu when appropriate. */ - class DropDownSelectionListener extends SelectionAdapter { + class DropDownSelectionListener : SelectionAdapter { private Menu menu = null; private bool visible = false; @@ -334,15 +338,15 @@ // Lazy create the menu. menu = new Menu(shell); for (int i = 0; i < 9; ++i) { - final String text = ControlExample.getResourceString("DropDownData_" + i); - if (text.length() !is 0) { + final char[] text = ControlExample.getResourceString("DropDownData_" ~ to!(char[])(i)); + if (text.length !is 0) { MenuItem menuItem = new MenuItem(menu, DWT.NONE); menuItem.setText(text); /* * Add a menu selection listener so that the menu is hidden * when the user selects an item from the drop down menu. */ - menuItem.addSelectionListener(new SelectionAdapter() { + menuItem.addSelectionListener(new class() SelectionAdapter { public void widgetSelected(SelectionEvent e) { setMenuVisible(false); } @@ -368,7 +372,7 @@ setMenuVisible(false); } else { // Position the menu below and vertically aligned with the the drop down tool button. - final ToolItem toolItem = (ToolItem) event.widget; + final ToolItem toolItem = cast(ToolItem) event.widget; final ToolBar toolBar = toolItem.getParent(); Rectangle toolItemBounds = toolItem.getBounds(); diff -r c3880d67f906 -r 9a61fc56eb56 dwtexamples/controlexample/ToolTipTab.d --- a/dwtexamples/controlexample/ToolTipTab.d Mon Jan 21 23:52:45 2008 +0100 +++ b/dwtexamples/controlexample/ToolTipTab.d Tue Jan 22 00:14:17 2008 +0100 @@ -30,6 +30,9 @@ import dwt.widgets.TrayItem; import dwt.widgets.Widget; +import dwtexamples.controlexample.Tab; +import dwtexamples.controlexample.ControlExample; + class ToolTipTab : Tab { /* Example widgets and groups that contain them */ @@ -65,7 +68,7 @@ toolTipGroup.setText ("ToolTip"); visibleButton = new Button(toolTipGroup, DWT.CHECK); visibleButton.setText(ControlExample.getResourceString("Visible")); - visibleButton.addSelectionListener (new SelectionAdapter () { + visibleButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setExampleWidgetVisibility (); } @@ -105,7 +108,7 @@ * its preferred size, and then resizes the shell, we * recalculate the preferred size correctly. */ - tabFolderPage.addControlListener(new ControlAdapter() { + tabFolderPage.addControlListener(new class() ControlAdapter { public void controlResized(ControlEvent e) { setExampleWidgetSize (); } @@ -153,17 +156,17 @@ showInTrayButton.setEnabled(tray !is null); /* Add the listeners */ - autoHideButton.addSelectionListener (new SelectionAdapter () { + autoHideButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setExampleWidgetAutoHide (); } }); - showInTrayButton.addSelectionListener (new SelectionAdapter () { + showInTrayButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { showExampleWidgetInTray (); } }); - shell.addDisposeListener(new DisposeListener() { + shell.addDisposeListener(new class() DisposeListener { public void widgetDisposed(DisposeEvent event) { disposeTrayItem(); } @@ -190,21 +193,21 @@ */ // Tab uses this for many things - widgets would only get set/get, listeners, and dispose. Widget[] getExampleWidgets () { - return new Widget [] {toolTip1}; + return [ cast(Widget) toolTip1 ]; } /** * Returns a list of set/get API method names (without the set/get prefix) * that can be used to set/get values in the example control(s). */ - String[] getMethodNames() { - return new String[] {"Message", "Text"}; + char[][] getMethodNames() { + return ["Message", "Text"]; } /** * Gets the text for the tab folder item. */ - String getTabText () { + char[] getTabText () { return "ToolTip"; } diff -r c3880d67f906 -r 9a61fc56eb56 dwtexamples/controlexample/TreeTab.d --- a/dwtexamples/controlexample/TreeTab.d Mon Jan 21 23:52:45 2008 +0100 +++ b/dwtexamples/controlexample/TreeTab.d Tue Jan 22 00:14:17 2008 +0100 @@ -38,6 +38,13 @@ import dwt.widgets.TreeItem; import dwt.widgets.Widget; +import dwtexamples.controlexample.Tab; +import dwtexamples.controlexample.ControlExample; +import dwtexamples.controlexample.ScrollableTab; +import tango.text.convert.Format; +import tango.util.Convert; +import tango.core.Exception; + class TreeTab : ScrollableTab { /* Example widgets and groups that contain them */ Tree tree1, tree2; @@ -54,33 +61,18 @@ Button multipleColumns, moveableColumns, resizableColumns, headerVisibleButton, sortIndicatorButton, headerImagesButton, subImagesButton, linesVisibleButton; /* Controls and resources added to the "Colors and Fonts" group */ - static final int ITEM_FOREGROUND_COLOR = 3; - static final int ITEM_BACKGROUND_COLOR = 4; - static final int ITEM_FONT = 5; - static final int CELL_FOREGROUND_COLOR = 6; - static final int CELL_BACKGROUND_COLOR = 7; - static final int CELL_FONT = 8; + static const int ITEM_FOREGROUND_COLOR = 3; + static const int ITEM_BACKGROUND_COLOR = 4; + static const int ITEM_FONT = 5; + static const int CELL_FOREGROUND_COLOR = 6; + static const int CELL_BACKGROUND_COLOR = 7; + static const int CELL_FONT = 8; Color itemForegroundColor, itemBackgroundColor, cellForegroundColor, cellBackgroundColor; Font itemFont, cellFont; - static String [] columnTitles = {ControlExample.getResourceString("TableTitle_0"), - ControlExample.getResourceString("TableTitle_1"), - ControlExample.getResourceString("TableTitle_2"), - ControlExample.getResourceString("TableTitle_3")}; + static char[] [] columnTitles; - static String[][] tableData = { - { ControlExample.getResourceString("TableLine0_0"), - ControlExample.getResourceString("TableLine0_1"), - ControlExample.getResourceString("TableLine0_2"), - ControlExample.getResourceString("TableLine0_3") }, - { ControlExample.getResourceString("TableLine1_0"), - ControlExample.getResourceString("TableLine1_1"), - ControlExample.getResourceString("TableLine1_2"), - ControlExample.getResourceString("TableLine1_3") }, - { ControlExample.getResourceString("TableLine2_0"), - ControlExample.getResourceString("TableLine2_1"), - ControlExample.getResourceString("TableLine2_2"), - ControlExample.getResourceString("TableLine2_3") } }; + static char[][][] tableData; Point menuMouseCoords; @@ -89,6 +81,28 @@ */ this(ControlExample instance) { super(instance); + if( columnTitles.length is 0 ){ + columnTitles = [ + ControlExample.getResourceString("TableTitle_0"), + ControlExample.getResourceString("TableTitle_1"), + ControlExample.getResourceString("TableTitle_2"), + ControlExample.getResourceString("TableTitle_3")]; + } + if( tableData.length is 0 ){ + tableData = [ + [ ControlExample.getResourceString("TableLine0_0"), + ControlExample.getResourceString("TableLine0_1"), + ControlExample.getResourceString("TableLine0_2"), + ControlExample.getResourceString("TableLine0_3") ], + [ ControlExample.getResourceString("TableLine1_0"), + ControlExample.getResourceString("TableLine1_1"), + ControlExample.getResourceString("TableLine1_2"), + ControlExample.getResourceString("TableLine1_3") ], + [ ControlExample.getResourceString("TableLine2_0"), + ControlExample.getResourceString("TableLine2_1"), + ControlExample.getResourceString("TableLine2_2"), + ControlExample.getResourceString("TableLine2_3") ] ]; + } } /** @@ -110,7 +124,7 @@ item = new TableItem(colorAndFontTable, DWT.None); item.setText(ControlExample.getResourceString ("Cell_Font")); - shell.addDisposeListener(new DisposeListener() { + shell.addDisposeListener(new class() DisposeListener { public void widgetDisposed(DisposeEvent event) { if (itemBackgroundColor !is null) itemBackgroundColor.dispose(); if (itemForegroundColor !is null) itemForegroundColor.dispose(); @@ -234,42 +248,42 @@ subImagesButton.setText (ControlExample.getResourceString("Sub_Images")); /* Add the listeners */ - linesVisibleButton.addSelectionListener (new SelectionAdapter () { + linesVisibleButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setWidgetLinesVisible (); } }); - multipleColumns.addSelectionListener (new SelectionAdapter () { + multipleColumns.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { recreateExampleWidgets (); } }); - headerVisibleButton.addSelectionListener (new SelectionAdapter () { + headerVisibleButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setWidgetHeaderVisible (); } }); - sortIndicatorButton.addSelectionListener (new SelectionAdapter () { + sortIndicatorButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setWidgetSortIndicator (); } }); - moveableColumns.addSelectionListener (new SelectionAdapter () { + moveableColumns.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setColumnsMoveable (); } }); - resizableColumns.addSelectionListener (new SelectionAdapter () { + resizableColumns.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { setColumnsResizable (); } }); - headerImagesButton.addSelectionListener (new SelectionAdapter () { + headerImagesButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { recreateExampleWidgets (); } }); - subImagesButton.addSelectionListener (new SelectionAdapter () { + subImagesButton.addSelectionListener (new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { recreateExampleWidgets (); } @@ -316,16 +330,16 @@ for (int i = 0; i < columnTitles.length; i++) { TreeColumn treeColumn = new TreeColumn(tree1, DWT.NONE); treeColumn.setText(columnTitles[i]); - treeColumn.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {columnTitles[i]})); + treeColumn.setToolTipText(Format( ControlExample.getResourceString("Tooltip") , columnTitles[i])); } tree1.setSortColumn(tree1.getColumn(0)); } for (int i = 0; i < 4; i++) { TreeItem item = new TreeItem (tree1, DWT.NONE); - setItemText(item, i, ControlExample.getResourceString("Node_" + (i + 1))); + setItemText(item, i, ControlExample.getResourceString("Node_" ~ to!(char[])(i + 1))); if (i < 3) { TreeItem subitem = new TreeItem (item, DWT.NONE); - setItemText(subitem, i, ControlExample.getResourceString("Node_" + (i + 1) + "_1")); + setItemText(subitem, i, ControlExample.getResourceString("Node_" ~ to!(char[])(i + 1) ~ "_1")); } } TreeItem treeRoots[] = tree1.getItems (); @@ -347,13 +361,13 @@ for (int i = 0; i < columnTitles.length; i++) { TreeColumn treeColumn = new TreeColumn(tree2, DWT.NONE); treeColumn.setText(columnTitles[i]); - treeColumn.setToolTipText(ControlExample.getResourceString("Tooltip", new String [] {columnTitles[i]})); + treeColumn.setToolTipText(Format( ControlExample.getResourceString("Tooltip"), columnTitles[i])); if (headerImagesButton.getSelection()) treeColumn.setImage(image); } } for (int i = 0; i < 4; i++) { item = new TreeItem (tree2, DWT.NONE); - setItemText(item, i, ControlExample.getResourceString("Node_" + (i + 1))); + setItemText(item, i, ControlExample.getResourceString("Node_" ~ to!(char[])(i + 1))); if (multiColumn && subImagesButton.getSelection()) { for (int j = 0; j < columnTitles.length; j++) { item.setImage(j, image); @@ -363,7 +377,7 @@ } if (i < 3) { TreeItem subitem = new TreeItem (item, DWT.NONE); - setItemText(subitem, i, ControlExample.getResourceString("Node_" + (i + 1) + "_1")); + setItemText(subitem, i, ControlExample.getResourceString("Node_" ~ to!(char[])(i + 1) ~ "_1")); if (multiColumn && subImagesButton.getSelection()) { for (int j = 0; j < columnTitles.length; j++) { subitem.setImage(j, image); @@ -396,7 +410,7 @@ packColumns(tree2); } - void setItemText(TreeItem item, int i, String node) { + void setItemText(TreeItem item, int i, char[] node) { int index = i % 3; if (multipleColumns.getSelection()) { tableData [index][0] = node; @@ -416,7 +430,7 @@ packColumnsButton = new Button (sizeGroup, DWT.PUSH); packColumnsButton.setText (ControlExample.getResourceString("Pack_Columns")); - packColumnsButton.addSelectionListener(new SelectionAdapter () { + packColumnsButton.addSelectionListener(new class() SelectionAdapter { public void widgetSelected (SelectionEvent event) { packColumns (tree1); packColumns (tree2); @@ -460,24 +474,26 @@ * Gets the "Example" widget children. */ Widget [] getExampleWidgets () { - return new Widget [] {tree1, tree2}; + return [ cast(Widget) tree1, tree2 ]; } /** * Returns a list of set/get API method names (without the set/get prefix) * that can be used to set/get values in the example control(s). */ - String[] getMethodNames() { - return new String[] {"ColumnOrder", "Selection", "ToolTipText", "TopItem"}; + char[][] getMethodNames() { + return ["ColumnOrder", "Selection", "ToolTipText", "TopItem"]; } - Object[] parameterForType(String typeName, String value, Widget widget) { +//PORTING_LEFT +/+ + Object[] parameterForType(char[] typeName, char[] value, Widget widget) { if (typeName.equals("org.eclipse.swt.widgets.TreeItem")) { TreeItem item = findItem(value, ((Tree) widget).getItems()); if (item !is null) return new Object[] {item}; } if (typeName.equals("[Lorg.eclipse.swt.widgets.TreeItem;")) { - String[] values = split(value, ','); + char[][] values = split(value, ','); TreeItem[] items = new TreeItem[values.length]; for (int i = 0; i < values.length; i++) { TreeItem item = findItem(values[i], ((Tree) widget).getItems()); @@ -488,11 +504,11 @@ } return super.parameterForType(typeName, value, widget); } - - TreeItem findItem(String value, TreeItem[] items) { ++/ + TreeItem findItem(char[] value, TreeItem[] items) { for (int i = 0; i < items.length; i++) { TreeItem item = items[i]; - if (item.getText().equals(value)) return item; + if (item.getText() == value ) return item; item = findItem(value, item.getItems()); if (item !is null) return item; } @@ -502,7 +518,7 @@ /** * Gets the text for the tab folder item. */ - String getTabText () { + char[] getTabText () { return "Tree"; } @@ -742,38 +758,40 @@ * Sets the initial sort indicator state and adds a listener * to cycle through sort states and columns. */ - void initializeSortState (final Tree tree) { + void initializeSortState (Tree tree) { /* Reset to known state: 'down' on column 0. */ tree.setSortDirection (DWT.DOWN); TreeColumn [] columns = tree.getColumns(); for (int i = 0; i < columns.length; i++) { TreeColumn column = columns[i]; if (i is 0) tree.setSortColumn(column); - SelectionListener listener = new SelectionAdapter() { + SelectionListener listener = new class(tree) SelectionAdapter { + Tree t; + this( Tree t ){ this.t = t; } public void widgetSelected(SelectionEvent e) { int sortDirection = DWT.DOWN; - if (e.widget is tree.getSortColumn()) { + if (e.widget is t.getSortColumn()) { /* If the sort column hasn't changed, cycle down -> up -> none. */ - switch (tree.getSortDirection ()) { + switch (t.getSortDirection ()) { case DWT.DOWN: sortDirection = DWT.UP; break; case DWT.UP: sortDirection = DWT.NONE; break; } } else { - tree.setSortColumn((TreeColumn)e.widget); + t.setSortColumn(cast(TreeColumn)e.widget); } - tree.setSortDirection (sortDirection); + t.setSortDirection (sortDirection); } }; column.addSelectionListener(listener); - column.setData("SortListener", listener); //$NON-NLS-1$ + column.setData("SortListener", cast(Object)listener); //$NON-NLS-1$ } } - void resetSortState (final Tree tree) { + void resetSortState (Tree tree) { tree.setSortDirection (DWT.NONE); TreeColumn [] columns = tree.getColumns(); for (int i = 0; i < columns.length; i++) { - SelectionListener listener = (SelectionListener)columns[i].getData("SortListener"); //$NON-NLS-1$ + SelectionListener listener = cast(SelectionListener)columns[i].getData("SortListener"); //$NON-NLS-1$ if (listener !is null) columns[i].removeSelectionListener(listener); } } @@ -789,11 +807,13 @@ protected void specialPopupMenuItems(Menu menu, Event event) { MenuItem item = new MenuItem(menu, DWT.PUSH); item.setText("getItem(Point) on mouse coordinates"); - final Tree t = (Tree) event.widget; + Tree t = cast(Tree) event.widget; menuMouseCoords = t.toControl(new Point(event.x, event.y)); - item.addSelectionListener(new SelectionAdapter() { + item.addSelectionListener(new class(t) SelectionAdapter { + Tree t; + this( Tree t ){ this.t = t; } public void widgetSelected(SelectionEvent e) { - eventConsole.append ("getItem(Point(" + menuMouseCoords + ")) returned: " + t.getItem(menuMouseCoords)); + eventConsole.append ("getItem(Point(" ~ menuMouseCoords.toString ~ ")) returned: " ~ (this.t.getItem(menuMouseCoords)).toString); eventConsole.append ("\n"); }; });