seminar11: slider circle void methods
This commit is contained in:
		
							parent
							
								
									f1e450cc9e
								
							
						
					
					
						commit
						8fc5c26a79
					
				
					 1 changed files with 7 additions and 13 deletions
				
			
		|  | @ -6,10 +6,7 @@ | |||
| class Slider | ||||
| { | ||||
| private: | ||||
|     inline static const sf::Color defaultColor {sf::Color(190, 210, 190)}; | ||||
|     inline static const sf::Color pressedColor {sf::Color(150, 170, 150)}; | ||||
|     inline static const sf::Color textColor {sf::Color::Black}; | ||||
| 	inline static const int kCharacterSize = 14; | ||||
| 	const int kCharacterSize = 14; | ||||
| 	 | ||||
|     int mMinValue; | ||||
| 	int mMaxValue; | ||||
|  | @ -20,10 +17,9 @@ private: | |||
|     sf::RectangleShape mAxis; | ||||
|     sf::Text mText; | ||||
|      | ||||
|     /* Is slider pressed at the moment */ | ||||
|     bool mIsPressed = false; | ||||
| 
 | ||||
|     int onMousePressed(const sf::Event& event) | ||||
|     void onMousePressed(const sf::Event& event) | ||||
|     { | ||||
|         if (event.mouseButton.button == sf::Mouse::Left) { | ||||
|             sf::Vector2f mousePosition = mRenderWindow.mapPixelToCoords({event.mouseButton.x, event.mouseButton.y}); | ||||
|  | @ -42,13 +38,12 @@ private: | |||
|                     } | ||||
|                 } | ||||
|             }         | ||||
|         return mMinValue + (mMaxValue - mMinValue) * mSliderPosition; | ||||
|     } | ||||
| 
 | ||||
|     int onMouseMove(const sf::Event& event) | ||||
|     void onMouseMove(const sf::Event& event) | ||||
|     { | ||||
|         if (!mIsPressed) { | ||||
|             return mMinValue + (mMaxValue - mMinValue) * mSliderPosition; | ||||
|             return; | ||||
|         } | ||||
|         sf::Vector2f mousePosition = mRenderWindow.mapPixelToCoords({event.mouseMove.x, event.mouseMove.y}); | ||||
|         if ((mousePosition.x >= mAxis.getPosition().x) && (mousePosition.x + mSlider.getSize().x <= mAxis.getPosition().x + mAxis.getSize().x)) { | ||||
|  | @ -63,7 +58,6 @@ private: | |||
| 
 | ||||
|         mSliderPosition = (mSlider.getPosition().x - mAxis.getPosition().x) / (mAxis.getSize().x - mSlider.getSize().x); | ||||
| 
 | ||||
|         return mMinValue + (mMaxValue - mMinValue) * mSliderPosition; | ||||
|     } | ||||
| 
 | ||||
| public: | ||||
|  | @ -76,7 +70,7 @@ public: | |||
|         mSlider.setOutlineColor(sf::Color::Black); | ||||
|         mSlider.setOutlineThickness(2); | ||||
| 
 | ||||
|         mAxis.setFillColor(defaultColor); | ||||
|         mAxis.setFillColor(sf::Color::White); | ||||
|         mAxis.setSize({500,10}); | ||||
|         mAxis.setPosition(position); | ||||
| 
 | ||||
|  | @ -106,10 +100,10 @@ public: | |||
| 
 | ||||
|     int handleEvent(const sf::Event& event) { | ||||
|         if (event.type == sf::Event::MouseMoved) { | ||||
|             return onMouseMove(event); | ||||
|             onMouseMove(event); | ||||
|         } | ||||
|         else if (event.type == sf::Event::MouseButtonPressed) { | ||||
|             return onMousePressed(event); | ||||
|             onMousePressed(event); | ||||
|         } | ||||
|         else if (event.type == sf::Event::MouseButtonReleased) { | ||||
|             mIsPressed = false; | ||||
|  |  | |||
		Reference in a new issue