# HG changeset patch
# User Jacob Carlborg
# Date 1220039165 -7200
# Node ID 2952d5604c0a06c24e79f2a6165c64d6cbbee5cf
# Parent 762fbe6f17d354c9e4599fe3c690936eb8076448
Ported some widgets, added some stuff to the runtime bindings
diff -r 762fbe6f17d3 -r 2952d5604c0a .hgignore
--- a/.hgignore Sat Aug 23 13:49:00 2008 +0200
+++ b/.hgignore Fri Aug 29 21:46:05 2008 +0200
@@ -2,4 +2,5 @@
*.DS_Store
*.o
dsss_objs
-dsss.last
\ No newline at end of file
+dsss.last
+*.a
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/dwthelper/System.d
--- a/dwt/dwthelper/System.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/dwthelper/System.d Fri Aug 29 21:46:05 2008 +0200
@@ -87,6 +87,27 @@
}
}
+struct OutS
+{
+ static Print!(char) delegate(char[] fmt,...) println;
+ static Print!(char) delegate(char[] fmt,...) print;
+ static this ()
+ {
+ println = &Stdout.formatln;
+ print = &Stdout.format;
+ }
+}
+
+struct Err
+{
+ static Print!(char) delegate(char[] fmt,...) println;
+ static Print!(char) delegate(char[] fmt,...) print;
+ static this ()
+ {
+ println = &Stderr.formatln;
+ print = &Stderr.format;
+ }
+}
class System {
@@ -141,5 +162,7 @@
default: return null;
}
}
+
+ static OutS Out;
+ static Err err;
}
-
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/dwthelper/utils.d
--- a/dwt/dwthelper/utils.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/dwthelper/utils.d Fri Aug 29 21:46:05 2008 +0200
@@ -31,6 +31,8 @@
alias Exception Throwable;
alias Exception RuntimeException;
+alias ClassInfo Class;
+
void implMissing( String file, uint line ){
Stderr.formatln( "implementation missing in file {} line {}", file, line );
Stderr.formatln( "exiting ..." );
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/graphics/Device.d
--- a/dwt/graphics/Device.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/graphics/Device.d Fri Aug 29 21:46:05 2008 +0200
@@ -27,13 +27,15 @@
import dwt.internal.cocoa.OS;
import dwt.internal.cocoa.id;
+import dwt.graphics.Drawable;
+
/**
* This class is the abstract superclass of all device objects,
* such as the Display device and the Printer device. Devices
* can have a graphics context (GC) created for them, and they
* can be drawn on by sending messages to the associated GC.
*/
-public abstract class Device implements Drawable {
+public abstract class Device : Drawable {
/* Debugging */
public static bool DEBUG;
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/Callback.d
--- a/dwt/internal/Callback.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/Callback.d Fri Aug 29 21:46:05 2008 +0200
@@ -13,9 +13,8 @@
*******************************************************************************/
module dwt.internal.Callback;
-import dwt.dwthelper.utils;
+
import dwt.internal.C;
-import c = dwt.internal.c.callback;
/**
* Instances of this class represent entry points into Java
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/c/callback.d
--- a/dwt/internal/c/callback.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/c/callback.d Fri Aug 29 21:46:05 2008 +0200
@@ -18,6 +18,7 @@
*/
import tango.stdc.string;
+import tango.stdc.posix.sys.mman;
import dwt.dwthelper.utils;
import dwt.internal.Callback;
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/c/carboncore/MacTypes.d
--- a/dwt/internal/c/carboncore/MacTypes.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/c/carboncore/MacTypes.d Fri Aug 29 21:46:05 2008 +0200
@@ -82,6 +82,14 @@
struct UnsignedWide
{
- UInt32 hi;
- UInt32 lo;
+ uint hi;
+ uint lo;
}
+
+struct ProcessSerialNumber
+{
+ uint highLongOfPSN;
+ uint lowLongOfPSN;
+}
+
+alias ProcessSerialNumber * ProcessSerialNumberPtr;
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/cocoa/NSRect.d
--- a/dwt/internal/cocoa/NSRect.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/cocoa/NSRect.d Fri Aug 29 21:46:05 2008 +0200
@@ -37,12 +37,10 @@
{
NSPoint origin;
NSSize size;
-}
-
-/*public class NSRect {
- public float x;
- public float y;
- public float width;
- public float height;
- public static final int sizeof = 16;
- }*/
+
+ // for dwt compatibility
+ alias origin.x x;
+ alias origin.y y;
+ alias size.width width;
+ alias size.height height;
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/cocoa/OS.d
--- a/dwt/internal/cocoa/OS.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/cocoa/OS.d Fri Aug 29 21:46:05 2008 +0200
@@ -20,9 +20,20 @@
import dwt.internal.Library;
import dwt.internal.Platform;
+static import Gestalt = dwt.internal.c.carboncore.Gestalt;
+import dwt.internal.c.carboncore.MacTypes;
+static import Processes = dwt.internal.c.hiservices.Processes;
static import dwt.internal.c.qd.Quickdraw;
-import dwt.internal.objc.cocoa.Cocoa;
-//import dwt.internal.cocoa.NSString;
+import dwt.internal.cocoa.NSInteger;
+import dwt.internal.cocoa.NSString;
+static import NSAccessibility = dwt.internal.objc.appkit.NSAccessibility;
+static import NSAttributedString = dwt.internal.objc.appkit.NSAttributedString;
+static import NSGraphics = dwt.internal.objc.appkit.NSGraphics;
+static import NSScreen = dwt.internal.objc.appkit.NSScreen;
+static import CGRemoteOperation = dwt.internal.objc.coregraphics.CGRemoteOperation;
+static import NSGeometry = dwt.internal.objc.foundation.NSGeometry;
+static import NSHFSFileTypes = dwt.internal.objc.foundation.NSHFSFileTypes;
+static import NSRunLoop = dwt.internal.objc.foundation.NSRunLoop;
static import dwt.internal.objc.runtime;
private alias dwt.internal.objc.runtime.objc_object objc_object;
@@ -51,8 +62,8 @@
static this ()
{
- int[] response = new int[1];
- //OS.Gestalt(OS.gestaltSystemVersion, response);
+ SInt32[1] response;
+ OS.Gestalt(OS.gestaltSystemVersion, response);
VERSION = response[0] & 0xffff;
OS.sel_sendSelection = OS.sel_registerName("sendSelection");
@@ -62,10 +73,7 @@
OS.sel_sendHorizontalSelection = OS.sel_registerName("sendHorizontalSelection");
OS.sel_drawAtPoint_ = OS.sel_registerName("drawAtPoint:");
OS.sel_timerProc_1 = OS.sel_registerName("timerProc:");
-
-
-
-
+
foreach (data ; classesData)
*data.var = objc_getClass(data.arg);
@@ -74,11 +82,11 @@
}
//TODO - don't hard code
- public static const size_t PTR_SIZEOF = size_t.sizeof;
+ public static const size_t PTR_SIZEOF = (void*).sizeof;
- public static const int gestaltSystemVersion = ('s'<<24) + ('y'<<16) + ('s'<<8) + 'v';
- public static const int noErr = 0;
- public static const int kProcessTransformToForegroundApplication = 1;
+ public static const uint gestaltSystemVersion = ('s'<<24) + ('y'<<16) + ('s'<<8) + 'v';
+ public static const short noErr = 0;
+ alias Processes.kProcessTransformToForegroundApplication kProcessTransformToForegroundApplication;
public static const int kAlertCautionIcon = ('c'<<24) + ('a'<<16) + ('u'<<8) + 't';
public static const int kAlertNoteIcon = ('n'<<24) + ('o'<<16) + ('t'<<8) + 'e';
public static const int kAlertStopIcon = ('s'<<24) + ('t'<<16) + ('o'<<8) + 'p';
@@ -91,6 +99,18 @@
public static const String sel_drawAtPoint_;
public static const String sel_timerProc_1;
+ Object JNIGetObject(NSInteger globalRef)
+ {
+ return cast(Object) globalRef;
+ }
+
+ alias Gestalt.Gestalt Gestalt;
+ alias Processes.GetCurrentProcess GetCurrentProcess;
+ alias Processes.SetFrontProcess SetFrontProcess;
+ alias Processes.TransformProcessType TransformProcessType;
+ alias NSGeometry.NSIntersectionRect NSIntersectionRect;
+ alias CGRemoteOperation.CGWarpMouseCursorPosition CGWarpMouseCursorPosition;
+
/** QuickDraw calls */
alias dwt.internal.c.qd.Quickdraw.RegionToRectsProcPtr RegionToRectsProcPtr;
alias dwt.internal.c.qd.Quickdraw.RegionToRectsUPP RegionToRectsUPP;
@@ -13937,7 +13957,7 @@
];
/** Constants */
-/+ public static const int NSAWTEventType = 16;
+ public static const int NSAWTEventType = 16;
public static const int NSAboveBottom = 4;
public static const int NSAboveTop = 1;
public static const int NSAddTraitFontAction = 2;
@@ -14928,9 +14948,9 @@
public static const int NSDateFormatterMediumStyle = 2;
public static const int NSDateFormatterNoStyle = 0;
public static const int NSDateFormatterShortStyle = 1;
- public static const int NSDayCalendarUnit = 16;+/
+ public static const int NSDayCalendarUnit = 16;
public static const int NSDecimalMaxSize = 8;
- /+public static const int NSDecimalNoScale = 32767;
+ public static const int NSDecimalNoScale = 32767;
public static const int NSDemoApplicationDirectory = 2;
public static const int NSDesktopDirectory = 12;
public static const int NSDeveloperApplicationDirectory = 3;
@@ -15813,7 +15833,7 @@
// public static const native int NSAccessibilityPickAction();
// public static const native int NSAccessibilityPointsUnitValue();
// public static const native int NSAccessibilityPopUpButtonRole();
-// public static const native int NSAccessibilityPositionAttribute(); commented by Jacob Carlborg
+ alias NSAccessibility.NSAccessibilityPositionAttribute NSAccessibilityPositionAttribute;
// public static const native int NSAccessibilityPressAction();
// public static const native int NSAccessibilityPreviousContentsAttribute();
// public static const native int NSAccessibilityProgressIndicatorRole();
@@ -15860,7 +15880,7 @@
// public static const native int NSAccessibilitySheetRole();
// public static const native int NSAccessibilityShowMenuAction();
// public static const native int NSAccessibilityShownMenuAttribute();
-// public static const native int NSAccessibilitySizeAttribute(); commented by Jacob Carlborg
+ alias NSAccessibility.NSAccessibilitySizeAttribute NSAccessibilitySizeAttribute;
// public static const native int NSAccessibilitySliderRole();
// public static const native int NSAccessibilitySortButtonRole();
// public static const native int NSAccessibilitySortDirectionAttribute();
@@ -15964,8 +15984,7 @@
// public static const native int NSAttachmentAttributeName();
// public static const native int NSAttributedStringBinding();
// public static const native int NSAuthorDocumentAttribute();
-// public static const NSString NSBackgroundColorAttributeName = new NSString(OS.NSBackgroundColorAttributeName()); commented by Jacob Carlborg
-// public static const native int NSBackgroundColorAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSBackgroundColorAttributeName NSBackgroundColorAttributeName;
// public static const native int NSBackgroundColorDocumentAttribute();
// public static const native int NSBadBitmapParametersException();
// public static const native int NSBadComparisonException();
@@ -15974,7 +15993,7 @@
// public static const native int NSBadRTFFontTableException();
// public static const native int NSBadRTFStyleSheetException();
// public static const native int NSBaseURLDocumentOption();
-// public static const native int NSBaselineOffsetAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSBaselineOffsetAttributeName NSBaselineOffsetAttributeName;
// public static const native int NSBlack();
// public static const native int NSBottomMarginDocumentAttribute();
// public static const native int NSBrowserColumnConfigurationDidChangeNotification();
@@ -16036,8 +16055,8 @@
// public static const native int NSDeviceColorSpaceName();
// public static const native int NSDeviceIsPrinter();
// public static const native int NSDeviceIsScreen();
-// public static const native int NSDeviceRGBColorSpace();
-// public static const native int NSDeviceResolution(); commented by Jacob Carlborg
+ alias NSGraphics.NSDeviceRGBColorSpace NSDeviceRGBColorSpace;
+ alias NSScreen.NSDeviceResolution NSDeviceResolution;
// public static const native int NSDeviceSize();
// public static const native int NSDeviceWhiteColorSpace();
// public static const native int NSDirectoryFileType();
@@ -16073,7 +16092,7 @@
// public static const native int NSFindPanelSearchOptionsPboardType();
// public static const native int NSFindPanelSubStringMatch();
// public static const native int NSFindPboard();
-// public static const native int NSFontAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSFontAttributeName NSFontAttributeName;
// public static const native int NSFontBinding();
// public static const native int NSFontBoldBinding();
// public static const native int NSFontCascadeListAttribute();
@@ -16108,7 +16127,7 @@
// public static const native int NSFontVisibleNameAttribute();
// public static const native int NSFontWeightTrait();
// public static const native int NSFontWidthTrait();
-// public static const native int NSForegroundColorAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSForegroundColorAttributeName NSForegroundColorAttributeName;
// public static const native int NSFullScreenModeAllScreens();
// public static const native int NSFullScreenModeSetting();
// public static const native int NSFullScreenModeWindowLevel();
@@ -16200,7 +16219,7 @@
// public static const native int NSLeftMarginDocumentAttribute();
// public static const native int NSLigatureAttributeName();
// public static const native int NSLightGray();
-// public static const native int NSLinkAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSLinkAttributeName NSLinkAttributeName;
// public static const native int NSLocalizedKeyDictionaryBinding();
// public static const native int NSMacSimpleTextDocumentType();
// public static const native int NSManagedObjectContextBinding();
@@ -16255,7 +16274,7 @@
// public static const native int NSPPDIncludeStackUnderflowException();
// public static const native int NSPPDParseException();
// public static const native int NSPaperSizeDocumentAttribute();
-// public static const native int NSParagraphStyleAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSParagraphStyleAttributeName NSParagraphStyleAttributeName;
// public static const native int NSPasteboardCommunicationException();
// public static const native int NSPatternColorSpace();
// public static const native int NSPlainFileType();
@@ -16403,8 +16422,8 @@
// public static const native int NSSpellingStateAttributeName();
// public static const native int NSSplitViewDidResizeSubviewsNotification();
// public static const native int NSSplitViewWillResizeSubviewsNotification();
-// public static const native int NSStrikethroughColorAttributeName(); commented by Jacob Carlborg
-// public static const native int NSStrikethroughStyleAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSStrikethroughColorAttributeName NSStrikethroughColorAttributeName;
+ alias NSAttributedString.NSStrikethroughStyleAttributeName NSStrikethroughStyleAttributeName;
// public static const native int NSStringPboardType();
// public static const native int NSStrokeColorAttributeName();
// public static const native int NSStrokeWidthAttributeName();
@@ -16455,9 +16474,9 @@
// public static const native int NSTypedStreamVersionException();
// public static const native int NSURLPboardType();
// public static const native int NSUnderlineByWordMask();
-// public static const native int NSUnderlineColorAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSUnderlineColorAttributeName NSUnderlineColorAttributeName;
// public static const native int NSUnderlineStrikethroughMask();
-// public static const native int NSUnderlineStyleAttributeName(); commented by Jacob Carlborg
+ alias NSAttributedString.NSUnderlineStyleAttributeName NSUnderlineStyleAttributeName;
// public static const native int NSVCardPboardType();
// public static const native int NSValidatesImmediatelyBindingOption();
// public static const native int NSValueBinding();
@@ -16567,8 +16586,7 @@
// public static const native int NSDecimalNumberExactnessException();
// public static const native int NSDecimalNumberOverflowException();
// public static const native int NSDecimalNumberUnderflowException();
-// public static const NSString NSDefaultRunLoopMode = new NSString(OS.NSDefaultRunLoopMode()); commented by Jacob Carlborg
-// public static const native int NSDefaultRunLoopMode(); commented by Jacob Carlborg
+ alias NSRunLoop.NSDefaultRunLoopMode NSDefaultRunLoopMode;
// public static const native int NSDestinationInvalidException();
// public static const native int NSDidBecomeSingleThreadedNotification();
// public static const native int NSDistinctUnionOfArraysKeyValueOperator();
@@ -16847,7 +16865,7 @@
// public static const native void NSBeginCriticalAlertSheet(int title, int defaultButton, int alternateButton, int otherButton, int docWindow, int modalDelegate, int didEndSelector, int didDismissSelector, int contextInfo, int msgFormat);
// public static const native void NSBeginInformationalAlertSheet(int title, int defaultButton, int alternateButton, int otherButton, int docWindow, int modalDelegate, int didEndSelector, int didDismissSelector, int contextInfo, int msgFormat);
// public static const native int NSBestDepth(int colorSpace, int bps, int bpp, bool planar, int exactMatch);
-// public static const native int NSBitsPerPixelFromDepth(int depth); commented by Jacob Calborg
+ alias NSGraphics.NSBitsPerPixelFromDepth NSBitsPerPixelFromDepth;
// public static const native int NSBitsPerSampleFromDepth(int depth);
// public static const native int NSColorSpaceFromDepth(int depth);
// public static const native int NSConvertGlyphsToPackedGlyphs(int glBuf, int count, int packing, int packedGlyphs);
@@ -16970,7 +16988,7 @@
// public static const native bool NSEqualRects(NSRect aRect, NSRect bRect);
// public static const native bool NSEqualSizes(NSSize aSize, NSSize bSize);
// public static const native int NSExtraRefCount(int object);
-// public static const native int NSFileTypeForHFSTypeCode(int hfsFileTypeCode); commented by Jacob Carlborg
+ alias NSHFSFileTypes.NSFileTypeForHFSTypeCode NSFileTypeForHFSTypeCode;
// public static const native int NSFrameAddress(int frame);
// public static const native void NSFreeHashTable(int table);
// public static const native void NSFreeMapTable(int table);
@@ -17102,5 +17120,4 @@
// public static const native int NSZoneRealloc(int zone, int ptr, int size);
// public static const native int NXReadNSObjectFromCoder(int decoder);
-+/
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/appkit/NSAccessibility.d
--- a/dwt/internal/objc/appkit/NSAccessibility.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/appkit/NSAccessibility.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,12 +7,15 @@
*/
module dwt.internal.objc.appkit.NSAccessibility;
+import dwt.internal.cocoa.NSString;
import bindings = dwt.internal.objc.appkit.bindings;
-template NSAccessibility ()
+NSString NSAccessibilityPositionAttribute ()
{
- extern(C):
-
- id* NSAccessibilityPositionAttribute;
- id* NSAccessibilitySizeAttribute;
+ return new NSString(bindings.DCB_NSAccessibilityPositionAttribute());
}
+
+NSString NSAccessibilitySizeAttribute ()
+{
+ return new NSString(bindings.DCB_NSAccessibilitySizeAttribute());
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/appkit/NSAttributedString.d
--- a/dwt/internal/objc/appkit/NSAttributedString.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/appkit/NSAttributedString.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,20 +7,55 @@
*/
module dwt.internal.objc.appkit.NSAttributedString;
+import dwt.internal.cocoa.NSString;
import bindings = dwt.internal.objc.appkit.bindings;
-template NSAttributedString ()
+NSString NSBackgroundColorAttributeName ()
+{
+ return new NSString(bindings.DCB_NSBackgroundColorAttributeName());
+}
+
+NSString NSBaselineOffsetAttributeName ()
+{
+ return new NSString(bindings.DCB_NSBaselineOffsetAttributeName());
+}
+
+NSString NSFontAttributeName ()
+{
+ return new NSString(bindings.DCB_NSFontAttributeName());
+}
+
+NSString NSForegroundColorAttributeName ()
+{
+ return new NSString(bindings.DCB_NSForegroundColorAttributeName());
+}
+
+NSString NSLinkAttributeName ()
{
- extern (C):
-
- id* NSBackgroundColorAttributeName;
- id* NSBaselineOffsetAttributeName;
- id* NSFontAttributeName;
- id* NSForegroundColorAttributeName;
- id* NSLinkAttributeName;
- id* NSParagraphStyleAttributeName;
- id* NSStrikethroughColorAttributeName;
- id* NSStrikethroughStyleAttributeName;
- id* NSUnderlineColorAttributeName;
- id* NSUnderlineStyleAttributeName;
+ return new NSString(bindings.DCB_NSLinkAttributeName());
+}
+
+NSString NSParagraphStyleAttributeName ()
+{
+ return new NSString(bindings.DCB_NSParagraphStyleAttributeName());
+}
+
+NSString NSStrikethroughColorAttributeName ()
+{
+ return new NSString(bindings.DCB_NSStrikethroughColorAttributeName());
}
+
+NSString NSStrikethroughStyleAttributeName ()
+{
+ return new NSString(bindings.DCB_NSStrikethroughStyleAttributeName());
+}
+
+NSString NSUnderlineColorAttributeName ()
+{
+ return new NSString(bindings.DCB_NSUnderlineColorAttributeName());
+}
+
+NSString NSUnderlineStyleAttributeName ()
+{
+ return new NSString(bindings.DCB_NSUnderlineStyleAttributeName());
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/appkit/NSGraphics.d
--- a/dwt/internal/objc/appkit/NSGraphics.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/appkit/NSGraphics.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,11 +7,11 @@
*/
module dwt.internal.objc.appkit.NSGraphics;
-import bindings = dwt.internal.objc.appkit.bindings : NSBitsPerPixelFromDepth;
-import dwt.internal.objc.runtime;
+import bindings = dwt.internal.objc.appkit.bindings : NSBitsPerPixelFromDepth, DCB_NSDeviceRGBColorSpace;
+
+alias bindings.NSBitsPerPixelFromDepth NSBitsPerPixelFromDepth;
-template NSGraphics ()
+NSString NSDeviceRGBColorSpace ()
{
- extern(C) id* NSDeviceRGBColorSpace;
- alias bindings.NSBitsPerPixelFromDepth NSBitsPerPixelFromDepth;
-}
+ return new NSString(bindings.DCB_NSDeviceRGBColorSpace());
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/appkit/NSScreen.d
--- a/dwt/internal/objc/appkit/NSScreen.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/appkit/NSScreen.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,9 +7,9 @@
*/
module dwt.internal.objc.appkit.NSScreen;
-import dwt.internal.objc.runtime;
+import bindings = dwt.internal.objc.appkit.bindings : DCB_NSDeviceResolution;
-template NSScreen ()
+NSString NSDeviceResolution ()
{
- extern(C) id* NSDeviceResolution;
-}
+ return new NSString(bindings.DCB_NSDeviceResolution());
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/appkit/bindings.d
--- a/dwt/internal/objc/appkit/bindings.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/appkit/bindings.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,23 +7,28 @@
*/
module dwt.internal.objc.appkit.bindings;
+import dwt.internal.objc.runtime;
+
extern (C):
-/*void *NSDeviceRGBColorSpace();
-void *NSAccessibilityPositionAttribute ();
-void *NSAccessibilitySizeAttribute ();
-void *NSBackgroundColorAttributeName ();
-void *NSBaselineOffsetAttributeName ();
-void *NSDeviceResolution ();
-void *NSFontAttributeName ();
-void *NSForegroundColorAttributeName ();
-void *NSLinkAttributeName ();
-void *NSParagraphStyleAttributeName ();
-void *NSStrikethroughColorAttributeName ();
-void *NSStrikethroughStyleAttributeName ();
-void *NSUnderlineColorAttributeName ();
-void *NSUnderlineStyleAttributeName ();*/
+id DCB_NSDeviceRGBColorSpace();
+id DCB_NSAccessibilityPositionAttribute ();
+id DCB_NSAccessibilitySizeAttribute ();
+id DCB_NSBackgroundColorAttributeName ();
+id DCB_NSBaselineOffsetAttributeName ();
+id DCB_NSDeviceResolution ();
+id DCB_NSFontAttributeName ();
+id DCB_NSForegroundColorAttributeName ();
+id DCB_NSLinkAttributeName ();
+id DCB_NSParagraphStyleAttributeName ();
+id DCB_NSStrikethroughColorAttributeName ();
+id DCB_NSStrikethroughStyleAttributeName ();
+id DCB_NSUnderlineColorAttributeName ();
+id DCB_NSUnderlineStyleAttributeName ();
int NSBitsPerPixelFromDepth (int depth);
version (build)
+{
pragma(link, "objc");
+ pragma(link, "dwt-cocoa-bindings");
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/foundation/NSHFSFileTypes.d
--- a/dwt/internal/objc/foundation/NSHFSFileTypes.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/foundation/NSHFSFileTypes.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,9 +7,9 @@
*/
module dwt.internal.objc.foundation.NSHFSFileTypes;
-import bindings = dwt.internal.objc.foundation.bindings : NSFileTypeForHFSTypeCode;
+import bindings = dwt.internal.objc.foundation.bindings;
-template NSHFSFileTypes ()
+NSString NSFileTypeForHFSTypeCode (uint hfsFileTypeCode)
{
- alias bindings.NSFileTypeForHFSTypeCode NSFileTypeForHFSTypeCode;
-}
+ return new NSString(bindings.NSFileTypeForHFSTypeCode(hfsFileTypeCode));
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/foundation/NSRunLoop.d
--- a/dwt/internal/objc/foundation/NSRunLoop.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/foundation/NSRunLoop.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,9 +7,12 @@
*/
module dwt.internal.objc.foundation.NSRunLoop;
-import dwt.internal.objc.runtime;
+import dwt.internal.cocoa.NSString;
+import dwt.internal.objc.foundation.bindings;
+
+const NSString NSDefaultRunLoopMode;
-template NSRunLoop ()
+static this ()
{
- extern(C) id* NSDefaultRunLoopMode;
-}
+ NSDefaultRunLoopMode = new NSString(DCB_NSDefaultRunLoopMode());
+}
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/foundation/bindings.d
--- a/dwt/internal/objc/foundation/bindings.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/foundation/bindings.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,7 +7,14 @@
*/
module dwt.internal.objc.foundation.bindings;
+import dwt.internal.cocoa.NSRect;
+import dwt.internal.objc.runtime;
+
extern (C):
-//void* NSDefaultRunLoopMode ();
-void* NSFileTypeForHFSTypeCode (int hfsFileTypeCode);
+id DCB_NSDefaultRunLoopMode ();
+id NSFileTypeForHFSTypeCode (uint hfsFileTypeCode);
+NSRect NSIntersectionRect (NSRect aRect, NSRect bRect);
+
+version (build)
+ pragma (link, "dwt-cocoa-bindings");
\ No newline at end of file
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/internal/objc/runtime.d
--- a/dwt/internal/objc/runtime.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/internal/objc/runtime.d Fri Aug 29 21:46:05 2008 +0200
@@ -37,7 +37,7 @@
id receiver;
Class clazz;
- /// for dwt compatibility
+ // for dwt compatibility
alias clazz cls;
}
@@ -119,9 +119,9 @@
return dwt.internal.objc.bindings.class_addIvar(cls, name.ptr, size, alignment, types.ptr);
}
-bool class_addMethod (Class cls, SEL name, IMP imp, String types)
+bool class_addMethod (Class cls, String name, IMP imp, String types)
{
- return dwt.internal.objc.bindings.class_addMethod(cls, name, imp, types.ptr);
+ return dwt.internal.objc.bindings.class_addMethod(cls, name.ptr, imp, types.ptr);
}
Class objc_allocateClassPair (Class superclass, String name, size_t extraBytes)
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Caret.d
--- a/dwt/widgets/Caret.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Caret.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,11 +7,12 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Caret;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTException;
@@ -22,6 +23,10 @@
import dwt.internal.cocoa.NSRect;
import dwt.internal.cocoa.NSSize;
+import dwt.dwthelper.utils;
+import dwt.widgets.Canvas;
+import dwt.widgets.Widget;
+
/**
* Instances of this class provide an i-beam that is typically used
* as the insertion point for text.
@@ -36,7 +41,7 @@
* within the DWT implementation.
*
*/
-public class Caret extends Widget {
+public class Caret : Widget {
Canvas parent;
int x, y, width, height;
bool isVisible, isShowing;
@@ -74,7 +79,7 @@
* @see Widget#checkSubclass
* @see Widget#getStyle
*/
-public Caret (Canvas parent, int style) {
+public this (Canvas parent, int style) {
super (parent, style);
this.parent = parent;
createWidget ();
@@ -103,10 +108,10 @@
if (nWidth <= 0) nWidth = DEFAULT_WIDTH;
if (image !is null) {
NSSize size = image.handle.size();
- nWidth = (int)size.width;
- nHeight = (int)size.height;
+ nWidth = cast(int)size.width;
+ nHeight = cast(int)size.height;
}
- NSRect rect = new NSRect();
+ NSRect rect = NSRect();
rect.x = x;
rect.y = y;
rect.width = nWidth;
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Control.d
--- a/dwt/widgets/Control.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Control.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,10 +7,12 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Control;
-import dwt.dwthelper.utils;
import dwt.DWT;
import dwt.DWTException;
@@ -51,6 +53,25 @@
import dwt.internal.cocoa.OS;
import dwt.internal.cocoa.objc_super;
+import tango.core.Thread;
+
+import dwt.dwthelper.utils;
+import dwt.dwthelper.System;
+import objc = dwt.internal.objc.runtime;
+import dwt.widgets.Composite;
+import dwt.widgets.Decorations;
+import dwt.widgets.Display;
+import dwt.widgets.Event;
+import dwt.widgets.Listener;
+import dwt.widgets.Menu;
+import dwt.widgets.Monitor;
+import dwt.widgets.Shell;
+import dwt.widgets.TypedListener;
+import dwt.widgets.Widget;
+
+
+
+
/**
* Control is the abstract superclass of all windowed user interface classes.
*
@@ -69,7 +90,7 @@
* within the DWT implementation.
*
*/
-public abstract class Control extends Widget implements Drawable {
+public abstract class Control : Widget , Drawable {
/**
* the handle to the OS resource
* (Warning: This field is platform dependent)
@@ -97,7 +118,7 @@
// static final String RESET_VISIBLE_REGION = "dwt.internal.resetVisibleRegion";
-Control () {
+this () {
/* Do nothing */
}
@@ -129,35 +150,35 @@
* @see Widget#checkSubclass
* @see Widget#getStyle
*/
-public Control (Composite parent, int style) {
+public this (Composite parent, int style) {
super (parent, style);
this.parent = parent;
createWidget ();
}
bool acceptsFirstResponder () {
- objc_super super_struct = new objc_super();
- super_struct.receiver = view.id;
- super_struct.cls = OS.objc_msgSend(view.id, OS.sel_superclass);
- return OS.objc_msgSendSuper(super_struct, OS.sel_acceptsFirstResponder) !is 0;
+ objc_super super_struct = objc_super();
+ super_struct.receiver = view.id_;
+ super_struct.cls = cast(objc.Class) OS.objc_msgSend(view.id_, OS.sel_superclass);
+ return OS.objc_msgSendSuper(super_struct, OS.sel_acceptsFirstResponder) !is null;
}
bool becomeFirstResponder () {
//TODO - query focusControl() in DWT.FocusIn/Out is the control
sendEvent (DWT.FocusIn);
- objc_super super_struct = new objc_super();
- super_struct.receiver = view.id;
- super_struct.cls = OS.objc_msgSend(view.id, OS.sel_superclass);
- return OS.objc_msgSendSuper(super_struct, OS.sel_becomeFirstResponder) !is 0;
+ objc_super super_struct = objc_super();
+ super_struct.receiver = view.id_;
+ super_struct.cls = OS.objc_msgSend(view.id_, OS.sel_superclass);
+ return OS.objc_msgSendSuper(super_struct, OS.sel_becomeFirstResponder) !is null;
}
bool resignFirstResponder () {
//TODO - query focusControl() in DWT.FocusIn/Out is the control
sendEvent (DWT.FocusOut);
- objc_super super_struct = new objc_super();
- super_struct.receiver = view.id;
- super_struct.cls = OS.objc_msgSend(view.id, OS.sel_superclass);
- return OS.objc_msgSendSuper(super_struct, OS.sel_resignFirstResponder) !is 0;
+ objc_super super_struct = objc_super();
+ super_struct.receiver = view.id_;
+ super_struct.cls = OS.objc_msgSend(view.id_, OS.sel_superclass);
+ return OS.objc_msgSendSuper(super_struct, OS.sel_resignFirstResponder) !is null;
}
/**
@@ -600,12 +621,12 @@
// width += border * 2;
// height += border * 2;
// return new Point (width, height);
- if (topView() instanceof NSControl) {
+ if (cast(NSControl) topView()) {
NSRect oldRect = topView().frame();
- ((NSControl)topView()).sizeToFit();
+ (cast(NSControl)topView()).sizeToFit();
NSRect newRect = topView().frame();
topView().setFrame (oldRect);
- return new Point ((int)newRect.width, (int)newRect.height);
+ return new Point (cast(int)newRect.width, cast(int)newRect.height);
}
return new Point (width, height);
}
@@ -618,7 +639,7 @@
Control[] computeTabList() {
if (isTabGroup()) {
if (getVisible() && getEnabled()) {
- return new Control[] {this};
+ return new Control[] [this];
}
}
return new Control[0];
@@ -655,8 +676,8 @@
Font defaultFont () {
//TODO - Controls only, does this leak?
- if (view instanceof NSControl) {
- NSFont nsFont = ((NSControl)view).font ();
+ if (cast(NSControl) view) {
+ NSFont nsFont = (cast(NSControl)view).font ();
if (nsFont !is null) {
return Font.cocoa_new (display, nsFont);
}
@@ -795,10 +816,10 @@
GC gc = GC.cocoa_new (this, data);
Event event = new Event ();
event.gc = gc;
- event.x = (int)rect.x;
- event.y = (int)rect.y;
- event.width = (int)rect.width;
- event.height = (int)rect.height;
+ event.x = cast(int)rect.x;
+ event.y = cast(int)rect.y;
+ event.width = cast(int)rect.width;
+ event.height = cast(int)rect.height;
sendEvent (DWT.Paint, event);
event.gc = null;
gc.dispose ();
@@ -806,8 +827,8 @@
void enableWidget (bool enabled) {
//TODO - other views
- if (view instanceof NSControl) {
- ((NSControl)view).setEnabled(enabled);
+ if (cast(NSControl) view) {
+ (cast(NSControl)view).setEnabled(enabled);
}
}
@@ -822,7 +843,7 @@
}
Menu [] findMenus (Control control) {
- if (menu !is null && this !is control) return new Menu [] {menu};
+ if (menu !is null && this !is control) return new Menu [] [menu];
return new Menu [0];
}
@@ -965,7 +986,7 @@
public Rectangle getBounds () {
checkWidget();
NSRect rect = topView().frame();
- return new Rectangle((int)rect.x, (int)rect.y, (int)rect.width, (int)rect.height);
+ return new Rectangle(cast(int)rect.x, cast(int)rect.y, cast(int)rect.width, cast(int)rect.height);
}
/**
@@ -1090,7 +1111,7 @@
public Point getLocation () {
checkWidget();
NSRect rect = topView().frame();
- return new Point((int)rect.x, (int)rect.y);
+ return new Point(cast(int)rect.x, cast(int)rect.y);
}
/**
@@ -1124,9 +1145,9 @@
*
* @since 3.0
*/
-public Monitor getMonitor () {
+public dwt.widgets.Monitor.Monitor getMonitor () {
checkWidget();
- Monitor [] monitors = display.getMonitors ();
+ dwt.widgets.Monitor.Monitor [] monitors = display.getMonitors ();
if (monitors.length is 1) return monitors [0];
int index = -1, value = -1;
Rectangle bounds = getBounds ();
@@ -1231,7 +1252,7 @@
public Point getSize () {
checkWidget();
NSRect rect = topView().frame();
- return new Point((int)rect.width, (int)rect.height);
+ return new Point(cast(int)rect.width, cast(int)rect.height);
}
/**
@@ -1293,13 +1314,13 @@
* @param data the platform specific GC data
* @return the platform specific GC handle
*/
-public int internal_new_GC (GCData data) {
+public objc.id internal_new_GC (GCData data) {
checkWidget();
- int context = 0;
+ objc.id context = null;
if (data !is null && data.paintRect !is null) {
- context = NSGraphicsContext.currentContext().id;
+ context = NSGraphicsContext.currentContext().id_;
} else {
- context = NSGraphicsContext.graphicsContextWithWindow(view.window()).id;
+ context = NSGraphicsContext.graphicsContextWithWindow(view.window()).id_;
}
if (data !is null) {
int mask = DWT.LEFT_TO_RIGHT | DWT.RIGHT_TO_LEFT;
@@ -1360,7 +1381,7 @@
}
bool isFocusAncestor (Control control) {
- while (control !is null && control !is this && !(control instanceof Shell)) {
+ while (control !is null && control !is this && !(cast(Shell) control)) {
control = control.parent;
}
return control is this;
@@ -1461,12 +1482,12 @@
return getVisible () && parent.isVisible ();
}
-int menuForEvent (int nsEvent) {
+objc.id menuForEvent (objc.id nsEvent) {
NSPoint pt = NSEvent.mouseLocation();
NSWindow window = view.window();
- pt.y = (int) (window.screen().frame().height - pt.y);
- int x = (int) pt.x;
- int y = (int) pt.y;
+ pt.y = cast(int) (window.screen().frame().height - pt.y);
+ int x = cast(int) pt.x;
+ int y = cast(int) pt.y;
Event event = new Event ();
event.x = x;
event.y = y;
@@ -1477,11 +1498,11 @@
if (x !is event.x || y !is event.y) {
menu.setLocation (event.x, event.y);
}
- return menu.nsMenu.id;
+ return menu.nsMenu.id_;
}
- objc_super super_struct = new objc_super();
- super_struct.receiver = view.id;
- super_struct.cls = OS.objc_msgSend(view.id, OS.sel_superclass);
+ objc_super super_struct = objc_super();
+ super_struct.receiver = view.id_;
+ super_struct.cls = OS.objc_msgSend(view.id_, OS.sel_superclass);
return OS.objc_msgSendSuper(super_struct, OS.sel_menuForEvent_1, nsEvent);
}
@@ -1547,8 +1568,8 @@
event.count = nsEvent.clickCount();
NSPoint location = nsEvent.locationInWindow();
NSPoint point = view.convertPoint_fromView_(location, null);
- event.x = (int) point.x;
- event.y = (int) point.y;
+ event.x = cast(int) point.x;
+ event.y = cast(int) point.y;
setInputState (event, nsEvent, type);
sendEvent (type, event);
}
@@ -1558,12 +1579,12 @@
sendMouseEvent (nsEvent, DWT.MouseDown, 1);
}
-void mouseDragged(int theEvent) {
- NSEvent nsEvent = new NSEvent (theEvent);
+void mouseDragged(objc.id theEvent) {
+ NSEvent nsEvent = new NSEvent (objc.id);
sendMouseEvent (nsEvent, DWT.MouseMove, 1);
}
-void mouseUp(int theEvent) {
+void mouseUp(objc.id theEvent) {
NSEvent nsEvent = new NSEvent (theEvent);
sendMouseEvent (nsEvent, DWT.MouseUp, 1);
}
@@ -1587,7 +1608,7 @@
if (keyCode !is 0) {
event.keyCode = keyCode;
} else {
- event.character = (char) keys.characterAtIndex (i);
+ event.character = cast(char) keys.characterAtIndex (i);
//TODO - get unshifted values for Shift+1
event.keyCode = keyCodes.characterAtIndex (i);
}
@@ -1794,7 +1815,7 @@
*/
public void redraw (int x, int y, int width, int height, bool all) {
checkWidget ();
- NSRect rect = new NSRect();
+ NSRect rect = NSRect();
rect.x = x;
rect.y = y;
rect.width = width;
@@ -1805,7 +1826,7 @@
void releaseHandle () {
super.releaseHandle ();
if (view !is null) {
- OS.objc_msgSend(view.id, OS.sel_setTag_1, -1);
+ OS.objc_msgSend(view.id_, OS.sel_setTag_1, -1);
view.release();
}
view = null;
@@ -2370,7 +2391,7 @@
} else if (move) {
if (rect.x !is x || rect.y !is y) {
result |= MOVED;
- NSPoint point = new NSPoint();
+ NSPoint point = NSPoint();
point.x = x;
point.y = y;
topView.setFrameOrigin(point);
@@ -2378,7 +2399,7 @@
} else if (resize) {
if (rect.width !is width || rect.height !is height) {
result |= RESIZED;
- NSSize size = new NSSize();
+ NSSize size = NSSize();
size.width = width;
size.height = height;
topView.setFrameSize(size);
@@ -2566,8 +2587,8 @@
void setFont (NSFont font) {
//TODO - bad cast
- if (view instanceof NSControl) {
- ((NSControl)view).setFont(font);
+ if (cast(NSControl) view) {
+ (cast(NSControl)view).setFont(font);
}
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Dialog.d
--- a/dwt/widgets/Dialog.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Dialog.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,15 +7,21 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Dialog;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTException;
+import dwt.dwthelper.utils;
+import dwt.widgets.Display;
+import dwt.widgets.Shell;
+import dwt.widgets.Widget;
+
/**
* This class is the abstract superclass of the classes
* that represent the built in platform dialogs.
@@ -94,7 +100,7 @@
* ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
*
*/
-public Dialog (Shell parent) {
+public this (Shell parent) {
this (parent, DWT.PRIMARY_MODAL);
}
@@ -124,7 +130,7 @@
* @see DWT#APPLICATION_MODAL
* @see DWT#SYSTEM_MODAL
*/
-public Dialog (Shell parent, int style) {
+public this (Shell parent, int style) {
checkParent (parent);
this.parent = parent;
this.style = style;
@@ -144,7 +150,7 @@
* @see Widget#checkSubclass
*/
protected void checkSubclass () {
- if (!Display.isValidClass (getClass ())) {
+ if (!Display.isValidClass (this.classinfo)) {
error (DWT.ERROR_INVALID_SUBCLASS);
}
}
@@ -256,7 +262,7 @@
*
*/
public void setText (String string) {
- if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
+ //if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
title = string;
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Display.d
--- a/dwt/widgets/Display.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Display.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,11 +7,12 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Display;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTError;
import dwt.DWTException;
@@ -56,6 +57,29 @@
import dwt.internal.cocoa.SWTWindowDelegate;
import dwt.internal.cocoa.id;
+import tango.core.Thread;
+
+import dwt.dwthelper.Runnable;
+import dwt.dwthelper.System;
+import dwt.dwthelper.utils;
+
+import dwt.internal.c.carboncore.MacTypes;
+
+import dwt.internal.cocoa.NSInteger;
+
+import dwt.widgets.Caret;
+import dwt.widgets.Control;
+import dwt.widgets.Dialog;
+import dwt.widgets.Event;
+import dwt.widgets.EventTable;
+import dwt.widgets.Listener;
+import dwt.widgets.Menu;
+import dwt.widgets.Monitor;
+import dwt.widgets.Shell;
+import dwt.widgets.Synchronizer;
+import dwt.widgets.Tray;
+import dwt.widgets.Widget;
+
/**
* Instances of this class are responsible for managing the
* connection between DWT and the underlying operating
@@ -131,7 +155,7 @@
* @see #sleep
* @see Device#dispose
*/
-public class Display extends Device {
+public class Display : Device {
/* Windows and Events */
Event [] eventQueue;
@@ -152,7 +176,7 @@
NSApplication application;
NSAutoreleasePool pool;
- NSPoint cascade = new NSPoint();
+ NSPoint cascade = NSPoint();
Callback applicationDelegateCallback3;
Callback windowDelegateCallback2, windowDelegateCallback3, windowDelegateCallback4, windowDelegateCallback5;
@@ -176,98 +200,98 @@
Cursor [] cursors = new Cursor [DWT.CURSOR_HAND + 1];
/* Key Mappings. */
- static int [] [] KeyTable = {
+ static int [] [] KeyTable = [
- /* Keyboard and Mouse Masks */
-// {58, DWT.ALT},
-// {56, DWT.SHIFT},
-// {59, DWT.CONTROL},
-// {55, DWT.COMMAND},
+ /* Keyboard and Mouse Masks */
+// [58, DWT.ALT],
+// [56, DWT.SHIFT],
+// [59, DWT.CONTROL],
+// [55, DWT.COMMAND],
- /* Non-Numeric Keypad Keys */
- {OS.NSUpArrowFunctionKey, DWT.ARROW_UP},
- {OS.NSDownArrowFunctionKey, DWT.ARROW_DOWN},
- {OS.NSLeftArrowFunctionKey, DWT.ARROW_LEFT},
- {OS.NSRightArrowFunctionKey, DWT.ARROW_RIGHT},
- {OS.NSPageUpFunctionKey, DWT.PAGE_UP},
- {OS.NSPageDownFunctionKey, DWT.PAGE_DOWN},
- {OS.NSHomeFunctionKey, DWT.HOME},
- {OS.NSEndFunctionKey, DWT.END},
-
-// {??, DWT.INSERT},
+ /* Non-Numeric Keypad Keys */
+ [OS.NSUpArrowFunctionKey, DWT.ARROW_UP],
+ [OS.NSDownArrowFunctionKey, DWT.ARROW_DOWN],
+ [OS.NSLeftArrowFunctionKey, DWT.ARROW_LEFT],
+ [OS.NSRightArrowFunctionKey, DWT.ARROW_RIGHT],
+ [OS.NSPageUpFunctionKey, DWT.PAGE_UP],
+ [OS.NSPageDownFunctionKey, DWT.PAGE_DOWN],
+ [OS.NSHomeFunctionKey, DWT.HOME],
+ [OS.NSEndFunctionKey, DWT.END],
+
+// [??, DWT.INSERT],
- /* Virtual and Ascii Keys */
- {OS.NSDeleteCharacter, DWT.BS},
-// {36, DWT.CR},
- {OS.NSDeleteFunctionKey, DWT.DEL},
-// {53, DWT.ESC},
-// {76, DWT.LF},
-// {48, DWT.TAB},
-
- /* Functions Keys */
- {OS.NSF1FunctionKey, DWT.F1},
- {OS.NSF2FunctionKey, DWT.F2},
- {OS.NSF3FunctionKey, DWT.F3},
- {OS.NSF4FunctionKey, DWT.F4},
- {OS.NSF5FunctionKey, DWT.F5},
- {OS.NSF6FunctionKey, DWT.F6},
- {OS.NSF7FunctionKey, DWT.F7},
- {OS.NSF8FunctionKey, DWT.F8},
- {OS.NSF9FunctionKey, DWT.F9},
- {OS.NSF10FunctionKey, DWT.F10},
- {OS.NSF11FunctionKey, DWT.F11},
- {OS.NSF12FunctionKey, DWT.F12},
- {OS.NSF13FunctionKey, DWT.F13},
- {OS.NSF14FunctionKey, DWT.F14},
- {OS.NSF15FunctionKey, DWT.F15},
-
- /* Numeric Keypad Keys */
-// {67, DWT.KEYPAD_MULTIPLY},
-// {69, DWT.KEYPAD_ADD},
-// {76, DWT.KEYPAD_CR},
-// {78, DWT.KEYPAD_SUBTRACT},
-// {65, DWT.KEYPAD_DECIMAL},
-// {75, DWT.KEYPAD_DIVIDE},
-// {82, DWT.KEYPAD_0},
-// {83, DWT.KEYPAD_1},
-// {84, DWT.KEYPAD_2},
-// {85, DWT.KEYPAD_3},
-// {86, DWT.KEYPAD_4},
-// {87, DWT.KEYPAD_5},
-// {88, DWT.KEYPAD_6},
-// {89, DWT.KEYPAD_7},
-// {91, DWT.KEYPAD_8},
-// {92, DWT.KEYPAD_9},
-// {81, DWT.KEYPAD_EQUAL},
+ /* Virtual and Ascii Keys */
+ [OS.NSDeleteCharacter, DWT.BS],
+// [36, DWT.CR],
+ [OS.NSDeleteFunctionKey, DWT.DEL],
+// [53, DWT.ESC],
+// [76, DWT.LF],
+// [48, DWT.TAB],
+
+ /* Functions Keys */
+ [OS.NSF1FunctionKey, DWT.F1],
+ [OS.NSF2FunctionKey, DWT.F2],
+ [OS.NSF3FunctionKey, DWT.F3],
+ [OS.NSF4FunctionKey, DWT.F4],
+ [OS.NSF5FunctionKey, DWT.F5],
+ [OS.NSF6FunctionKey, DWT.F6],
+ [OS.NSF7FunctionKey, DWT.F7],
+ [OS.NSF8FunctionKey, DWT.F8],
+ [OS.NSF9FunctionKey, DWT.F9],
+ [OS.NSF10FunctionKey, DWT.F10],
+ [OS.NSF11FunctionKey, DWT.F11],
+ [OS.NSF12FunctionKey, DWT.F12],
+ [OS.NSF13FunctionKey, DWT.F13],
+ [OS.NSF14FunctionKey, DWT.F14],
+ [OS.NSF15FunctionKey, DWT.F15],
+
+ /* Numeric Keypad Keys */
+// [67, DWT.KEYPAD_MULTIPLY],
+// [69, DWT.KEYPAD_ADD],
+// [76, DWT.KEYPAD_CR],
+// [78, DWT.KEYPAD_SUBTRACT],
+// [65, DWT.KEYPAD_DECIMAL],
+// [75, DWT.KEYPAD_DIVIDE],
+// [82, DWT.KEYPAD_0],
+// [83, DWT.KEYPAD_1],
+// [84, DWT.KEYPAD_2],
+// [85, DWT.KEYPAD_3],
+// [86, DWT.KEYPAD_4],
+// [87, DWT.KEYPAD_5],
+// [88, DWT.KEYPAD_6],
+// [89, DWT.KEYPAD_7],
+// [91, DWT.KEYPAD_8],
+// [92, DWT.KEYPAD_9],
+// [81, DWT.KEYPAD_EQUAL],
- /* Other keys */
-// {??, DWT.CAPS_LOCK},
-
-// {71, DWT.NUM_LOCK},
-
-// {??, DWT.SCROLL_LOCK},
-// {??, DWT.PAUSE},
-// {??, DWT.BREAK},
-// {??, DWT.PRINT_SCREEN},
-
- {OS.NSHelpFunctionKey, DWT.HELP},
-
- };
+ /* Other keys */
+// [??, DWT.CAPS_LOCK],
+
+// [71, DWT.NUM_LOCK],
+
+// [??, DWT.SCROLL_LOCK],
+// [??, DWT.PAUSE],
+// [??, DWT.BREAK],
+// [??, DWT.PRINT_SCREEN],
+
+ [OS.NSHelpFunctionKey, DWT.HELP],
+
+ ];
static String APP_NAME = "DWT";
- static final String ADD_WIDGET_KEY = "dwt.internal.addWidget";
+ static const String ADD_WIDGET_KEY = "dwt.internal.addWidget";
/* Multiple Displays. */
static Display Default;
static Display [] Displays = new Display [4];
/* Package Name */
- static final String PACKAGE_PREFIX = "dwt.widgets.";
+ static const String PACKAGE_PREFIX = "dwt.widgets.";
/* Timer */
Runnable timerList [];
NSTimer nsTimers [];
- SWTWindowDelegate timerDelegate = (SWTWindowDelegate)new SWTWindowDelegate().alloc().init();
+ SWTWindowDelegate timerDelegate = cast(SWTWindowDelegate)(new SWTWindowDelegate()).alloc().init();
SWTApplicationDelegate applicationDelegate;
/* Display Data */
@@ -280,8 +304,8 @@
* gets the current display. This code will
* be removed in the future.
*/
- static {
- DeviceFinder = new Runnable () {
+ static this () {
+ DeviceFinder = new class Runnable {
public void run () {
Device device = getCurrent ();
if (device is null) {
@@ -305,7 +329,7 @@
name.getChars (0, length, chars, 0);
byte [] buffer = new byte [length + 1];
for (int i=0; i> 8) + "." + Integer.toHexString((OS.VERSION & 0xF0) >> 4) + "." + Integer.toHexString(OS.VERSION & 0xF)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.Out.println ("***WARNING: DWT requires MacOS X version {}{}{}{}" , 10 , "." , 5 , " or greater"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ System.Out.println ("***WARNING: Detected: {}{}{}{}{}" , Integer.toHexString((OS.VERSION & 0xFF00) >> 8) , "." , Integer.toHexString((OS.VERSION & 0xF0) >> 4) , "." , Integer.toHexString(OS.VERSION & 0xF)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
error(DWT.ERROR_NOT_IMPLEMENTED);
}
@@ -629,7 +653,7 @@
* used) but both functions must be called in order for
* windows to come to the front.
*/
- int [] psn = new int [2];
+ ProcessSerialNumber* psn;
if (OS.GetCurrentProcess (psn) is OS.noErr) {
// int pid = OS.getpid ();
// byte [] buffer = null;
@@ -669,12 +693,12 @@
// }
}
- pool = (NSAutoreleasePool)new NSAutoreleasePool().alloc().init();
+ pool = cast(NSAutoreleasePool)(new NSAutoreleasePool()).alloc().init();
application = NSApplication.sharedApplication();
}
static void deregister (Display display) {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
for (int i=0; iERROR_DEVICE_DISPOSED - if the receiver has been disposed
*
*/
-public Widget findWidget (int handle) {
+public Widget findWidget (objc.id handle) {
checkDevice ();
- if (handle !is 0 && OS.objc_msgSend(handle, OS.sel_respondsToSelector_1, OS.sel_tag) !is 0) {
- int tag = OS.objc_msgSend(handle, OS.sel_tag);
+ if (handle !is null && OS.objc_msgSend(handle, OS.sel_respondsToSelector_1, OS.sel_tag) !is null) {
+ NSInteger tag = cast(NSInteger) OS.objc_msgSend(handle, OS.sel_tag);
if (tag !is -1) {
Object object = OS.JNIGetObject(tag);
- if (object instanceof Widget) {
- return (Widget)object;
+ if (cast(Widget) object) {
+ return cast(Widget)object;
}
}
}
@@ -799,7 +823,7 @@
*
* @since 3.1
*/
-public Widget findWidget (int handle, int id) {
+public Widget findWidget (objc.id handle, int id) {
checkDevice ();
return null;
}
@@ -837,7 +861,7 @@
* @return the display for the given thread
*/
public static Display findDisplay (Thread thread) {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
for (int i=0; i
*/
public Thread getSyncThread () {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED);
return synchronizer.syncThread;
}
@@ -1407,7 +1431,7 @@
NSColor color = null;
switch (id) {
case DWT.COLOR_INFO_FOREGROUND: return super.getSystemColor (DWT.COLOR_BLACK);
- case DWT.COLOR_INFO_BACKGROUND: return Color.cocoa_new (this, new float [] {0xFF / 255f, 0xFF / 255f, 0xE1 / 255f, 1});
+ case DWT.COLOR_INFO_BACKGROUND: return Color.cocoa_new (this, new float [] [0xFF / 255f, 0xFF / 255f, 0xE1 / 255f, 1]);
case DWT.COLOR_TITLE_FOREGROUND: color = NSColor.windowFrameTextColor(); break;
case DWT.COLOR_TITLE_BACKGROUND: color = NSColor.secondarySelectedControlColor(); break;
case DWT.COLOR_TITLE_BACKGROUND_GRADIENT: color = NSColor.windowFrameColor(); break;
@@ -1433,7 +1457,7 @@
if (color is null) return super.getSystemColor(id);
float[] components = new float[color.numberOfComponents()];
color.getComponents(components);
- return Color.cocoa_new (this, new float[]{components[0], components[1], components[2], components[3]});
+ return Color.cocoa_new (this, new float[][components[0], components[1], components[2], components[3]]);
}
/**
@@ -1564,7 +1588,7 @@
*
*/
public Thread getThread () {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED);
return thread;
}
@@ -1592,7 +1616,7 @@
if (appProc3 is 0) error (DWT.ERROR_NO_MORE_CALLBACKS);
String className = "SWTApplicationDelegate";
- int cls = OS.objc_allocateClassPair(OS.class_NSObject, className, 0);
+ objc.Class cls = OS.objc_allocateClassPair(OS.classinfo_NSObject, className, 0);
OS.class_addMethod(cls, OS.sel_applicationWillFinishLaunching_1, appProc3, "@:@");
OS.class_addMethod(cls, OS.sel_terminate_1, appProc3, "@:@");
OS.class_addMethod(cls, OS.sel_orderFrontStandardAboutPanel_1, appProc3, "@:@");
@@ -1603,7 +1627,7 @@
OS.class_addMethod(cls, OS.sel_applicationWillTerminate_1, appProc3, "@:@");
OS.objc_registerClassPair(cls);
- applicationDelegate = (SWTApplicationDelegate)new SWTApplicationDelegate().alloc().init();
+ applicationDelegate = cast(SWTApplicationDelegate)(new SWTApplicationDelegate()).alloc().init();
application.setDelegate(applicationDelegate);
}
@@ -1631,8 +1655,8 @@
int drawRectProc = OS.drawRect_CALLBACK(proc3);
String className = "SWTWindowDelegate";
- int cls = OS.objc_allocateClassPair(OS.class_NSObject, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ objc.Class cls = OS.objc_allocateClassPair(OS.classinfo_NSObject, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_windowDidResize_1, proc3, "@:@");
OS.class_addMethod(cls, OS.sel_windowShouldClose_1, proc3, "@:@");
OS.class_addMethod(cls, OS.sel_windowWillClose_1, proc3, "@:@");
@@ -1645,8 +1669,8 @@
OS.objc_registerClassPair(cls);
className = "SWTPanelDelegate";
- cls = OS.objc_allocateClassPair(OS.class_NSObject, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSObject, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_windowWillClose_1, dialogProc3, "@:@");
OS.class_addMethod(cls, OS.sel_changeColor_1, dialogProc3, "@:@");
OS.class_addMethod(cls, OS.sel_changeFont_1, dialogProc3, "@:@");
@@ -1655,8 +1679,8 @@
OS.objc_registerClassPair(cls);
className = "SWTMenu";
- cls = OS.objc_allocateClassPair(OS.class_NSMenu, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSMenu, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
// OS.class_addMethod(cls, OS.sel_menuWillOpen_1, proc3, "@:@");
@@ -1667,8 +1691,8 @@
OS.objc_registerClassPair(cls);
className = "SWTView";
- cls = OS.objc_allocateClassPair(OS.class_NSView, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSView, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
@@ -1684,8 +1708,8 @@
OS.objc_registerClassPair(cls);
className = "SWTScrollView";
- cls = OS.objc_allocateClassPair(OS.class_NSScrollView, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSScrollView, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_sendVerticalSelection, proc2, "@:");
@@ -1694,7 +1718,7 @@
OS.objc_registerClassPair(cls);
className = "SWTButton";
- cls = OS.objc_allocateClassPair(OS.class_NSButton, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSButton, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
// OS.class_addMethod(cls, OS.sel_mouseDown_1, proc3, "@:@");
OS.class_addMethod(cls, OS.sel_drawRect_1, drawRectProc, "@:i");
@@ -1704,7 +1728,7 @@
OS.objc_registerClassPair(cls);
className = "SWTTableView";
- cls = OS.objc_allocateClassPair(OS.class_NSTableView, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSTableView, className, 0);
OS.class_addMethod(cls, OS.sel_sendDoubleSelection, proc2, "@:");
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_numberOfRowsInTableView_1, proc3, "@:@");
@@ -1717,7 +1741,7 @@
OS.objc_registerClassPair(cls);
className = "SWTOutlineView";
- cls = OS.objc_allocateClassPair(OS.class_NSOutlineView, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSOutlineView, className, 0);
OS.class_addMethod(cls, OS.sel_sendDoubleSelection, proc2, "@:");
OS.class_addMethod(cls, OS.sel_outlineViewSelectionDidChange_1, proc3, "@:@");
OS.class_addMethod(cls, OS.sel_outlineView_1shouldCollapseItem_1, proc4, "@:@@");
@@ -1732,17 +1756,17 @@
OS.objc_registerClassPair(cls);
className = "SWTTreeItem";
- cls = OS.objc_allocateClassPair(OS.class_NSObject, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSObject, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.objc_registerClassPair(cls);
className = "SWTTabView";
- cls = OS.objc_allocateClassPair(OS.class_NSTabView, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSTabView, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tabView_1willSelectTabViewItem_1, proc4, "@:@@");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
@@ -1750,38 +1774,38 @@
OS.objc_registerClassPair(cls);
className = "SWTBox";
- cls = OS.objc_allocateClassPair(OS.class_NSBox, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSBox, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTProgressIndicator";
- cls = OS.objc_allocateClassPair(OS.class_NSProgressIndicator, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSProgressIndicator, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTSlider";
- cls = OS.objc_allocateClassPair(OS.class_NSSlider, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSSlider, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTPopUpButton";
- cls = OS.objc_allocateClassPair(OS.class_NSPopUpButton, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSPopUpButton, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTComboBox";
- cls = OS.objc_allocateClassPair(OS.class_NSComboBox, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSComboBox, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_comboBoxSelectionDidChange_1, proc3, "@:@");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
@@ -1789,14 +1813,14 @@
OS.objc_registerClassPair(cls);
className = "SWTDatePicker";
- cls = OS.objc_allocateClassPair(OS.class_NSDatePicker, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSDatePicker, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTImageView";
- cls = OS.objc_allocateClassPair(OS.class_NSImageView, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSImageView, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_drawRect_1, OS.drawRect_CALLBACK(proc3), "@:i");
OS.class_addMethod(cls, OS.sel_mouseDown_1, proc3, "@:@");
@@ -1806,30 +1830,30 @@
OS.objc_registerClassPair(cls);
className = "SWTStepper";
- cls = OS.objc_allocateClassPair(OS.class_NSStepper, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSStepper, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTScroller";
- cls = OS.objc_allocateClassPair(OS.class_NSScroller, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSScroller, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
OS.objc_registerClassPair(cls);
className = "SWTMenuItem";
- cls = OS.objc_allocateClassPair(OS.class_NSMenuItem, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSMenuItem, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
OS.objc_registerClassPair(cls);
className = "SWTTextView";
- cls = OS.objc_allocateClassPair(OS.class_NSTextView, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSTextView, className, 0);
// OS.class_addMethod(cls, OS.sel_isFlipped, proc2, "@:");
// OS.class_addMethod(cls, OS.sel_sendSelection, proc2, "@:");
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_menuForEvent_1, proc3, "@:@");
@@ -1837,13 +1861,13 @@
OS.objc_registerClassPair(cls);
className = "SWTTextField";
- cls = OS.objc_allocateClassPair(OS.class_NSTextField, className, 0);
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSTextField, className, 0);
OS.class_addMethod(cls, OS.sel_drawRect_1, drawRectProc, "@:i");
OS.objc_registerClassPair(cls);
className = "SWTWindow";
- cls = OS.objc_allocateClassPair(OS.class_NSWindow, className, 0);
- OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, (byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
+ cls = OS.objc_allocateClassPair(OS.classinfo_NSWindow, className, 0);
+ OS.class_addIvar(cls, "tag", OS.PTR_SIZEOF, cast(byte)(Math.log(OS.PTR_SIZEOF) / Math.log(2)), "i");
OS.class_addMethod(cls, OS.sel_tag, proc2, "@:");
OS.class_addMethod(cls, OS.sel_setTag_1, proc3, "@:i");
OS.class_addMethod(cls, OS.sel_sendEvent_1, proc3, "@:@");
@@ -1872,7 +1896,7 @@
* ERROR_NO_HANDLES if a handle could not be obtained for gc creation
*
*/
-public int internal_new_GC (GCData data) {
+public objc.id internal_new_GC (GCData data) {
if (isDisposed()) DWT.error(DWT.ERROR_DEVICE_DISPOSED);
NSGraphicsContext context = application.context();
// NSAffineTransform transform = NSAffineTransform.transform();
@@ -1890,7 +1914,7 @@
data.foreground = getSystemColor(DWT.COLOR_BLACK).handle;
data.font = getSystemFont();
}
- return context.id;
+ return context.id_;
}
/**
@@ -1912,13 +1936,13 @@
}
static bool isValidClass (Class clazz) {
- String name = clazz.getName ();
+ String name = clazz.name;
int index = name.lastIndexOf ('.');
return name.substring (0, index + 1).equals (PACKAGE_PREFIX);
}
bool isValidThread () {
- return thread is Thread.currentThread ();
+ return thread is Thread.getThis ();
}
/**
@@ -1975,7 +1999,7 @@
*
*/
public bool post(Event event) {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED);
if (event is null) error (DWT.ERROR_NULL_ARGUMENT);
// int type = event.type;
@@ -2196,12 +2220,12 @@
if (to !is null && to.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT);
Point point = new Point (x, y);
if (from is to) return point;
- NSPoint pt = new NSPoint();
+ NSPoint pt = NSPoint();
pt.x = x;
pt.y = y;
NSWindow fromWindow = from !is null ? from.view.window() : null;
NSWindow toWindow = to !is null ? to.view.window() : null;
- if (toWindow !is null && fromWindow !is null && toWindow.id is fromWindow.id) {
+ if (toWindow !is null && fromWindow !is null && toWindow.id_ is fromWindow.id_) {
pt = from.view.convertPoint_toView_(pt, to.view);
} else {
if (from !is null) {
@@ -2215,8 +2239,8 @@
pt = to.view.convertPoint_fromView_(pt, null);
}
}
- point.x = (int)pt.x;
- point.y = (int)pt.y;
+ point.x = cast(int)pt.x;
+ point.y = cast(int)pt.y;
return point;
}
@@ -2306,12 +2330,12 @@
if (to !is null && to.isDisposed()) error (DWT.ERROR_INVALID_ARGUMENT);
Rectangle rectangle = new Rectangle (x, y, width, height);
if (from is to) return rectangle;
- NSPoint pt = new NSPoint();
+ NSPoint pt = NSPoint();
pt.x = x;
pt.y = y;
NSWindow fromWindow = from !is null ? from.view.window() : null;
NSWindow toWindow = to !is null ? to.view.window() : null;
- if (toWindow !is null && fromWindow !is null && toWindow.id is fromWindow.id) {
+ if (toWindow !is null && fromWindow !is null && toWindow.id_ is fromWindow.id_) {
pt = from.view.convertPoint_toView_(pt, to.view);
} else {
if (from !is null) {
@@ -2325,8 +2349,8 @@
pt = to.view.convertPoint_fromView_(pt, null);
}
}
- rectangle.x = (int)pt.x;
- rectangle.y = (int)pt.y;
+ rectangle.x = cast(int)pt.x;
+ rectangle.y = cast(int)pt.y;
return rectangle;
}
@@ -2356,7 +2380,7 @@
*/
public bool readAndDispatch () {
checkDevice ();
- NSAutoreleasePool pool = (NSAutoreleasePool)new NSAutoreleasePool().alloc().init();
+ NSAutoreleasePool pool = cast(NSAutoreleasePool)(new NSAutoreleasePool()).alloc().init();
try {
bool events = false;
events |= runTimers ();
@@ -2376,7 +2400,7 @@
}
static void register (Display display) {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
for (int i=0; i 1) {
menubar.removeItemAtIndex(count - 1);
count--;
@@ -2847,7 +2871,7 @@
if (synchronizer is null) error (DWT.ERROR_NULL_ARGUMENT);
if (synchronizer is this.synchronizer) return;
Synchronizer oldSynchronizer;
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
oldSynchronizer = this.synchronizer;
this.synchronizer = synchronizer;
}
@@ -2873,7 +2897,7 @@
public bool sleep () {
checkDevice ();
if (getMessageCount () !is 0) return true;
- NSAutoreleasePool pool = (NSAutoreleasePool)new NSAutoreleasePool().alloc().init();
+ NSAutoreleasePool pool = cast(NSAutoreleasePool)(new NSAutoreleasePool()).alloc().init();
try {
allowTimers = runAsyncMessages = false;
NSRunLoop.currentRunLoop().runMode(OS.NSDefaultRunLoopMode, NSDate.distantFuture());
@@ -2912,7 +2936,7 @@
*/
public void syncExec (Runnable runnable) {
Synchronizer synchronizer;
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED);
synchronizer = this.synchronizer;
}
@@ -2981,7 +3005,7 @@
nsTimers = newTimerIds;
}
NSNumber userInfo = NSNumber.numberWithInt(index);
- NSTimer timer = NSTimer.static_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(milliseconds / 1000.0, timerDelegate, OS.sel_timerProc_1, userInfo.id, false);
+ NSTimer timer = NSTimer.static_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(milliseconds / 1000.0, timerDelegate, OS.sel_timerProc_1, userInfo.id_, false);
timer.retain();
if (timer !is null) {
nsTimers [index] = timer;
@@ -3042,19 +3066,19 @@
* @see #sleep
*/
public void wake () {
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (isDisposed ()) error (DWT.ERROR_DEVICE_DISPOSED);
- if (thread is Thread.currentThread ()) return;
+ if (thread is Thread.getThis ()) return;
wakeThread ();
}
}
void wakeThread () {
- NSObject object = new NSObject().alloc().init();
+ NSObject object = (new NSObject()).alloc().init();
object.performSelectorOnMainThread_withObject_waitUntilDone_(OS.sel_release, null, false);
}
-int applicationDelegateProc(int id, int sel, int arg0) {
+int applicationDelegateProc(int ID, String sel, int arg0) {
if (sel is OS.sel_applicationWillFinishLaunching_1) {
id dict = NSDictionary.dictionaryWithObject(applicationDelegate, NSString.stringWith("NSOwner"));
NSString nibFile = NSString.stringWith("/System/Library/Frameworks/JavaVM.framework/Resources/English.lproj/DefaultApp.nib");
@@ -3101,191 +3125,191 @@
}
-int dialogProc(int id, int sel, int arg0) {
- int jniRef = OS.objc_msgSend(id, OS.sel_tag);
+int dialogProc(int id, String sel, int arg0) {
+ NSIntger jniRef = cast(NSIntger) OS.objc_msgSend(id, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- if (sel is OS.sel_changeColor_1) {
- ColorDialog dialog = (ColorDialog)OS.JNIGetObject(jniRef);
+ if (sel == OS.sel_changeColor_1) {
+ ColorDialog dialog = cast(ColorDialog)OS.JNIGetObject(jniRef);
if (dialog is null) return 0;
dialog.changeColor(arg0);
- } else if (sel is OS.sel_changeFont_1) {
- FontDialog dialog = (FontDialog)OS.JNIGetObject(jniRef);
+ } else if (sel == OS.sel_changeFont_1) {
+ FontDialog dialog = cast(FontDialog)OS.JNIGetObject(jniRef);
if (dialog is null) return 0;
dialog.changeFont(arg0);
- } else if (sel is OS.sel_windowWillClose_1) {
+ } else if (sel == OS.sel_windowWillClose_1) {
Object object = OS.JNIGetObject(jniRef);
- if (object instanceof FontDialog) {
- ((FontDialog)object).windowWillClose(arg0);
- } else if (object instanceof ColorDialog) {
- ((ColorDialog)object).windowWillClose(arg0);
+ if (cast(FontDialog) object) {
+ (cast(FontDialog)object).windowWillClose(arg0);
+ } else if (cast(ColorDialog) object) {
+ (cast(ColorDialog)object).windowWillClose(arg0);
}
}
return 0;
}
-int windowDelegateProc(int delegate, int sel) {
- if (sel is OS.sel_tag) {
- int[] tag = new int[1];
- OS.object_getInstanceVariable(delegate, "tag", tag);
+int windowDelegateProc(objc.id delegatee, String sel) {
+ if (sel == OS.sel_tag) {
+ int[1] tag;
+ OS.object_getInstanceVariable(delegatee, "tag", tag);
return tag[0];
}
- int jniRef = OS.objc_msgSend(delegate, OS.sel_tag);
+ NSInteger jniRef = cast(NSInteger) OS.objc_msgSend(delegatee, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- Widget widget = (Widget)OS.JNIGetObject(jniRef);
+ Widget widget = cast(Widget)OS.JNIGetObject(jniRef);
if (widget is null) return 0;
- if (sel is OS.sel_isFlipped) {
+ if (sel == OS.sel_isFlipped) {
return widget.isFlipped() ? 1 : 0;
}
- if (sel is OS.sel_sendSelection) {
+ if (sel == OS.sel_sendSelection) {
widget.sendSelection();
return 0;
}
- if (sel is OS.sel_sendArrowSelection) {
+ if (sel == OS.sel_sendArrowSelection) {
widget.sendArrowSelection();
return 0;
}
- if (sel is OS.sel_sendDoubleSelection) {
+ if (sel == OS.sel_sendDoubleSelection) {
widget.sendDoubleSelection();
return 0;
}
- if (sel is OS.sel_sendVerticalSelection) {
+ if (sel == OS.sel_sendVerticalSelection) {
widget.sendVerticalSelection();
return 0;
}
- if (sel is OS.sel_sendHorizontalSelection) {
+ if (sel == OS.sel_sendHorizontalSelection) {
widget.sendHorizontalSelection();
return 0;
}
- if (sel is OS.sel_acceptsFirstResponder) {
+ if (sel == OS.sel_acceptsFirstResponder) {
return widget.acceptsFirstResponder() ? 1 : 0;
}
- if (sel is OS.sel_becomeFirstResponder) {
+ if (sel == OS.sel_becomeFirstResponder) {
return widget.becomeFirstResponder() ? 1 : 0;
}
- if (sel is OS.sel_resignFirstResponder) {
+ if (sel == OS.sel_resignFirstResponder) {
return widget.resignFirstResponder() ? 1 : 0;
}
return 0;
}
-int windowDelegateProc(int id, int sel, int arg0) {
- if (sel is OS.sel_timerProc_1) {
+int windowDelegateProc(objc.id ID, int sel, int arg0) {
+ if (sel == OS.sel_timerProc_1) {
return timerProc (arg0);
}
- if (sel is OS.sel_setTag_1) {
+ if (sel == OS.sel_setTag_1) {
OS.object_setInstanceVariable(id, "tag", arg0);
return 0;
}
- int jniRef = OS.objc_msgSend(id, OS.sel_tag);
+ int jniRef = OS.objc_msgSend(ID, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- Widget widget = (Widget)OS.JNIGetObject(jniRef);
+ Widget widget = cast(Widget)OS.JNIGetObject(jniRef);
if (widget is null) return 0;
- if (sel is OS.sel_windowWillClose_1) {
+ if (sel == OS.sel_windowWillClose_1) {
widget.windowWillClose(arg0);
- } else if (sel is OS.sel_drawRect_1) {
- NSRect rect = new NSRect();
+ } else if (sel == OS.sel_drawRect_1) {
+ NSRect rect = NSRect();
OS.memmove(rect, arg0, NSRect.sizeof);
- widget.drawRect(id, rect);
- } else if (sel is OS.sel_windowShouldClose_1) {
+ widget.drawRect(ID, rect);
+ } else if (sel == OS.sel_windowShouldClose_1) {
return widget.windowShouldClose(arg0) ? 1 : 0;
- } else if (sel is OS.sel_mouseDown_1) {
+ } else if (sel == OS.sel_mouseDown_1) {
widget.mouseDown(arg0);
- } else if (sel is OS.sel_rightMouseDown_1) {
+ } else if (sel == OS.sel_rightMouseDown_1) {
widget.rightMouseDown(arg0);
- } else if (sel is OS.sel_mouseDragged_1) {
+ } else if (sel == OS.sel_mouseDragged_1) {
widget.mouseDragged(arg0);
- } else if (sel is OS.sel_mouseUp_1) {
+ } else if (sel == OS.sel_mouseUp_1) {
widget.mouseUp(arg0);
- } else if (sel is OS.sel_mouseEntered_1) {
+ } else if (sel == OS.sel_mouseEntered_1) {
widget.mouseEntered(arg0);
- } else if (sel is OS.sel_flagsChanged_1) {
+ } else if (sel == OS.sel_flagsChanged_1) {
widget.flagsChanged(arg0);
- } else if (sel is OS.sel_numberOfRowsInTableView_1) {
+ } else if (sel == OS.sel_numberOfRowsInTableView_1) {
return widget.numberOfRowsInTableView(arg0);
- } else if (sel is OS.sel_comboBoxSelectionDidChange_1) {
+ } else if (sel == OS.sel_comboBoxSelectionDidChange_1) {
widget.comboBoxSelectionDidChange(arg0);
- } else if (sel is OS.sel_tableViewSelectionDidChange_1) {
+ } else if (sel == OS.sel_tableViewSelectionDidChange_1) {
widget.tableViewSelectionDidChange(arg0);
- } else if (sel is OS.sel_windowDidResignKey_1) {
+ } else if (sel == OS.sel_windowDidResignKey_1) {
widget.windowDidResignKey(arg0);
- } else if (sel is OS.sel_windowDidBecomeKey_1) {
+ } else if (sel == OS.sel_windowDidBecomeKey_1) {
widget.windowDidBecomeKey(arg0);
- } else if (sel is OS.sel_windowDidResize_1) {
+ } else if (sel == OS.sel_windowDidResize_1) {
widget.windowDidResize(arg0);
- } else if (sel is OS.sel_windowDidMove_1) {
+ } else if (sel == OS.sel_windowDidMove_1) {
widget.windowDidMove(arg0);
- } else if (sel is OS.sel_menuForEvent_1) {
+ } else if (sel == OS.sel_menuForEvent_1) {
return widget.menuForEvent(arg0);
- } else if (sel is OS.sel_menuWillOpen_1) {
+ } else if (sel == OS.sel_menuWillOpen_1) {
widget.menuWillOpen(arg0);
- } else if (sel is OS.sel_menuWillClose_1) {
+ } else if (sel == OS.sel_menuWillClose_1) {
widget.menuWillClose(arg0);
- } else if (sel is OS.sel_menuNeedsUpdate_1) {
+ } else if (sel == OS.sel_menuNeedsUpdate_1) {
widget.menuNeedsUpdate(arg0);
- } else if (sel is OS.sel_outlineViewSelectionDidChange_1) {
+ } else if (sel == OS.sel_outlineViewSelectionDidChange_1) {
widget.outlineViewSelectionDidChange(arg0);
- } else if (sel is OS.sel_sendEvent_1) {
+ } else if (sel == OS.sel_sendEvent_1) {
widget.windowSendEvent(id, arg0);
- } else if (sel is OS.sel_helpRequested_1) {
+ } else if (sel == OS.sel_helpRequested_1) {
widget.helpRequested(arg0);
}
return 0;
}
-int windowDelegateProc(int delegate, int sel, int arg0, int arg1) {
- int jniRef = OS.objc_msgSend(delegate, OS.sel_tag);
+int windowDelegateProc(objc.id delegatee, String sel, int arg0, int arg1) {
+ NSInteger jniRef = cast(NSInteger) OS.objc_msgSend(delegatee, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- Widget widget = (Widget)OS.JNIGetObject(jniRef);
+ Widget widget = cast(Widget)OS.JNIGetObject(jniRef);
if (widget is null) return 0;
- if (sel is OS.sel_tabView_1willSelectTabViewItem_1) {
+ if (sel == OS.sel_tabView_1willSelectTabViewItem_1) {
widget.willSelectTabViewItem(arg0, arg1);
- } else if (sel is OS.sel_outlineView_1isItemExpandable_1) {
+ } else if (sel == OS.sel_outlineView_1isItemExpandable_1) {
return widget.outlineView_isItemExpandable(arg0, arg1) ? 1 : 0;
- } else if (sel is OS.sel_outlineView_1numberOfChildrenOfItem_1) {
+ } else if (sel == OS.sel_outlineView_1numberOfChildrenOfItem_1) {
return widget.outlineView_numberOfChildrenOfItem(arg0, arg1);
- } else if (sel is OS.sel_outlineView_1shouldCollapseItem_1) {
+ } else if (sel == OS.sel_outlineView_1shouldCollapseItem_1) {
return widget.outlineView_shouldCollapseItem(arg0, arg1) ? 1 : 0;
- } else if (sel is OS.sel_outlineView_1shouldExpandItem_1) {
+ } else if (sel == OS.sel_outlineView_1shouldExpandItem_1) {
return widget.outlineView_shouldExpandItem(arg0, arg1) ? 1 : 0;
- } else if (sel is OS.sel_menu_1willHighlightItem_1) {
+ } else if (sel == OS.sel_menu_1willHighlightItem_1) {
widget.menu_willHighlightItem(arg0, arg1);
}
return 0;
}
-int windowDelegateProc(int delegate, int sel, int arg0, int arg1, int arg2) {
- int jniRef = OS.objc_msgSend(delegate, OS.sel_tag);
+int windowDelegateProc(objc.id delegatee, int sel, int arg0, int arg1, int arg2) {
+ NSInteger jniRef = cast(NSInteger) OS.objc_msgSend(delegatee, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- Widget widget = (Widget)OS.JNIGetObject(jniRef);
+ Widget widget = cast(Widget)OS.JNIGetObject(jniRef);
if (widget is null) return 0;
- if (sel is OS.sel_tableView_1objectValueForTableColumn_1row_1) {
+ if (sel == OS.sel_tableView_1objectValueForTableColumn_1row_1) {
return widget.tableView_objectValueForTableColumn_row(arg0, arg1, arg2);
}
- if (sel is OS.sel_tableView_1shouldEditTableColumn_1row_1) {
+ if (sel == OS.sel_tableView_1shouldEditTableColumn_1row_1) {
return widget.tableView_shouldEditTableColumn_row(arg0, arg1, arg2) ? 1 : 0;
- } else if (sel is OS.sel_textView_1clickedOnLink_1atIndex_1) {
+ } else if (sel == OS.sel_textView_1clickedOnLink_1atIndex_1) {
return widget.clickOnLink(arg0, arg1, arg2) ? 1 : 0;
- } else if (sel is OS.sel_outlineView_1child_1ofItem_1) {
+ } else if (sel == OS.sel_outlineView_1child_1ofItem_1) {
return widget.outlineView_child_ofItem(arg0, arg1, arg2);
- } else if (sel is OS.sel_outlineView_1objectValueForTableColumn_1byItem_1) {
+ } else if (sel == OS.sel_outlineView_1objectValueForTableColumn_1byItem_1) {
return widget.outlineView_objectValueForTableColumn_byItem(arg0, arg1, arg2);
}
return 0;
}
-int windowDelegateProc(int delegate, int sel, int arg0, int arg1, int arg2, int arg3) {
- int jniRef = OS.objc_msgSend(delegate, OS.sel_tag);
+int windowDelegateProc(objc.id delegatee, int sel, int arg0, int arg1, int arg2, int arg3) {
+ NSInteger jniRef = cast(NSInteger) OS.objc_msgSend(delegatee, OS.sel_tag);
if (jniRef is 0 || jniRef is -1) return 0;
- Widget widget = (Widget)OS.JNIGetObject(jniRef);
+ Widget widget = cast(Widget)OS.JNIGetObject(jniRef);
if (widget is null) return 0;
- if (sel is OS.sel_tableView_1willDisplayCell_1forTableColumn_1row_1) {
+ if (sel == OS.sel_tableView_1willDisplayCell_1forTableColumn_1row_1) {
widget.tableView_willDisplayCell_forTableColumn_row(arg0, arg1, arg2, arg3);
- } else if (sel is OS.sel_outlineView_1willDisplayCell_1forTableColumn_1item_1) {
+ } else if (sel == OS.sel_outlineView_1willDisplayCell_1forTableColumn_1item_1) {
widget.outlineView_willDisplayCell_forTableColumn_item(arg0, arg1, arg2, arg3);
- } else if (sel is OS.sel_outlineView_1setObjectValue_1forTableColumn_1byItem_1) {
+ } else if (sel == OS.sel_outlineView_1setObjectValue_1forTableColumn_1byItem_1) {
widget.outlineView_setObjectValue_forTableColumn_byItem(arg0, arg1, arg2, arg3);
- } else if (sel is OS.sel_tableView_1setObjectValue_1forTableColumn_1row_1) {
+ } else if (sel == OS.sel_tableView_1setObjectValue_1forTableColumn_1row_1) {
widget.tableView_setObjectValue_forTableColumn_row(arg0, arg1, arg2, arg3);
}
return 0;
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Event.d
--- a/dwt/widgets/Event.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Event.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,15 +7,23 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Event;
-import dwt.dwthelper.utils;
-
import dwt.graphics.GC;
import dwt.graphics.Rectangle;
+import tango.text.convert.Format;
+
+import dwt.dwthelper.utils;
+
+import dwt.widgets.Widget;
+import dwt.widgets.Display;
+
/**
* Instances of this class provide a description of a particular
* event which occurred within DWT. The DWT untyped listener
@@ -217,6 +225,7 @@
* @return a string representation of the event
*/
public String toString () {
- return "Event {type=" + type + " " + widget + " time=" + time + " data=" + data + " x=" + x + " y=" + y + " width=" + width + " height=" + height + " detail=" + detail + "}"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
+ return Format( "Event {{type={} {} time={} data={} x={} y={} width={} height={} detail={}}",
+ type, widget, time, data, x, y, width, height, detail ); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
}
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/EventTable.d
--- a/dwt/widgets/EventTable.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/EventTable.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,14 +7,23 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.EventTable;
-import dwt.dwthelper.utils;
import dwt.DWT;
import dwt.internal.DWTEventListener;
+import dwt.dwthelper.System;
+import dwt.dwthelper.utils;
+
+import dwt.widgets.Event;
+import dwt.widgets.Listener;
+import dwt.widgets.TypedListener;
+
/**
* Instances of this class implement a simple
* look up mechanism that maps an event type
@@ -26,7 +35,7 @@
int [] types;
Listener [] listeners;
int level;
- static final int GROW_SIZE = 4;
+ static const int GROW_SIZE = 4;
public Listener [] getListeners (int eventType) {
if (types is null) return new Listener [0];
@@ -59,7 +68,7 @@
System.arraycopy (types, 0, newTypes, 0, length);
types = newTypes;
Listener [] newListeners = new Listener [length + GROW_SIZE];
- System.arraycopy (listeners, 0, newListeners, 0, length);
+ SimpleType!(Listener).arraycopy (listeners, 0, newListeners, 0, length);
listeners = newListeners;
}
types [index] = eventType;
@@ -118,7 +127,7 @@
if (level is 0) {
int end = types.length - 1;
System.arraycopy (types, index + 1, types, index, end - index);
- System.arraycopy (listeners, index + 1, listeners, index, end - index);
+ SimpleType!(Listener).arraycopy (listeners, index + 1, listeners, index, end - index);
index = end;
} else {
if (level > 0) level = -level;
@@ -141,8 +150,8 @@
if (types is null) return;
for (int i=0; i
*******************************************************************************/
module dwt.widgets.Item;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTException;
import dwt.graphics.Image;
+import dwt.dwthelper.utils;
+import dwt.widgets.Widget;
+
/**
* This class is the abstract superclass of all non-windowed
* user interface objects that occur within specific controls.
@@ -29,7 +33,7 @@
*
*/
-public abstract class Item extends Widget {
+public abstract class Item : Widget {
String text;
Image image;
@@ -60,7 +64,7 @@
* @see DWT
* @see Widget#getStyle
*/
-public Item (Widget parent, int style) {
+public this (Widget parent, int style) {
super (parent, style);
text = "";
}
@@ -95,7 +99,7 @@
* @see DWT
* @see Widget#getStyle
*/
-public Item (Widget parent, int style, int index) {
+public this (Widget parent, int style, int index) {
this (parent, style);
}
@@ -180,7 +184,7 @@
*/
public void setText (String string) {
checkWidget ();
- if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
+ //if (string is null) error (DWT.ERROR_NULL_ARGUMENT);
text = string;
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Layout.d
--- a/dwt/widgets/Layout.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Layout.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,14 +7,19 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Layout;
-import dwt.dwthelper.utils;
-
import dwt.graphics.Point;
+import dwt.dwthelper.utils;
+import dwt.widgets.Control;
+import dwt.widgets.Composite;
+
/**
* A layout controls the position and size
* of the children of a composite widget.
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Listener.d
--- a/dwt/widgets/Listener.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Listener.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,11 +7,14 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Listener;
-import dwt.dwthelper.utils;
+import dwt.widgets.Event;
/**
* Implementers of Listener
provide a simple
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Monitor.d
--- a/dwt/widgets/Monitor.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Monitor.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,6 +7,9 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Monitor;
@@ -29,7 +32,7 @@
/**
* Prevents uninitialized instances from being created outside the package.
*/
-Monitor () {
+this () {
}
/**
@@ -42,10 +45,10 @@
*
* @see #hashCode()
*/
-public bool equals (Object object) {
+public bool opEquals (Object object) {
if (object is this) return true;
- if (!(object instanceof Monitor)) return false;
- Monitor monitor = (Monitor) object;
+ if (!(cast(dwt.widgets.Monitor.Monitor) object)) return false;
+ dwt.widgets.Monitor.Monitor monitor = cast(dwt.widgets.Monitor.Monitor) object;
return handle is monitor.handle;
}
@@ -80,8 +83,8 @@
*
* @see #equals(Object)
*/
-public int hashCode () {
- return (int)/*64*/handle;
+public hash_t toHash () {
+ return cast(hash_t)/*64*/handle;
}
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/RunnableLock.d
--- a/dwt/widgets/RunnableLock.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/RunnableLock.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,9 +7,15 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.RunnableLock;
+import tango.core.Thread;
+
+import dwt.dwthelper.Runnable;
import dwt.dwthelper.utils;
@@ -25,7 +31,7 @@
Thread thread;
Throwable throwable;
-RunnableLock (Runnable runnable) {
+this (Runnable runnable) {
this.runnable = runnable;
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Synchronizer.d
--- a/dwt/widgets/Synchronizer.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Synchronizer.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,16 +7,25 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Synchronizer;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTException;
import dwt.graphics.Device;
import dwt.internal.Compatibility;
+
+import tango.core.Thread;
+import tango.core.Exception;
+
+import dwt.dwthelper.Runnable;
+import dwt.dwthelper.utils;
+import dwt.widgets.Display;
+import dwt.widgets.RunnableLock;
/**
* Instances of this class provide synchronization support
@@ -41,18 +50,18 @@
RunnableLock [] messages;
Object messageLock = new Object ();
Thread syncThread;
- static final int GROW_SIZE = 4;
- static final int MESSAGE_LIMIT = 64;
+ static const int GROW_SIZE = 4;
+ static const int MESSAGE_LIMIT = 64;
//TEMPORARY CODE
- static final bool IS_CARBON = "carbon".equals (DWT.getPlatform ());
+ static const bool IS_CARBON = "carbon".equals (DWT.getPlatform ());
/**
* Constructs a new instance of this class.
*
* @param display the display to create the synchronizer on
*/
-public Synchronizer (Display display) {
+public this (Display display) {
this.display = display;
}
@@ -161,7 +170,7 @@
*/
protected void syncExec (Runnable runnable) {
RunnableLock lock = null;
- synchronized (Device.class) {
+ synchronized (Device.classinfo) {
if (display is null || display.isDisposed ()) DWT.error (DWT.ERROR_DEVICE_DISPOSED);
if (!display.isValidThread ()) {
if (runnable is null) {
@@ -172,7 +181,7 @@
/*
* Only remember the syncThread for syncExec.
*/
- lock.thread = Thread.currentThread();
+ lock.thread = Thread.getThis();
addLast (lock);
}
}
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/Tray.d
--- a/dwt/widgets/Tray.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/Tray.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,15 +7,21 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.Tray;
-import dwt.dwthelper.utils;
-
import dwt.DWT;
import dwt.DWTException;
+import dwt.dwthelper.utils;
+import dwt.widgets.Display;
+import dwt.widgets.Widget;
+import dwt.widgets.TrayItem;
+
/**
* Instances of this class represent the system tray that is part
* of the task bar status area on some operating systems.
@@ -34,11 +40,11 @@
*
* @since 3.0
*/
-public class Tray extends Widget {
+public class Tray : Widget {
int itemCount;
TrayItem [] items = new TrayItem [4];
-Tray (Display display, int style) {
+this (Display display, int style) {
if (display is null) display = Display.getCurrent ();
if (display is null) display = Display.getDefault ();
if (!display.isValidThread ()) {
diff -r 762fbe6f17d3 -r 2952d5604c0a dwt/widgets/TypedListener.d
--- a/dwt/widgets/TypedListener.d Sat Aug 23 13:49:00 2008 +0200
+++ b/dwt/widgets/TypedListener.d Fri Aug 29 21:46:05 2008 +0200
@@ -7,6 +7,9 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ *
+ * Port to the D programming language:
+ * Jacob Carlborg
*******************************************************************************/
module dwt.widgets.TypedListener;
@@ -55,6 +58,8 @@
import dwt.events.VerifyListener;
import dwt.internal.DWTEventListener;
+import dwt.widgets.Listener;
+
/**
* Instances of this class are internal DWT implementation
* objects which provide a mapping between the typed and untyped
@@ -68,7 +73,7 @@
*
* @see Listener
*/
-public class TypedListener implements Listener {
+public class TypedListener : Listener {
/**
* The receiver's event listener
@@ -86,7 +91,7 @@
*
* @param listener the event listener to store in the receiver
*/
-public TypedListener (DWTEventListener listener) {
+public this (DWTEventListener listener) {
eventListener = listener;
}
@@ -118,166 +123,166 @@
public void handleEvent (Event e) {
switch (e.type) {
case DWT.Activate: {
- ((ShellListener) eventListener).shellActivated(new ShellEvent(e));
+ (cast(ShellListener) eventListener).shellActivated(new ShellEvent(e));
break;
}
case DWT.Arm: {
- ((ArmListener) eventListener).widgetArmed (new ArmEvent (e));
+ (cast(ArmListener) eventListener).widgetArmed (new ArmEvent (e));
break;
}
case DWT.Close: {
/* Fields set by Decorations */
ShellEvent event = new ShellEvent (e);
- ((ShellListener) eventListener).shellClosed(event);
+ (cast(ShellListener) eventListener).shellClosed(event);
e.doit = event.doit;
break;
}
case DWT.Collapse: {
- if (eventListener instanceof TreeListener) {
- ((TreeListener) eventListener).treeCollapsed(new TreeEvent(e));
+ if (cast(TreeListener) eventListener) {
+ (cast(TreeListener) eventListener).treeCollapsed(new TreeEvent(e));
} else {
- ((ExpandListener) eventListener).itemCollapsed(new ExpandEvent(e));
+ (cast(ExpandListener) eventListener).itemCollapsed(new ExpandEvent(e));
}
break;
}
case DWT.Deactivate: {
- ((ShellListener) eventListener).shellDeactivated(new ShellEvent(e));
+ (cast(ShellListener) eventListener).shellDeactivated(new ShellEvent(e));
break;
}
case DWT.Deiconify: {
- ((ShellListener) eventListener).shellDeiconified(new ShellEvent(e));
+ (cast(ShellListener) eventListener).shellDeiconified(new ShellEvent(e));
break;
}
case DWT.DefaultSelection: {
- ((SelectionListener)eventListener).widgetDefaultSelected(new SelectionEvent(e));
+ (cast(SelectionListener)eventListener).widgetDefaultSelected(new SelectionEvent(e));
break;
}
case DWT.Dispose: {
- ((DisposeListener) eventListener).widgetDisposed(new DisposeEvent(e));
+ (cast(DisposeListener) eventListener).widgetDisposed(new DisposeEvent(e));
break;
}
case DWT.DragDetect: {
- ((DragDetectListener) eventListener).dragDetected(new DragDetectEvent(e));
+ (cast(DragDetectListener) eventListener).dragDetected(new DragDetectEvent(e));
break;
}
case DWT.Expand: {
- if (eventListener instanceof TreeListener) {
- ((TreeListener) eventListener).treeExpanded(new TreeEvent(e));
+ if (cast(TreeListener) eventListener) {
+ (cast(TreeListener) eventListener).treeExpanded(new TreeEvent(e));
} else {
- ((ExpandListener) eventListener).itemExpanded(new ExpandEvent(e));
+ (cast(ExpandListener) eventListener).itemExpanded(new ExpandEvent(e));
}
break;
}
case DWT.FocusIn: {
- ((FocusListener) eventListener).focusGained(new FocusEvent(e));
+ (cast(FocusListener) eventListener).focusGained(new FocusEvent(e));
break;
}
case DWT.FocusOut: {
- ((FocusListener) eventListener).focusLost(new FocusEvent(e));
+ (cast(FocusListener) eventListener).focusLost(new FocusEvent(e));
break;
}
case DWT.Help: {
- ((HelpListener) eventListener).helpRequested (new HelpEvent (e));
+ (cast(HelpListener) eventListener).helpRequested (new HelpEvent (e));
break;
}
case DWT.Hide: {
- ((MenuListener) eventListener).menuHidden(new MenuEvent(e));
+ (cast(MenuListener) eventListener).menuHidden(new MenuEvent(e));
break;
}
case DWT.Iconify: {
- ((ShellListener) eventListener).shellIconified(new ShellEvent(e));
+ (cast(ShellListener) eventListener).shellIconified(new ShellEvent(e));
break;
}
case DWT.KeyDown: {
/* Fields set by Control */
KeyEvent event = new KeyEvent(e);
- ((KeyListener) eventListener).keyPressed(event);
+ (cast(KeyListener) eventListener).keyPressed(event);
e.doit = event.doit;
break;
}
case DWT.KeyUp: {
/* Fields set by Control */
KeyEvent event = new KeyEvent(e);
- ((KeyListener) eventListener).keyReleased(event);
+ (cast(KeyListener) eventListener).keyReleased(event);
e.doit = event.doit;
break;
}
case DWT.Modify: {
- ((ModifyListener) eventListener).modifyText(new ModifyEvent(e));
+ (cast(ModifyListener) eventListener).modifyText(new ModifyEvent(e));
break;
}
case DWT.MenuDetect: {
MenuDetectEvent event = new MenuDetectEvent(e);
- ((MenuDetectListener) eventListener).menuDetected(event);
+ (cast(MenuDetectListener) eventListener).menuDetected(event);
e.x = event.x;
e.y = event.y;
e.doit = event.doit;
break;
}
case DWT.MouseDown: {
- ((MouseListener) eventListener).mouseDown(new MouseEvent(e));
+ (cast(MouseListener) eventListener).mouseDown(new MouseEvent(e));
break;
}
case DWT.MouseDoubleClick: {
- ((MouseListener) eventListener).mouseDoubleClick(new MouseEvent(e));
+ (cast(MouseListener) eventListener).mouseDoubleClick(new MouseEvent(e));
break;
}
case DWT.MouseEnter: {
- ((MouseTrackListener) eventListener).mouseEnter (new MouseEvent (e));
+ (cast(MouseTrackListener) eventListener).mouseEnter (new MouseEvent (e));
break;
}
case DWT.MouseExit: {
- ((MouseTrackListener) eventListener).mouseExit (new MouseEvent (e));
+ (cast(MouseTrackListener) eventListener).mouseExit (new MouseEvent (e));
break;
}
case DWT.MouseHover: {
- ((MouseTrackListener) eventListener).mouseHover (new MouseEvent (e));
+ (cast(MouseTrackListener) eventListener).mouseHover (new MouseEvent (e));
break;
}
case DWT.MouseMove: {
- ((MouseMoveListener) eventListener).mouseMove(new MouseEvent(e));
+ (cast(MouseMoveListener) eventListener).mouseMove(new MouseEvent(e));
return;
}
case DWT.MouseWheel: {
- ((MouseWheelListener) eventListener).mouseScrolled(new MouseEvent(e));
+ (cast(MouseWheelListener) eventListener).mouseScrolled(new MouseEvent(e));
return;
}
case DWT.MouseUp: {
- ((MouseListener) eventListener).mouseUp(new MouseEvent(e));
+ (cast(MouseListener) eventListener).mouseUp(new MouseEvent(e));
break;
}
case DWT.Move: {
- ((ControlListener) eventListener).controlMoved(new ControlEvent(e));
+ (cast(ControlListener) eventListener).controlMoved(new ControlEvent(e));
break;
}
case DWT.Paint: {
/* Fields set by Control */
PaintEvent event = new PaintEvent (e);
- ((PaintListener) eventListener).paintControl (event);
+ (cast(PaintListener) eventListener).paintControl (event);
e.gc = event.gc;
break;
}
case DWT.Resize: {
- ((ControlListener) eventListener).controlResized(new ControlEvent(e));
+ (cast(ControlListener) eventListener).controlResized(new ControlEvent(e));
break;
}
case DWT.Selection: {
/* Fields set by Sash */
SelectionEvent event = new SelectionEvent (e);
- ((SelectionListener) eventListener).widgetSelected (event);
+ (cast(SelectionListener) eventListener).widgetSelected (event);
e.x = event.x;
e.y = event.y;
e.doit = event.doit;
break;
}
case DWT.Show: {
- ((MenuListener) eventListener).menuShown(new MenuEvent(e));
+ (cast(MenuListener) eventListener).menuShown(new MenuEvent(e));
break;
}
case DWT.Traverse: {
/* Fields set by Control */
TraverseEvent event = new TraverseEvent (e);
- ((TraverseListener) eventListener).keyTraversed (event);
+ (cast(TraverseListener) eventListener).keyTraversed (event);
e.detail = event.detail;
e.doit = event.doit;
break;
@@ -285,7 +290,7 @@
case DWT.Verify: {
/* Fields set by Text, RichText */
VerifyEvent event = new VerifyEvent (e);
- ((VerifyListener) eventListener).verifyText (event);
+ (cast(VerifyListener) eventListener).verifyText (event);
e.text = event.text;
e.doit = event.doit;
break;