From: Richard K. <ric...@us...> - 2005-05-17 04:25:46
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8058 Added Files: NSScroller.as Log Message: initial import not yet functional --- NEW FILE: NSScroller.as --- /* * Copyright (c) 2005, InfoEther, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1) Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2) Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3) The name InfoEther, Inc. may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ import org.actionstep.NSControl; import org.actionstep.constants.NSScrollerPart; import org.actionstep.constants.NSControlSize; import org.actionstep.constants.NSScrollArrowPosition; import org.actionstep.constants.NSControlTint; import org.actionstep.NSRect; class org.actionstep.NSScroller extends NSControl { private static var DEFAULT_SCROLLER_WIDTH:Number = 16; private var m_hitPart:NSScrollerPart; private var m_arrowsPosition:NSScrollArrowPosition; private var m_knobProportion:Number; private var m_controlTint:NSControlTint; private var m_target:Object; private var m_action:String; // Determining NSScroller size public static function scrollerWidth():Number { return DEFAULT_SCROLLER_WIDTH; } public static function scrollerWidthForControlSize(size:NSControlSize):Number { return DEFAULT_SCROLLER_WIDTH; } public function init():NSScroller { return initWithFrame(NSRect.ZeroRect); } public function initWithFrame(rect:NSRect):NSScroller { return this; } public function setControlSize(size:NSControlSize) { //! How to adjust to this? } public function controlSize():NSControlSize { //! How to adjust to this? return NSControlSize.NSRegularControlSize; } // Laying out an NSScroller public function setArrowsPosition(position:NSScrollArrowPosition) { if (m_arrowsPosition == position) { return; } m_arrowsPosition = position; setNeedsDisplay(true); } public function arrowsPosition():NSScrollArrowPosition { return m_arrowsPosition; } // Setting the knob position public function setFloatValueKnobProportion(floatValue:Number, knobProportion:Number) { //! Implmement } public function knobProportion():Number { return m_knobProportion; } // Calculating layout // Drawing the parts // Event handling public function hitPart():NSScrollerPart { return m_hitPart; } public function acceptsFirstMouse():Boolean { return true; } public function acceptsFirstResponder():Boolean { return false; } public function action():String { return m_action; } public function setAction(value:String) { m_action = value; } public function target():Object { return m_target; } public function setTarget(target:Object) { m_target = target; } // Setting control tint public function controlTint():NSControlTint { return m_controlTint; } public function setControlTint(tint:NSControlTint) { m_controlTint = tint; } } |