____                _       __
    / __ )____  _____   | |     / /___ ___________
   / __  / __ \/ ___/   | | /| / / __ `/ ___/ ___/
  / /_/ / /_/ (__  )    | |/ |/ / /_/ / /  (__  )
 /_____/\____/____/     |__/|__/\__,_/_/  /____/

       A futuristic real-time strategy game.
          This file is part of Bos Wars.
(C) Copyright 2001-2007 by the Bos Wars and Stratagus Project. Distributed under the "GNU General Public License"

gcn::Slider Class Reference

#include <slider.h>

Inheritance diagram for gcn::Slider:

gcn::Widget gcn::MouseListener gcn::KeyListener ImageSlider

List of all members.

Public Types

enum  { HORIZONTAL = 0, VERTICAL }

Public Member Functions

 Slider (double scaleEnd=1.0)
 Slider (double scaleStart, double scaleEnd)
virtual ~Slider ()
virtual void setScale (double scaleStart, double scaleEnd)
virtual double getScaleStart () const
virtual void setScaleStart (double scaleStart)
virtual double getScaleEnd () const
virtual void setScaleEnd (double scaleEnd)
virtual double getValue () const
virtual void setValue (double value)
virtual void drawMarker (gcn::Graphics *graphics)
virtual void setMarkerLength (int length)
virtual int getMarkerLength () const
virtual void setOrientation (unsigned int orientation)
virtual unsigned int getOrientation () const
virtual void setStepLength (double length)
virtual double getStepLength () const
virtual void draw (gcn::Graphics *graphics)
virtual void drawBorder (gcn::Graphics *graphics)
virtual void lostFocus ()
virtual void mousePress (int x, int y, int button)
virtual void mouseRelease (int x, int y, int button)
virtual void mouseMotion (int x, int y)
virtual bool keyPress (const Key &key)

Protected Member Functions

virtual double markerPositionToValue (int v) const
virtual int valueToMarkerPosition (double value) const
virtual int getMarkerPosition () const

Protected Attributes

bool mMouseDrag
double mValue
double mStepLength
int mMarkerLength
double mScaleStart
double mScaleEnd
unsigned int mOrientation


Detailed Description

A slider able to slide between different values. You can set the scale of the slider yourself so that it ranges between, for example, -1.0 and 2.0.

Definition at line 68 of file slider.h.


Member Enumeration Documentation

anonymous enum

Draw orientations for the slider. It can be drawn verticaly or horizontaly.

Enumerator:
HORIZONTAL 
VERTICAL 

Definition at line 223 of file slider.h.


Constructor & Destructor Documentation

gcn::Slider::Slider ( double  scaleEnd = 1.0  ) 

Constructor. Scale start is 0.

Parameters:
scaleEnd the end of the slider scale.

Definition at line 64 of file slider.cpp.

References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), HORIZONTAL, mMouseDrag, mScaleEnd, mScaleStart, gcn::Widget::setBorderSize(), gcn::Widget::setFocusable(), setMarkerLength(), setOrientation(), setStepLength(), and setValue().

gcn::Slider::Slider ( double  scaleStart,
double  scaleEnd 
)

Constructor.

Parameters:
scaleStart the start of the scale.
scaleEnd the end of the scale.

Definition at line 83 of file slider.cpp.

References gcn::Widget::addKeyListener(), gcn::Widget::addMouseListener(), HORIZONTAL, mMouseDrag, mScaleEnd, mScaleStart, gcn::Widget::setBorderSize(), gcn::Widget::setFocusable(), setMarkerLength(), setOrientation(), setStepLength(), and setValue().

virtual gcn::Slider::~Slider (  )  [inline, virtual]

Destructor.

Definition at line 93 of file slider.h.


Member Function Documentation

void gcn::Slider::setScale ( double  scaleStart,
double  scaleEnd 
) [virtual]

Sets the scale.

Parameters:
scaleStart the start of the scale.
scaleEnd the end of the scale.

Definition at line 101 of file slider.cpp.

References mScaleEnd, and mScaleStart.

double gcn::Slider::getScaleStart (  )  const [virtual]

Gets the scale start.

Returns:
the scale start.

Definition at line 107 of file slider.cpp.

References mScaleStart.

Referenced by markerPositionToValue(), setValue(), and valueToMarkerPosition().

void gcn::Slider::setScaleStart ( double  scaleStart  )  [virtual]

Sets the scale start.

Parameters:
scaleStart the start of the scale.

Definition at line 112 of file slider.cpp.

References mScaleStart.

double gcn::Slider::getScaleEnd (  )  const [virtual]

Gets the scale end.

Returns:
the scale end.

Definition at line 117 of file slider.cpp.

References mScaleEnd.

Referenced by markerPositionToValue(), setValue(), and valueToMarkerPosition().

void gcn::Slider::setScaleEnd ( double  scaleEnd  )  [virtual]

Sets the scale end.

Parameters:
scaleEnd the end of the scale.

Definition at line 122 of file slider.cpp.

References mScaleEnd.

double gcn::Slider::getValue (  )  const [virtual]

Gets the current value.

Returns:
the current value.

Definition at line 280 of file slider.cpp.

References mValue.

Referenced by EditorPatchSliderListener::action(), EditorUnitSliderListener::action(), getMarkerPosition(), and keyPress().

void gcn::Slider::setValue ( double  value  )  [virtual]

Sets the current value.

Parameters:
value a scale value.

Definition at line 263 of file slider.cpp.

References getScaleEnd(), getScaleStart(), and mValue.

Referenced by keyPress(), mouseMotion(), mousePress(), and Slider().

void gcn::Slider::drawMarker ( gcn::Graphics graphics  )  [virtual]

void gcn::Slider::setMarkerLength ( int  length  )  [virtual]

Sets the length of the marker.

Parameters:
length new length for the marker.

Definition at line 290 of file slider.cpp.

References mMarkerLength.

Referenced by ImageSlider::setMarkerImage(), and Slider().

int gcn::Slider::getMarkerLength (  )  const [virtual]

Gets the length of the marker.

Returns:
the length of the marker.

Definition at line 285 of file slider.cpp.

References mMarkerLength.

Referenced by ImageSlider::drawMarker(), drawMarker(), markerPositionToValue(), mouseMotion(), mousePress(), and valueToMarkerPosition().

void gcn::Slider::setOrientation ( unsigned int  orientation  )  [virtual]

Sets the orientation of the slider. A slider can be drawn verticaly or horizontaly. For orientation, see the enum in this class.

Parameters:
orientation the orientation.

Definition at line 332 of file slider.cpp.

References mOrientation.

Referenced by Slider().

unsigned int gcn::Slider::getOrientation (  )  const [virtual]

Gets the orientation of the slider. Se the enum in this class.

Returns:
the orientation of the slider.

Definition at line 337 of file slider.cpp.

References mOrientation.

Referenced by ImageSlider::drawMarker(), drawMarker(), keyPress(), markerPositionToValue(), mouseMotion(), mousePress(), and valueToMarkerPosition().

void gcn::Slider::setStepLength ( double  length  )  [virtual]

Sets the step length. Step length is used when the keys left and right are pressed.

Parameters:
length the step length.

Definition at line 388 of file slider.cpp.

References mStepLength.

Referenced by Slider().

double gcn::Slider::getStepLength (  )  const [virtual]

Gets the step length.

Returns:
the step length.

Definition at line 393 of file slider.cpp.

References mStepLength.

Referenced by keyPress().

void gcn::Slider::draw ( gcn::Graphics graphics  )  [virtual]

Draws the Widget. It is called by the parent widget when it is time for the Widget to draw itself. The graphics object is set up so that all drawing is relative to the Widget, i.e coordinate (0,0) is the top-left corner of the Widget. It is not possible to draw outside of a Widgets dimension.

Parameters:
graphics a Graphics object to draw with.

Implements gcn::Widget.

Reimplemented in ImageSlider.

Definition at line 127 of file slider.cpp.

References gcn::Color::a, drawMarker(), gcn::Graphics::fillRectangle(), gcn::Widget::getBaseColor(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().

void gcn::Slider::drawBorder ( gcn::Graphics graphics  )  [virtual]

Draws a the Widget border. A border is drawn around a Widget. The width and height of the border is therefore the Widgets height+2*bordersize. Think of a painting that has a certain size, the border surrounds the painting.

Parameters:
graphics a Graphics object to draw with.

Reimplemented from gcn::Widget.

Definition at line 139 of file slider.cpp.

References gcn::Color::a, gcn::Graphics::drawLine(), gcn::Widget::getBaseColor(), gcn::Widget::getBorderSize(), gcn::Widget::getHeight(), gcn::Widget::getWidth(), and gcn::Graphics::setColor().

void gcn::Slider::lostFocus (  )  [virtual]

Called if the Widget loses focus.

Reimplemented from gcn::Widget.

Definition at line 240 of file slider.cpp.

References mMouseDrag.

void gcn::Slider::mousePress ( int  x,
int  y,
int  button 
) [virtual]

Called when a mouse button is pressed when the mouse is in the Widget area or if the Widget has focus.

NOTE: A mouse press is NOT equal to a mouse click. Use mouseClickMessage to check for mouse clicks.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.
button the button pressed.

Reimplemented from gcn::MouseListener.

Definition at line 211 of file slider.cpp.

References gcn::Widget::generateAction(), gcn::Widget::getHeight(), getMarkerLength(), getOrientation(), gcn::Widget::getWidth(), HORIZONTAL, gcn::MouseInput::LEFT, markerPositionToValue(), mMouseDrag, and setValue().

void gcn::Slider::mouseRelease ( int  x,
int  y,
int  button 
) [virtual]

Called when a mouse button is released when the mouse is in the Widget area or if the Widget has focus.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.
button the button released.

Reimplemented from gcn::MouseListener.

Definition at line 235 of file slider.cpp.

References mMouseDrag.

void gcn::Slider::mouseMotion ( int  x,
int  y 
) [virtual]

Called when the mouse moves and the mouse is in the Widget area or if the Widget has focus.

Parameters:
x the x coordinate of the mouse relative to the Widget itself.
y the y coordinate of the mouse relative to the Widget itself.

Reimplemented from gcn::MouseListener.

Definition at line 245 of file slider.cpp.

References gcn::Widget::generateAction(), gcn::Widget::getHeight(), getMarkerLength(), getOrientation(), HORIZONTAL, markerPositionToValue(), mMouseDrag, gcn::Widget::setDirty(), and setValue().

bool gcn::Slider::keyPress ( const Key key  )  [virtual]

Called if a key is pressed when the widget has keyboard focus. If a key is held down the widget will generate multiple key presses.

Parameters:
key the key pressed.

Reimplemented from gcn::KeyListener.

Definition at line 295 of file slider.cpp.

References gcn::Key::DOWN, gcn::Widget::generateAction(), getOrientation(), getStepLength(), getValue(), gcn::Key::getValue(), HORIZONTAL, gcn::Key::LEFT, gcn::Key::RIGHT, setValue(), and gcn::Key::UP.

double gcn::Slider::markerPositionToValue ( int  v  )  const [protected, virtual]

Converts a marker position to a value.

Parameters:
v the position to convert.
Returns:
the value corresponding to the position.

Definition at line 342 of file slider.cpp.

References gcn::Widget::getHeight(), getMarkerLength(), getOrientation(), getScaleEnd(), getScaleStart(), gcn::Widget::getWidth(), and HORIZONTAL.

Referenced by mouseMotion(), and mousePress().

int gcn::Slider::valueToMarkerPosition ( double  value  )  const [protected, virtual]

Converts a value to a marker position.

Parameters:
value the value to convert.
Returns:
the position corresponding to the value.

Definition at line 359 of file slider.cpp.

References gcn::Widget::getHeight(), getMarkerLength(), getOrientation(), getScaleEnd(), getScaleStart(), gcn::Widget::getWidth(), HORIZONTAL, and int().

Referenced by getMarkerPosition().

int gcn::Slider::getMarkerPosition (  )  const [protected, virtual]

Gets the marker position for the current value.

Returns:
the marker position for the current value.

Definition at line 398 of file slider.cpp.

References getValue(), and valueToMarkerPosition().

Referenced by ImageSlider::drawMarker(), and drawMarker().


Member Data Documentation

bool gcn::Slider::mMouseDrag [protected]

Definition at line 253 of file slider.h.

Referenced by lostFocus(), mouseMotion(), mousePress(), mouseRelease(), and Slider().

double gcn::Slider::mValue [protected]

Definition at line 254 of file slider.h.

Referenced by getValue(), and setValue().

double gcn::Slider::mStepLength [protected]

Definition at line 255 of file slider.h.

Referenced by getStepLength(), and setStepLength().

int gcn::Slider::mMarkerLength [protected]

Definition at line 256 of file slider.h.

Referenced by getMarkerLength(), and setMarkerLength().

double gcn::Slider::mScaleStart [protected]

Definition at line 257 of file slider.h.

Referenced by getScaleStart(), setScale(), setScaleStart(), and Slider().

double gcn::Slider::mScaleEnd [protected]

Definition at line 258 of file slider.h.

Referenced by getScaleEnd(), setScale(), setScaleEnd(), and Slider().

unsigned int gcn::Slider::mOrientation [protected]

Definition at line 259 of file slider.h.

Referenced by getOrientation(), and setOrientation().


The documentation for this class was generated from the following files:

Generated on Sat Feb 21 00:28:27 2009 for Bos Wars by  doxygen 1.5.6