Mercurial > projects > dwt-mac
diff dwt/widgets/CoolBar.d @ 90:c7f7f4d7091a
All widgets are ported
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Tue, 30 Dec 2008 18:54:31 +0100 |
parents | a3f5118c8b37 |
children | 63a09873578e |
line wrap: on
line diff
--- a/dwt/widgets/CoolBar.d Tue Dec 30 17:01:10 2008 +0100 +++ b/dwt/widgets/CoolBar.d Tue Dec 30 18:54:31 2008 +0100 @@ -59,7 +59,7 @@ */ public class CoolBar : Composite { CoolItem[][] items; - CoolItem[] originalItems = new CoolItem[0]; + CoolItem[] originalItems; Cursor hoverCursor, dragCursor, cursor; CoolItem dragging = null; int mouseXOffset, itemXOffset; @@ -136,6 +136,8 @@ for (int i = 0; i < events.length; i++) { addListener(events[i], listener); } + + originalItems = new CoolItem[0]; } static int checkStyle (int style) { style |= DWT.NO_FOCUS; @@ -259,7 +261,7 @@ Point findItem (CoolItem item) { for (int row = 0; row < items.length; row++) { for (int i = 0; i < items[row].length; i++) { - if (items[row][i].equals(item)) return new Point(i, row); + if (items[row][i].opEquals(item)) return new Point(i, row); } } return new Point(-1, -1); @@ -308,7 +310,7 @@ int answer = 0; for (int row = 0; row < items.length; row++) { for (int i = 0; i < items[row].length; i++) { - if (items[row][i].equals(item)) { + if (items[row][i].opEquals(item)) { return answer; } else { answer++; @@ -386,7 +388,7 @@ int itemCount = getItemCount(), row = 0; if (!(0 <= index && index <= itemCount)) error (DWT.ERROR_INVALID_RANGE); if (items.length is 0) { - items = new CoolItem[1][1]; + items = new CoolItem[][](1, 1); items[0][0] = item; } else { int i = index; @@ -469,8 +471,8 @@ internalRedraw(old.x, old.y, CoolItem.MINIMUM_WIDTH, old.height); if (newRowIndex is items.length) { /* Create a new bottom row for the item. */ - CoolItem[][] newRows = new CoolItem[items.length + 1][]; - System.arraycopy(items, 0, newRows, 0, items.length); + CoolItem[][] newRows = new CoolItem[][](items.length + 1); + SimpleType!(CoolItem[]).arraycopy(items, 0, newRows, 0, items.length); int row = items.length; newRows[row] = new CoolItem[1]; newRows[row][0] = item; @@ -569,8 +571,8 @@ int newRowIndex = Math.max(0, oldRowIndex - 1); if (oldRowIndex is 0) { /* Create a new top row for the item. */ - CoolItem[][] newRows = new CoolItem[items.length + 1][]; - System.arraycopy(items, 0, newRows, 1, items.length); + CoolItem[][] newRows = new CoolItem[][](items.length + 1); + SimpleType!(CoolItem[]).arraycopy(items, 0, newRows, 1, items.length); newRows[0] = new CoolItem[1]; newRows[0][0] = item; items = newRows; @@ -805,9 +807,9 @@ items[rowIndex] = newRow; items[rowIndex][0].wrap = true; } else { - CoolItem[][] newRows = new CoolItem[items.length - 1][]; - System.arraycopy(items, 0, newRows, 0, rowIndex); - System.arraycopy(items, rowIndex + 1, newRows, rowIndex, newRows.length - rowIndex); + CoolItem[][] newRows = new CoolItem[][](items.length - 1); + SimpleType!(CoolItem[]).arraycopy(items, 0, newRows, 0, rowIndex); + SimpleType!(CoolItem[]).arraycopy(items, rowIndex + 1, newRows, rowIndex, newRows.length - rowIndex); items = newRows; return; } @@ -968,7 +970,7 @@ for (int i = 0; i < count; i++) { row[i] = originalItems[itemOrder[i]]; } - items = new CoolItem[1][count]; + items = new CoolItem[][](1, count); items[0] = row; } /** @@ -1164,7 +1166,7 @@ System.arraycopy(items[row], 0, itemsVisual, start, items[row].length); start += items[row].length; } - CoolItem[][] newItems = new CoolItem[itemCount][]; + CoolItem[][] newItems = new CoolItem[][](itemCount); int rowCount = 0, rowWidth = 0; start = 0; for (int i = 0; i < itemCount; i++) { @@ -1195,8 +1197,8 @@ rowCount++; } if (newItems.length !is rowCount) { - CoolItem[][] tmp = new CoolItem[rowCount][]; - System.arraycopy(newItems, 0, tmp, 0, rowCount); + CoolItem[][] tmp = new CoolItem[][](rowCount); + SimpleType!(CoolItem[]).arraycopy(newItems, 0, tmp, 0, rowCount); items = tmp; } else { items = newItems;