# HG changeset patch # User Jacob Carlborg # Date 1220889337 -7200 # Node ID 74a3be48bba8edd6d90c424843846aebb00f797a # Parent 060cdd4457aa16548612c82affec697a4eb91238 Ported dwt.widgets.ScrollBar diff -r 060cdd4457aa -r 74a3be48bba8 dwt/internal/cocoa/CGBase.d --- 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 diff -r 060cdd4457aa -r 74a3be48bba8 dwt/internal/cocoa/CGFloat.d --- 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 diff -r 060cdd4457aa -r 74a3be48bba8 dwt/internal/cocoa/NSInteger.d --- 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 diff -r 060cdd4457aa -r 74a3be48bba8 dwt/widgets/ScrollBar.d --- 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 *******************************************************************************/ 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); }