# HG changeset patch # User Frank Benoit # Date 1211602735 -7200 # Node ID e193036d82c9b46a9c7b80d244fcfe745dfabca1 # Parent 5d489b9f966c6a8471f9d27d7be4f933c8b0e44b Fix continue porting diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/forms/widgets/ToggleHyperlink.d --- a/dwtx/ui/forms/widgets/ToggleHyperlink.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/forms/widgets/ToggleHyperlink.d Sat May 24 06:18:55 2008 +0200 @@ -13,6 +13,7 @@ module dwtx.ui.forms.widgets.ToggleHyperlink; import dwtx.ui.forms.widgets.AbstractHyperlink; +import dwtx.ui.forms.widgets.ExpandableComposite; import dwt.DWT; import dwt.accessibility.ACC; @@ -193,7 +194,7 @@ name ~= Messages.ToggleHyperlink_accessibleColumn ~ (cast(ExpandableComposite)getParent()).getText(); int index = name.indexOf('&'); if (index !is -1) { - name = name.substring(0, index) + name.substring(index + 1); + name = name.substring(0, index) ~ name.substring(index + 1); } } e.result = name; @@ -245,14 +246,14 @@ }); } private void onKeyDown(Event e) { - if (e.keyCodeisDWT.ARROW_RIGHT) { + if (e.keyCode is DWT.ARROW_RIGHT) { // expand if collapsed if (!isExpanded()) { handleActivate(e); } e.doit=false; } - else if (e.keyCodeisDWT.ARROW_LEFT) { + else if (e.keyCode is DWT.ARROW_LEFT) { // collapse if expanded if (isExpanded()) { handleActivate(e); diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/MessageManager.d --- a/dwtx/ui/internal/forms/MessageManager.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/MessageManager.d Sat May 24 06:18:55 2008 +0200 @@ -35,15 +35,16 @@ import tango.util.collection.ArraySeq; import tango.util.collection.HashMap; import tango.util.Convert; - +import tango.text.Text; +import tango.io.FileConst; /** * @see IMessageManager */ public class MessageManager : IMessageManager { - private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER_; - private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER(){ + private static DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER_; + private static DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER(){ if( DEFAULT_PREFIX_PROVIDER_ is null ){ synchronized(MessageManager.classinfo){ if( DEFAULT_PREFIX_PROVIDER_ is null ){ @@ -99,17 +100,22 @@ return standardInformation_; } - private static const String[] SINGLE_MESSAGE_SUMMARY_KEYS = [ + private static String[] SINGLE_MESSAGE_SUMMARY_KEYS; + private static String[] MULTIPLE_MESSAGE_SUMMARY_KEYS; + + static this(){ + SINGLE_MESSAGE_SUMMARY_KEYS = [ Messages.MessageManager_sMessageSummary, Messages.MessageManager_sMessageSummary, Messages.MessageManager_sWarningSummary, Messages.MessageManager_sErrorSummary ]; - private static const String[] MULTIPLE_MESSAGE_SUMMARY_KEYS = [ + MULTIPLE_MESSAGE_SUMMARY_KEYS = [ Messages.MessageManager_pMessageSummary, Messages.MessageManager_pMessageSummary, Messages.MessageManager_pWarningSummary, Messages.MessageManager_pErrorSummary ]; + } static class Message : IMessage { Control control; @@ -215,10 +221,11 @@ class ControlDecorator { private ControlDecoration decoration; - private ArraySeq!(Message) controlMessages = new ArraySeq!(Message); + private ArraySeq!(Object) controlMessages; private String prefix; this(Control control) { + controlMessages = new ArraySeq!(Object); this.decoration = new ControlDecoration(control, decorationPosition, scrolledForm.getBody()); } @@ -255,7 +262,9 @@ } void addAll(ArraySeq!(Object) target) { - target.addAll(controlMessages); + foreach( o; controlMessages ){ + target.append(o); + } } void addMessage(Object key, String text, Object data, int type) { @@ -277,7 +286,7 @@ } bool removeMessages() { - if (controlMessages.isEmpty()) + if (controlMessages.drained()) return false; controlMessages.clear(); if (isAutoUpdate()) @@ -286,7 +295,7 @@ } public void update() { - if (controlMessages.isEmpty()) { + if (controlMessages.drained()) { decoration.setDescriptionText(null); decoration.hide(); } else { @@ -343,7 +352,7 @@ if (dec is null) { dec = new ControlDecorator(control); - decorators.put(control, dec); + decorators.add(control, dec); } dec.addMessage(key, messageText, data, type); if (isAutoUpdate()) @@ -370,7 +379,7 @@ * @see dwtx.ui.forms.IMessageManager#removeMessages() */ public void removeMessages() { - if (!messages.isEmpty()) { + if (!messages.drained()) { messages.clear(); if (isAutoUpdate()) updateForm(); @@ -414,12 +423,12 @@ */ public void removeAllMessages() { bool needsUpdate = false; - for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { - ControlDecorator control = cast(ControlDecorator) enm.nextElement(); + foreach( v; decorators ){ + ControlDecorator control = cast(ControlDecorator) v; if (control.removeMessages()) needsUpdate = true; } - if (!messages.isEmpty()) { + if (!messages.drained()) { messages.clear(); needsUpdate = true; } @@ -437,7 +446,7 @@ if (message is null) { message = new Message(key, messageText, type, data); message.prefix = prefix; - list.add(message); + list.append(message); } else { message.message = messageText; message.type = type; @@ -453,7 +462,7 @@ private Message findMessage(Object key, ArraySeq!(Object) list) { for (int i = 0; i < list.size(); i++) { Message message = cast(Message) list.get(i); - if (message.getKey().equals(key)) + if (message.getKey().opEquals(key)) return message; } return null; @@ -466,8 +475,8 @@ */ public void update() { // Update decorations - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( v; decorators ){ + ControlDecorator dec = cast(ControlDecorator) v; dec.update(); } // Update the form @@ -479,10 +488,12 @@ */ private void updateForm() { - ArrayList mergedList = new ArrayList(); - mergedList.addAll(messages); - for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) { - ControlDecorator dec = cast(ControlDecorator) enm.nextElement(); + ArraySeq!(Object) mergedList = new ArraySeq!(Object); + foreach( o; messages ){ + mergedList.append(o); + } + foreach( v; decorators ){ + ControlDecorator dec = cast(ControlDecorator) v; dec.addAll(mergedList); } update(mergedList); @@ -490,7 +501,7 @@ private void update(ArraySeq!(Object) mergedList) { pruneControlDecorators(); - if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.isEmpty() || mergedList is null) { + if (scrolledForm.getForm().getHead().getBounds().height is 0 || mergedList.drained() || mergedList is null) { scrolledForm.setMessage(null, IMessageProvider.NONE); return; } @@ -520,13 +531,14 @@ private static String getFullMessage(IMessage message) { if (message.getPrefix() is null) return message.getMessage(); - return message.getPrefix() + message.getMessage(); + return message.getPrefix() ~ message.getMessage(); } - private ArraySeq!(Message) createPeers(ArraySeq!(Message) messages) { - auto peers = new ArraySeq!(Message); + private ArraySeq!(Object) createPeers(ArraySeq!(Object) messages) { + auto peers = new ArraySeq!(Object); int maxType = 0; - foreach( message; messages ){ + foreach( o; messages ){ + auto message = cast(Message)o; if (message.type > maxType) { peers.clear(); maxType = message.type; @@ -538,32 +550,28 @@ } private String createDetails(ArraySeq!(Object) messages, bool excludePrefix) { - StringWriter sw = new StringWriter(); - PrintWriter out_ = new PrintWriter(sw); + auto txt = new tango.text.Text.Text!(char); for (int i = 0; i < messages.size(); i++) { if (i > 0) - out_.println(); + txt.append( FileConst.NewlineString ); IMessage m = cast(IMessage) messages.get(i); - out_.print(excludePrefix ? m.getMessage() : getFullMessage(m)); + txt.append(excludePrefix ? m.getMessage() : getFullMessage(m)); } - out_.flush(); - return sw.toString(); + return txt.toString(); } public static String createDetails(IMessage[] messages) { if (messages is null || messages.length is 0) return null; - StringWriter sw = new StringWriter(); - PrintWriter out_ = new PrintWriter(sw); + auto txt = new tango.text.Text.Text!(char); for (int i = 0; i < messages.length; i++) { if (i > 0) - out_.println(); - out_.print(getFullMessage(messages[i])); + txt.append( FileConst.NewlineString ); + txt.append(getFullMessage(messages[i])); } - out_.flush(); - return sw.toString(); + return txt.toString(); } /* @@ -576,10 +584,10 @@ } private void pruneControlDecorators() { - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators.dup ){ + ControlDecorator dec = cast(ControlDecorator) o; if (dec.isDisposed()) - iter.remove(); + decorators.remove(o); } } @@ -599,8 +607,8 @@ */ public void setMessagePrefixProvider(IMessagePrefixProvider provider) { this.prefixProvider = provider; - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators ){ + ControlDecorator dec = cast(ControlDecorator) o; dec.updatePrefix(); } } @@ -621,8 +629,8 @@ */ public void setDecorationPosition(int position) { this.decorationPosition = position; - for (Iterator iter = decorators.values().iterator(); iter.hasNext();) { - ControlDecorator dec = cast(ControlDecorator) iter.next(); + foreach( o; decorators ){ + ControlDecorator dec = cast(ControlDecorator) o; dec.updatePosition(); } } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d --- a/dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/AggregateHyperlinkSegment.d Sat May 24 06:18:55 2008 +0200 @@ -12,37 +12,45 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.AggregateHyperlinkSegment; -import java.util.Hashtable; -import java.util.Vector; +import dwtx.ui.internal.forms.widgets.ParagraphSegment; +import dwtx.ui.internal.forms.widgets.IHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.TextHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.ImageHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.Locator; +import dwtx.ui.internal.forms.widgets.SelectionData; import dwt.graphics.Color; import dwt.graphics.GC; import dwt.graphics.Rectangle; +import dwt.dwthelper.utils; +import tango.util.collection.ArraySeq; + /** * This segment contains a collection of images and links that all belong to one * logical hyperlink. */ -public class AggregateHyperlinkSegment extends ParagraphSegment implements +public class AggregateHyperlinkSegment : ParagraphSegment, IHyperlinkSegment { private String href; - private Vector segments = new Vector(); + private ArraySeq!(Object) segments; - public AggregateHyperlinkSegment() { + public this() { + segments = new ArraySeq!(Object); } public void add(TextHyperlinkSegment segment) { - segments.add(segment); + segments.append(segment); } public void add(ImageHyperlinkSegment segment) { - segments.add(segment); + segments.append(segment); } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#advanceLocator(dwt.graphics.GC, * int, dwtx.ui.internal.forms.widgets.Locator, * java.util.Hashtable, bool) @@ -51,7 +59,7 @@ Hashtable objectTable, bool computeHeightOnly) { bool newLine = false; for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); if (segment.advanceLocator(gc, wHint, loc, objectTable, computeHeightOnly)) newLine = true; @@ -76,14 +84,14 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#repaint(dwt.graphics.GC, * bool) */ public void paint(GC gc, bool hover, Hashtable resourceTable, bool selected, SelectionData selData, Rectangle repaintRegion) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.paint(gc, hover, resourceTable, selected, selData, repaintRegion); } @@ -92,7 +100,7 @@ public String getText() { StringBuffer buf = new StringBuffer(); for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); buf.append(segment.getText()); } return buf.toString(); @@ -100,7 +108,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#paintFocus(dwt.graphics.GC, * dwt.graphics.Color, dwt.graphics.Color, * bool) @@ -108,14 +116,14 @@ public void paintFocus(GC gc, Color bg, Color fg, bool selected, Rectangle repaintRegion) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); segment.paintFocus(gc, bg, fg, selected, repaintRegion); } } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#getBounds() */ public Rectangle getBounds() { @@ -123,7 +131,7 @@ 0, 0); // TODO this is wrong for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); Rectangle sbounds = segment.getBounds(); bounds.x = Math.min(bounds.x, sbounds.x); bounds.y = Math.min(bounds.y, sbounds.y); @@ -135,7 +143,7 @@ public bool contains(int x, int y) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); if (segment.contains(x, y)) return true; } @@ -144,7 +152,7 @@ public bool intersects(Rectangle rect) { for (int i = 0; i < segments.size(); i++) { - IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i); + IHyperlinkSegment segment = cast(IHyperlinkSegment) segments.get(i); if (segment.intersects(rect)) return true; } @@ -153,7 +161,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#layout(dwt.graphics.GC, * int, dwtx.ui.internal.forms.widgets.Locator, * java.util.Hashtable, bool, @@ -162,14 +170,14 @@ public void layout(GC gc, int width, Locator locator, Hashtable resourceTable, bool selected) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.layout(gc, width, locator, resourceTable, selected); } } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.ParagraphSegment#computeSelection(dwt.graphics.GC, * java.util.Hashtable, bool, * dwtx.ui.internal.forms.widgets.SelectionData) @@ -177,21 +185,21 @@ public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.computeSelection(gc, resourceTable, selData); } } public void clearCache(String fontId) { for (int i = 0; i < segments.size(); i++) { - ParagraphSegment segment = (ParagraphSegment) segments.get(i); + ParagraphSegment segment = cast(ParagraphSegment) segments.get(i); segment.clearCache(fontId); } } public String getTooltipText() { if (segments.size() > 0) - return ((ParagraphSegment) segments.get(0)).getTooltipText(); + return (cast(ParagraphSegment) segments.get(0)).getTooltipText(); return super.getTooltipText(); } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/BreakSegment.d --- a/dwtx/ui/internal/forms/widgets/BreakSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/BreakSegment.d Sat May 24 06:18:55 2008 +0200 @@ -12,28 +12,34 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.BreakSegment; -import java.util.Hashtable; +import dwtx.ui.internal.forms.widgets.ParagraphSegment; +import dwtx.ui.internal.forms.widgets.Locator; +import dwtx.ui.internal.forms.widgets.SelectionData; + +//import java.util.Hashtable; import dwt.graphics.FontMetrics; import dwt.graphics.GC; import dwt.graphics.Rectangle; +import dwt.dwthelper.utils; + /** * This segment serves as break within a paragraph. It has no data - * just starts a new line and resets the locator. */ -public class BreakSegment extends ParagraphSegment { +public class BreakSegment : ParagraphSegment { /* (non-Javadoc) * @see dwtx.ui.forms.internal.widgets.ParagraphSegment#advanceLocator(dwt.graphics.GC, int, dwtx.ui.forms.internal.widgets.Locator, java.util.Hashtable) */ public bool advanceLocator(GC gc, int wHint, Locator locator, Hashtable objectTable, bool computeHeightOnly) { - if (locator.rowHeightis0) { + if (locator.rowHeight is 0) { FontMetrics fm = gc.getFontMetrics(); locator.rowHeight = fm.getHeight(); } - if (computeHeightOnly) locator.collectHeights(); + if (computeHeightOnly) locator.collectHeights(); locator.x = locator.indent; locator.y += locator.rowHeight; locator.rowHeight = 0; @@ -56,13 +62,13 @@ public void layout(GC gc, int width, Locator locator, Hashtable ResourceTable, bool selected) { locator.resetCaret(); - if (locator.rowHeightis0) { + if (locator.rowHeight is 0) { FontMetrics fm = gc.getFontMetrics(); locator.rowHeight = fm.getHeight(); } locator.y += locator.rowHeight; locator.rowHeight = 0; - locator.rowCounter++; + locator.rowCounter++; } /* (non-Javadoc) diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/BulletParagraph.d --- a/dwtx/ui/internal/forms/widgets/BulletParagraph.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/BulletParagraph.d Sat May 24 06:18:55 2008 +0200 @@ -12,7 +12,12 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.BulletParagraph; -import java.util.Hashtable; +import dwtx.ui.internal.forms.widgets.Paragraph; +import dwtx.ui.internal.forms.widgets.Locator; +import dwtx.ui.internal.forms.widgets.SelectionData; +import dwtx.ui.internal.forms.widgets.IHyperlinkSegment; + +//import java.util.Hashtable; import dwt.graphics.Color; import dwt.graphics.GC; @@ -20,12 +25,14 @@ import dwt.graphics.Point; import dwt.graphics.Rectangle; -public class BulletParagraph extends Paragraph { - public static final int CIRCLE = 1; +import dwt.dwthelper.utils; - public static final int TEXT = 2; +public class BulletParagraph : Paragraph { + public static const int CIRCLE = 1; - public static final int IMAGE = 3; + public static const int TEXT = 2; + + public static const int IMAGE = 3; private int style = CIRCLE; @@ -43,10 +50,10 @@ /** * Constructor for BulletParagraph. - * + * * @param addVerticalSpace */ - public BulletParagraph(bool addVerticalSpace) { + public this(bool addVerticalSpace) { super(addVerticalSpace); } @@ -118,7 +125,7 @@ private void layoutBullet(GC gc, Locator loc, int lineHeight, Hashtable resourceTable) { int x = loc.x - getIndent() + getBulletIndent(); - int rowHeight = ((int[]) loc.heights.get(0))[0]; + int rowHeight = (cast(ArrayWrapperInt) loc.heights.get(0)).array[0]; if (style is CIRCLE) { int y = loc.y + rowHeight / 2 - CIRCLE_DIAM / 2; bbounds = new Rectangle(x, y, CIRCLE_DIAM, CIRCLE_DIAM); @@ -127,7 +134,7 @@ Point textSize = gc.textExtent(text); bbounds = new Rectangle(x, loc.y, textSize.x, textSize.y); } else if (style is IMAGE && text !is null) { - Image image = (Image) resourceTable.get(text); + Image image = cast(Image) resourceTable.get(text); if (image !is null) { Rectangle ibounds = image.getBounds(); int y = loc.y + rowHeight / 2 - ibounds.height / 2; @@ -156,7 +163,7 @@ } else if (style is TEXT && text !is null) { gc.drawText(text, x, y); } else if (style is IMAGE && text !is null) { - Image image = (Image) resourceTable.get(text); + Image image = cast(Image) resourceTable.get(text); if (image !is null) gc.drawImage(image, x, y); } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/BusyIndicator.d --- a/dwtx/ui/internal/forms/widgets/BusyIndicator.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/BusyIndicator.d Sat May 24 06:18:55 2008 +0200 @@ -122,7 +122,7 @@ try { Thread.sleep(MILLISECONDS_OF_DELAY/1000.0); } catch (InterruptedException e) { - e.printStackTrace(); + ExceptionPrintStackTrace(e); } @@ -216,8 +216,8 @@ Image offScreenImage = new Image(display, bounds.width, bounds.height); GC offScreenImageGC = new GC(offScreenImage); busyThread = new BusyThread(bounds, display, offScreenImageGC, offScreenImage); - busyThread.setPriority(Thread.NORM_PRIORITY + 2); - busyThread.setDaemon(true); + busyThread.priority((Thread.PRIORITY_MIN + Thread.PRIORITY_MAX )/2 + 2); + busyThread.isDaemon(true); busyThread.start(); } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/ControlSegment.d --- a/dwtx/ui/internal/forms/widgets/ControlSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/ControlSegment.d Sat May 24 06:18:55 2008 +0200 @@ -15,19 +15,28 @@ import dwtx.ui.internal.forms.widgets.ObjectSegment; import dwtx.ui.internal.forms.widgets.IFocusSelectable; import dwtx.ui.internal.forms.widgets.Locator; +import dwtx.ui.internal.forms.widgets.FormUtil; import dwt.DWT; import dwt.graphics.GC; import dwt.graphics.Point; +import dwt.graphics.Rectangle; import dwt.widgets.Canvas; import dwt.widgets.Composite; import dwt.widgets.Control; public class ControlSegment : ObjectSegment, IFocusSelectable { + + private bool fill; private int width = DWT.DEFAULT; private int height = DWT.DEFAULT; + // reimpl for interface + Rectangle getBounds(){ + return super.getBounds(); + } + public this() { } @@ -54,7 +63,7 @@ protected Point getObjectSize(Hashtable resourceTable, int wHint) { Control control = getControl(resourceTable); - if (controlisnull) + if (control is null) return new Point(0,0); int realWhint = FormUtil.getWidthHint(wHint, control); Point size = control.computeSize(realWhint, DWT.DEFAULT); diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/FormFonts.d --- a/dwtx/ui/internal/forms/widgets/FormFonts.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/FormFonts.d Sat May 24 06:18:55 2008 +0200 @@ -23,7 +23,7 @@ public class FormFonts { - alias HashMap!(String,Object) HashMapStrToObj; + alias HashMap!(Object,Object) HashMapStrToObj; private static FormFonts instance; @@ -91,8 +91,8 @@ return result.getFont(); } Font boldFont = createBoldFont(display, font); - fonts.put(fid, new FontReference(boldFont)); - ids.put(boldFont, fid); + fonts.add(fid, new FontReference(boldFont)); + ids.add(boldFont, fid); return boldFont; } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/FormHeading.d --- a/dwtx/ui/internal/forms/widgets/FormHeading.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/FormHeading.d Sat May 24 06:18:55 2008 +0200 @@ -13,6 +13,8 @@ module dwtx.ui.internal.forms.widgets.FormHeading; import dwtx.ui.internal.forms.widgets.TitleRegion; +import dwtx.ui.internal.forms.widgets.FormImages; +import dwtx.ui.internal.forms.widgets.FormsResources; import dwt.DWT; import dwt.custom.CLabel; @@ -90,11 +92,11 @@ private ToolBarManager toolBarManager; - private SizeCache toolbarCache = new SizeCache(); + private SizeCache toolbarCache; - private SizeCache clientCache = new SizeCache(); + private SizeCache clientCache; - private SizeCache messageCache = new SizeCache(); + private SizeCache messageCache; private TitleRegion titleRegion; @@ -115,7 +117,7 @@ if (messageRegion !is null) messageRegion.updateToolTip(details); if (getMessageType() > 0 - && (details is null || details.length() is 0)) + && (details is null || details.length is 0)) details = getMessage(); titleRegion.updateToolTip(details); } @@ -341,7 +343,11 @@ return size; } } - + this(){ + toolbarCache = new SizeCache(); + clientCache = new SizeCache(); + messageCache = new SizeCache(); + } /* (non-Javadoc) * @see dwt.widgets.Control#forceFocus() */ @@ -426,7 +432,7 @@ ensureControlExists(); if (needHyperlink()) { messageHyperlink.setText(newMessage); - messageHyperlink.setHref(messages); + messageHyperlink.setHref(new ArrayWrapperT!(IMessage)(messages)); } else { messageLabel.setText(newMessage); } @@ -481,7 +487,7 @@ public void addMessageHyperlinkListener(IHyperlinkListener listener) { if (listeners is null) listeners = new ListenerList(); - listeners.add(listener); + listeners.add(cast(Object)listener); ensureControlExists(); if (messageHyperlink !is null) messageHyperlink.addHyperlinkListener(listener); @@ -491,7 +497,7 @@ private void removeMessageHyperlinkListener(IHyperlinkListener listener) { if (listeners !is null) { - listeners.remove(listener); + listeners.remove(cast(Object)listener); if (messageHyperlink !is null) messageHyperlink.removeHyperlinkListener(listener); if (listeners.isEmpty()) @@ -510,7 +516,7 @@ messageHyperlink = new Hyperlink(this.outer, DWT.NULL); messageHyperlink.setUnderlined(true); messageHyperlink.setText(message); - messageHyperlink.setHref(messages); + messageHyperlink.setHref(new ArrayWrapperT!(IMessage)(messages)); Object[] llist = listeners.getListeners(); for (int i = 0; i < llist.length; i++) messageHyperlink @@ -519,7 +525,7 @@ messageToolTipManager.createToolTip(messageHyperlink, false); } else if (!messageHyperlink.getVisible()) { messageHyperlink.setText(message); - messageHyperlink.setHref(messages); + messageHyperlink.setHref(new ArrayWrapperT!(IMessage)(messages)); messageHyperlink.setVisible(true); } } else { @@ -991,9 +997,9 @@ public void putColor(String key, Color color) { if (color is null) - colors.remove(key); + colors.removeKey(key); else - colors.put(key, color); + colors.add(key, color); } public Color getColor(String key) { diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/FormImages.d --- a/dwtx/ui/internal/forms/widgets/FormImages.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/FormImages.d Sat May 24 06:18:55 2008 +0200 @@ -52,9 +52,9 @@ if (null !is cast(ImageIdentifier)obj ) { ImageIdentifier id = cast(ImageIdentifier)obj; if (id.fColors.length is fColors.length) { - bool result = id.fDisplay.equals(fDisplay) && id.fLength is fLength; + bool result = id.fDisplay.opEquals(fDisplay) && id.fLength is fLength; for (int i = 0; i < fColors.length && result; i++) { - result = result && id.fColors[i].equals(fColors[i]); + result = result && id.fColors[i].opEquals(fColors[i]); } return result; } @@ -117,7 +117,7 @@ if (null !is cast(ComplexImageIdentifier)obj ) { ComplexImageIdentifier id = cast(ComplexImageIdentifier) obj; if (super.equals(obj) && - id.fVertical is fVertical && Arrays.equals(id.fPercents, fPercents)) { + id.fVertical is fVertical && Arrays.opEquals(id.fPercents, fPercents)) { if ((id.fBg is null && fBg is null) || (id.fBg !is null && id.fBg.equals(fBg))) return true; @@ -174,8 +174,8 @@ return result.getImage(); } Image image = createGradient(display, color1, color2, realtheight, theight, marginHeight); - images.put(id, new ImageReference(image)); - ids.put(image, id); + images.add(id, new ImageReference(image)); + ids.add(image, id); return image; } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/ImageHyperlinkSegment.d --- a/dwtx/ui/internal/forms/widgets/ImageHyperlinkSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/ImageHyperlinkSegment.d Sat May 24 06:18:55 2008 +0200 @@ -12,25 +12,30 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.ImageHyperlinkSegment; -import java.util.Hashtable; +import dwtx.ui.internal.forms.widgets.IHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.ImageSegment; + +//import java.util.Hashtable; import dwt.graphics.Color; import dwt.graphics.GC; import dwt.graphics.Rectangle; -public class ImageHyperlinkSegment extends ImageSegment implements +import dwt.dwthelper.utils; + +public class ImageHyperlinkSegment : ImageSegment, IHyperlinkSegment { private String href; private String text; private String tooltipText; - public ImageHyperlinkSegment() { + public this() { } /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#setHref(java.lang.String) */ public void setHref(String href) { @@ -39,7 +44,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#getHref() */ public String getHref() { @@ -64,7 +69,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#isWordWrapAllowed() */ public bool isWordWrapAllowed() { @@ -73,7 +78,7 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#setWordWrapAllowed(bool) */ public void setWordWrapAllowed(bool value) { @@ -82,13 +87,13 @@ /* * (non-Javadoc) - * + * * @see dwtx.ui.internal.forms.widgets.IHyperlinkSegment#getText() */ public String getText() { - return text!isnull?text:""; //$NON-NLS-1$ + return text !is null?text:""; //$NON-NLS-1$ } - + public void setText(String text) { this.text = text; } @@ -107,7 +112,7 @@ public void setTooltipText(String tooltipText) { this.tooltipText = tooltipText; } - + public bool isSelectable() { return true; } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/TextHyperlinkSegment.d --- a/dwtx/ui/internal/forms/widgets/TextHyperlinkSegment.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/TextHyperlinkSegment.d Sat May 24 06:18:55 2008 +0200 @@ -12,18 +12,23 @@ *******************************************************************************/ module dwtx.ui.internal.forms.widgets.TextHyperlinkSegment; -import java.util.Hashtable; +import dwtx.ui.internal.forms.widgets.TextSegment; +import dwtx.ui.internal.forms.widgets.IHyperlinkSegment; +import dwtx.ui.internal.forms.widgets.SelectionData; import dwt.graphics.Color; import dwt.graphics.GC; import dwt.graphics.Rectangle; import dwtx.ui.forms.HyperlinkSettings; +import dwt.dwthelper.utils; +//import tango.util.collection.HashMap; + /** * @version 1.0 * @author */ -public class TextHyperlinkSegment extends TextSegment implements +public class TextHyperlinkSegment : TextSegment, IHyperlinkSegment { private String href; @@ -33,7 +38,7 @@ private HyperlinkSettings settings; - public TextHyperlinkSegment(String text, HyperlinkSettings settings, + public this(String text, HyperlinkSettings settings, String fontId) { super(text, fontId); this.settings = settings; @@ -65,8 +70,8 @@ Color savedFg = gc.getForeground(); Color newFg = hover ? settings.getActiveForeground() : settings .getForeground(); - if (newFg!isnull) - gc.setForeground(newFg); + if (newFg !is null) + gc.setForeground(newFg); super.paint(gc, hover, resourceTable, selected, rolloverMode, selData, repaintRegion); gc.setForeground(savedFg); @@ -79,7 +84,7 @@ public void setTooltipText(String tooltip) { this.tooltipText = tooltip; } - + public bool isSelectable() { return true; } diff -r 5d489b9f966c -r e193036d82c9 dwtx/ui/internal/forms/widgets/TitleRegion.d --- a/dwtx/ui/internal/forms/widgets/TitleRegion.d Sat May 24 05:11:16 2008 +0200 +++ b/dwtx/ui/internal/forms/widgets/TitleRegion.d Sat May 24 06:18:55 2008 +0200 @@ -56,6 +56,9 @@ * Form heading title. */ public class TitleRegion : Canvas { + + alias Canvas.computeSize computeSize; + public static const int STATE_NORMAL = 0; public static const int STATE_HOVER_LIGHT = 1; public static const int STATE_HOVER_FULL = 2;