Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "mitkStepper.h"
00020
00021 mitk::Stepper
00022 ::Stepper()
00023 : m_Pos( 0 ),
00024 m_Steps( 0 ),
00025 m_AutoRepeat( false ),
00026 m_PingPong( false ),
00027 m_InverseDirection( false ),
00028 m_RangeMin( 0.0 ),
00029 m_RangeMax( -1.0 ),
00030 m_RangeValid( false ),
00031 m_HasRange( false ),
00032 m_HasUnitName( false )
00033 {
00034 }
00035
00036 mitk::Stepper
00037 ::~Stepper()
00038 {
00039 }
00040
00041 void
00042 mitk::Stepper
00043 ::SetRange( ScalarType min, ScalarType max )
00044 {
00045 m_RangeMin = min;
00046 m_RangeMax = max;
00047 m_HasRange = true;
00048 m_RangeValid = true;
00049 this->Modified();
00050 }
00051
00052 void
00053 mitk::Stepper
00054 ::InvalidateRange()
00055 {
00056 m_HasRange = true;
00057 m_RangeValid = false;
00058 this->Modified();
00059 }
00060
00061 mitk::ScalarType
00062 mitk::Stepper
00063 ::GetRangeMin() const
00064 {
00065 return m_RangeMin;
00066 }
00067
00068 mitk::ScalarType
00069 mitk::Stepper
00070 ::GetRangeMax() const
00071 {
00072 return m_RangeMax;
00073 }
00074
00075 void
00076 mitk::Stepper
00077 ::RemoveRange()
00078 {
00079 m_HasRange = false;
00080 this->Modified();
00081 }
00082
00083 bool
00084 mitk::Stepper
00085 ::HasValidRange() const
00086 {
00087 return (m_HasRange && m_RangeValid);
00088 }
00089
00090 bool
00091 mitk::Stepper
00092 ::HasRange() const
00093 {
00094 return m_HasRange;
00095 }
00096
00097 void
00098 mitk::Stepper
00099 ::SetUnitName( const char *unitName )
00100 {
00101 m_UnitName = std::string( unitName );
00102 m_HasUnitName = true;
00103 this->Modified();
00104 }
00105
00106 const char *
00107 mitk::Stepper
00108 ::GetUnitName() const
00109 {
00110 return m_UnitName.c_str();
00111 }
00112
00113 void
00114 mitk::Stepper
00115 ::RemoveUnitName()
00116 {
00117 m_HasUnitName = false;
00118 this->Modified();
00119 }
00120
00121 bool
00122 mitk::Stepper
00123 ::HasUnitName() const
00124 {
00125 return m_HasUnitName;
00126 }
00127
00128 void
00129 mitk::Stepper
00130 ::Increase()
00131 {
00132 if (this->GetPos() < this->GetSteps() - 1)
00133 {
00134 this->SetPos(this->GetPos() + 1);
00135 }
00136 else if (m_AutoRepeat)
00137 {
00138 if (!m_PingPong)
00139 {
00140 this->SetPos(0);
00141 }
00142 else
00143 {
00144 m_InverseDirection = true;
00145 if (this->GetPos() > 0)
00146 {
00147 this->SetPos(this->GetPos() - 1);
00148 }
00149 }
00150 }
00151 }
00152
00153 void
00154 mitk::Stepper
00155 ::Decrease()
00156 {
00157 if (this->GetPos() > 0)
00158 {
00159 this->SetPos(this->GetPos() - 1);
00160 }
00161 else if (m_AutoRepeat)
00162 {
00163 if (!m_PingPong)
00164 {
00165 this->SetPos(this->GetSteps() - 1);
00166 }
00167 else
00168 {
00169 m_InverseDirection = false;
00170 if (this->GetPos() < this->GetSteps() - 1)
00171 {
00172 this->SetPos(this->GetPos() + 1);
00173 }
00174 }
00175 }
00176 }
00177
00178 void
00179 mitk::Stepper
00180 ::Next()
00181 {
00182 if (!m_InverseDirection)
00183 {
00184 this->Increase();
00185 }
00186 else
00187 {
00188 this->Decrease();
00189 }
00190 }
00191
00192 void
00193 mitk::Stepper
00194 ::Previous()
00195 {
00196 if (!m_InverseDirection)
00197 {
00198 this->Decrease();
00199 }
00200 else
00201 {
00202 this->Increase();
00203 }
00204 }
00205
00206 void
00207 mitk::Stepper
00208 ::First()
00209 {
00210 this->SetPos(0);
00211 }
00212
00213 void
00214 mitk::Stepper
00215 ::Last()
00216 {
00217 this->SetPos(this->GetSteps() - 1);
00218 }
00219