diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-22 14:14:17 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-22 14:14:17 (GMT) |
| commit | 9abe51526cac2634af0541c3de69834dd30e9f78 (patch) | |
| tree | 6ae4deadfe00a83094b9d288d8c11d8ce823577a /src/interface/Slider.cpp | |
| parent | 2c311b9a36a88fadd96f3d39acb1ab2590835d81 (diff) | |
| download | powder-9abe51526cac2634af0541c3de69834dd30e9f78.zip powder-9abe51526cac2634af0541c3de69834dd30e9f78.tar.gz | |
Move all GUI source files into gui/
Diffstat (limited to 'src/interface/Slider.cpp')
| -rw-r--r-- | src/interface/Slider.cpp | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/src/interface/Slider.cpp b/src/interface/Slider.cpp deleted file mode 100644 index 3ada74f..0000000 --- a/src/interface/Slider.cpp +++ /dev/null @@ -1,141 +0,0 @@ -#include <iostream> -#include "Slider.h" -#include "Colour.h" - -namespace ui { - -Slider::Slider(Point position, Point size, int steps): - Component(position, size), - sliderSteps(steps), - sliderPosition(0), - isMouseDown(false), - bgGradient(NULL), - col1(0, 0, 0, 0), - col2(0, 0, 0, 0) -{ - -} - -void Slider::updatePosition(int position) -{ - if(position < 3) - position = 3; - if(position > Size.X-3) - position = Size.X-3; - - float fPosition = position-3; - float fSize = Size.X-6; - float fSteps = sliderSteps; - - float fSliderPosition = (fPosition/fSize)*sliderSteps;//position;//((x-3)/(Size.X-6))*sliderSteps; - - int newSliderPosition = fSliderPosition; - - if(newSliderPosition == sliderPosition) - return; - - sliderPosition = newSliderPosition; - - if(actionCallback) - { - actionCallback->ValueChangedCallback(this); - } -} - -void Slider::OnMouseMoved(int x, int y, int dx, int dy) -{ - if(isMouseDown) - { - updatePosition(x); - } -} - -void Slider::OnMouseClick(int x, int y, unsigned button) -{ - isMouseDown = true; - updatePosition(x); -} - -void Slider::OnMouseUp(int x, int y, unsigned button) -{ - if(isMouseDown) - { - isMouseDown = false; - } -} - - -void Slider::SetColour(Colour col1, Colour col2) -{ - pixel pix[2] = {PIXRGB(col1.Red, col1.Green, col1.Blue), PIXRGB(col2.Red, col2.Green, col2.Blue)}; - float fl[2] = {0.0f, 1.0f}; - if(bgGradient) - free(bgGradient); - this->col1 = col1; - this->col2 = col2; - bgGradient = (unsigned char*)Graphics::GenerateGradient(pix, fl, 2, Size.X-7); -} - -int Slider::GetValue() -{ - return sliderPosition; -} - -void Slider::SetValue(int value) -{ - if(value < 0) - value = 0; - if(value > sliderSteps) - value = sliderSteps; - sliderPosition = value; -} - -int Slider::GetSteps() -{ - return sliderSteps; -} - -void Slider::SetSteps(int steps) -{ - if(steps < 0) - steps = 0; - if(steps < sliderPosition) - sliderPosition = steps; - sliderSteps = steps; -} - -void Slider::Draw(const Point& screenPos) -{ - Graphics * g = Engine::Ref().g; - //g->drawrect(screenPos.X, screenPos.Y, Size.X, Size.Y, 255, 255, 255, 255); - - if(bgGradient) - { -#ifndef OGLI - for (int j = 3; j < Size.Y-7; j++) - for (int i = 3; i < Size.X-7; i++) - g->blendpixel(screenPos.X+i+2, screenPos.Y+j+2, bgGradient[(i-3)*3], bgGradient[(i-3)*3+1], bgGradient[(i-3)*3+2], 255); -#else - g->gradientrect(screenPos.X+5, screenPos.Y+5, Size.X-10, Size.Y-10, col1.Red, col1.Green, col1.Blue, col1.Alpha, col2.Red, col2.Green, col2.Blue, col2.Alpha); -#endif - } - - g->drawrect(screenPos.X+3, screenPos.Y+3, Size.X-6, Size.Y-6, 255, 255, 255, 255); - - float fPosition = sliderPosition; - float fSize = Size.X-6; - float fSteps = sliderSteps; - - float fSliderX = (fSize/fSteps)*fPosition;//sliderPosition;//((Size.X-6)/sliderSteps)*sliderPosition; - int sliderX = fSliderX; - sliderX += 3; - - g->fillrect(screenPos.X+sliderX-2, screenPos.Y+1, 4, Size.Y-2, 20, 20, 20, 255); - g->drawrect(screenPos.X+sliderX-2, screenPos.Y+1, 4, Size.Y-2, 200, 200, 200, 255); -} - -Slider::~Slider() -{ -} - -} /* namespace ui */ |
