changeset 26:74a3be48bba8

Ported dwt.widgets.ScrollBar
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Mon, 08 Sep 2008 17:55:37 +0200
parents 060cdd4457aa
children dfcc6c4c4317
files dwt/internal/cocoa/CGBase.d dwt/internal/cocoa/CGFloat.d dwt/internal/cocoa/NSInteger.d dwt/widgets/ScrollBar.d
diffstat 4 files changed, 16 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/internal/cocoa/CGBase.d	Mon Sep 08 17:44:31 2008 +0200
+++ b/dwt/internal/cocoa/CGBase.d	Mon Sep 08 17:55:37 2008 +0200
@@ -7,17 +7,7 @@
  */
 module dwt.internal.cocoa.CGBase;
 
-version (X86_64)
-    alias double CGFloat;
-
-else version (PPC64)
+static if ((void*).sizeof > int.sizeof) // 64bit target
     alias double CGFloat;
-
-else version (X86)
-    alias float CGFloat;
-
-else version (PPC)
-    alias float CGFloat;
-
 else
-    pragma(msg, "CGFloat is Unimplemented");
\ No newline at end of file
+    alias float CGFloat;
\ No newline at end of file
--- a/dwt/internal/cocoa/CGFloat.d	Mon Sep 08 17:44:31 2008 +0200
+++ b/dwt/internal/cocoa/CGFloat.d	Mon Sep 08 17:55:37 2008 +0200
@@ -7,17 +7,8 @@
  */
 module dwt.internal.cocoa.CGFloat;
 
-version (X86_64)
-    alias double CGFloat;
-
-else version (PPC64)
+static if ((void*).sizeof > int.sizeof) // 64bit target
     alias double CGFloat;
 
-else version (X86)
-    alias float CGFloat;
-
-else version (PPC)
-    alias float CGFloat;
-
 else
-    pragma(msg, "CGFloat is unimplemented");
\ No newline at end of file
+    alias float CGFloat;
\ No newline at end of file
--- a/dwt/internal/cocoa/NSInteger.d	Mon Sep 08 17:44:31 2008 +0200
+++ b/dwt/internal/cocoa/NSInteger.d	Mon Sep 08 17:55:37 2008 +0200
@@ -9,6 +9,5 @@
 
 import tango.stdc.config;
 
-
 alias c_long NSInteger;
 alias c_ulong NSUInteger;
\ No newline at end of file
--- a/dwt/widgets/ScrollBar.d	Mon Sep 08 17:44:31 2008 +0200
+++ b/dwt/widgets/ScrollBar.d	Mon Sep 08 17:55:37 2008 +0200
@@ -7,11 +7,12 @@
  *
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     
+ * Port to the D programming language:
+ *     Jacob Carlborg <jacob.carlborg@gmail.com>
  *******************************************************************************/
 module dwt.widgets.ScrollBar;
 
-import dwt.dwthelper.utils;
-
  
 import dwt.DWT;
 import dwt.DWTException;
@@ -22,6 +23,13 @@
 import dwt.internal.cocoa.OS;
 import dwt.internal.cocoa.id;
 
+import dwt.dwthelper.utils;
+import dwt.internal.cocoa.CGFloat;
+import dwt.widgets.Event;
+import dwt.widgets.Scrollable;
+import dwt.widgets.TypedListener;
+import dwt.widgets.Widget;
+
 /**
  * Instances of this class are selectable user interface
  * objects that represent a range of positive, numeric values. 
@@ -412,7 +420,7 @@
         value = getSelection ();
     }
     Event event = new Event();
-    int hitPart = (cast(NSScroller)view).hitPart();
+    NSScrollerPart hitPart = (cast(NSScroller)view).hitPart();
     switch (hitPart) {
         case OS.NSScrollerDecrementLine:
             value -= increment;
@@ -656,7 +664,7 @@
     selection = Math.max(minimum, Math.min(maximum - thumb, selection));
     int range = maximum - thumb - minimum;
     float fraction = range < 0 ? 1 : cast(float)(selection - minimum) / range;
-    float knob = minimum is maximum ? 1 : cast(float)(thumb - minimum) / maximum - minimum;
+    CGFloat knob = minimum is maximum ? 1 : cast(CGFloat)(thumb - minimum) / maximum - minimum;
     widget.setFloatValue(fraction, knob);
     widget.setEnabled(range > 0); 
 }