- scrollbar patch applied from cygal / quentin --> Thanks

This commit is contained in:
Mark Vejvoda 2012-11-02 20:07:50 +00:00
parent 61c86c15d1
commit b168f450b5
12 changed files with 61 additions and 10 deletions

View File

@ -723,6 +723,7 @@ const int GraphicScrollBar::defLength= 200;
GraphicScrollBar::GraphicScrollBar(std::string containerName, std::string objName)
: GraphicComponent(containerName, objName) {
lighted = false;
activated = false;
horizontal = false;
elementCount = 0;
visibleSize = 0;
@ -741,13 +742,14 @@ void GraphicScrollBar::init(int x, int y, bool horizontal,int length, int thickn
this->visibleStart=0;
this->visibleCompPosStart=0;
this->visibleCompPosEnd=length;
lighted= false;
activated = false;
lighted = false;
}
bool GraphicScrollBar::mouseDown(int x, int y) {
if(getVisible() && getEnabled() && getEditable())
{
if(mouseMove(x,y))
if(activated)
{
if( elementCount>visibleSize) {
int pos;
@ -771,6 +773,11 @@ bool GraphicScrollBar::mouseDown(int x, int y) {
return false;
}
void GraphicScrollBar::mouseUp(int x, int y) {
activated = false;
lighted = false;
}
void GraphicScrollBar::setVisibleStart(int vs){
visibleStart=vs;
@ -806,20 +813,23 @@ void GraphicScrollBar::setVisibleSize(int visibleSize){
bool GraphicScrollBar::mouseClick(int x, int y){
bool result=GraphicComponent::mouseClick( x, y);
if(result)
if(result) {
activated = true;
lighted = true;
mouseDown( x, y);
return result;
}
return result;
}
bool GraphicScrollBar::mouseMove(int x, int y){
if(this->getVisible() == false) {
return false;
bool inScrollBar = GraphicComponent::mouseMove(x, y);
if (activated) {
lighted = true;
} else {
lighted = inScrollBar;
}
bool b= GraphicComponent::mouseMove(x, y);
lighted= b;
return b;
return inScrollBar;
}
int GraphicScrollBar::getLength() const {

View File

@ -355,6 +355,7 @@ public:
static const int defThickness;
private:
bool activated;
bool lighted;
bool horizontal;
int elementCount;
@ -370,6 +371,7 @@ public:
void init(int x, int y, bool horizontal,int length=defLength, int thickness=defThickness);
virtual bool mouseDown(int x, int y);
virtual bool mouseMove(int x, int y);
virtual void mouseUp(int x, int y);
virtual bool mouseClick(int x, int y);

View File

@ -222,6 +222,11 @@ void MainMenu::mouseDownRight(int x, int y){
state->mouseClick(x, y, mbRight);
}
void MainMenu::mouseUpLeft(int x, int y){
if(GraphicComponent::getFade()<0.2f) return;
state->mouseUp(x, y, mbLeft);
}
void MainMenu::keyDown(SDL_KeyboardEvent key) {
state->keyDown(key);
}

View File

@ -74,6 +74,7 @@ public:
virtual void mouseMove(int x, int y, const MouseState *mouseState);
virtual void mouseDownLeft(int x, int y);
virtual void mouseDownRight(int x, int y);
virtual void mouseUpLeft(int x, int y);
virtual void keyDown(SDL_KeyboardEvent key);
virtual void keyUp(SDL_KeyboardEvent key);
virtual void keyPress(SDL_KeyboardEvent key);
@ -115,6 +116,7 @@ public:
MenuState(Program *program, MainMenu *mainMenu, const string &stateName);
virtual ~MenuState();
virtual void mouseClick(int x, int y, MouseButton mouseButton)=0;
virtual void mouseUp(int x, int y, const MouseButton mouseButton){};
virtual void mouseMove(int x, int y, const MouseState *mouseState)=0;
virtual void render()=0;
virtual void update(){};

View File

@ -304,6 +304,12 @@ void MenuStateKeysetup::mouseClick(int x, int y, MouseButton mouseButton){
}
}
void MenuStateKeysetup::mouseUp(int x, int y, const MouseButton mouseButton){
if (mouseButton == mbLeft) {
keyScrollBar.mouseUp(x, y);
}
}
void MenuStateKeysetup::mouseMove(int x, int y, const MouseState *ms){
buttonReturn.mouseMove(x, y);
buttonOk.mouseMove(x, y);

View File

@ -64,6 +64,7 @@ public:
virtual ~MenuStateKeysetup();
void mouseClick(int x, int y, MouseButton mouseButton);
void mouseUp(int x, int y, const MouseButton mouseButton);
void mouseMove(int x, int y, const MouseState *mouseState);
void update();
void render();

View File

@ -324,6 +324,12 @@ void MenuStateLoadGame::mouseClick(int x, int y, MouseButton mouseButton){
}
}
void MenuStateLoadGame::mouseUp(int x, int y, const MouseButton mouseButton){
if (mouseButton == mbLeft) {
slotsScrollBar.mouseUp(x, y);
}
}
void MenuStateLoadGame::deleteSlot(int i){
if(selectedButton==slots[i]){
selectedButton=NULL;

View File

@ -54,6 +54,7 @@ public:
~MenuStateLoadGame();
void mouseClick(int x, int y, MouseButton mouseButton);
void mouseUp(int x, int y, const MouseButton mouseButton);
void mouseMove(int x, int y, const MouseState *mouseState);
void update();
void render();

View File

@ -588,6 +588,13 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
}
}
void MenuStateMasterserver::mouseUp(int x, int y, const MouseButton mouseButton){
if (mouseButton == mbLeft) {
userScrollBar.mouseUp(x, y);
serverScrollBar.mouseUp(x, y);
}
}
void MenuStateMasterserver::mouseMove(int x, int y, const MouseState *ms){
MutexSafeWrapper safeMutex((updateFromMasterserverThread != NULL ? updateFromMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(extractFileFromDirectoryPath(__FILE__).c_str()) + "_" + intToStr(__LINE__));

View File

@ -117,6 +117,7 @@ public:
~MenuStateMasterserver();
void mouseClick(int x, int y, MouseButton mouseButton);
void mouseUp(int x, int y, const MouseButton mouseButton);
void mouseMove(int x, int y, const MouseState *mouseState);
void update();
void render();

View File

@ -2005,6 +2005,15 @@ void MenuStateMods::showRemoteDesription(ModInfo *modInfo) {
}
}
void MenuStateMods::mouseUp(int x, int y, const MouseButton mouseButton){
if (mouseButton == mbLeft) {
keyTechScrollBar.mouseUp(x, y);
keyTilesetScrollBar.mouseUp(x, y);
keyMapScrollBar.mouseUp(x, y);
keyScenarioScrollBar.mouseUp(x, y);
}
}
void MenuStateMods::mouseMove(int x, int y, const MouseState *ms) {
buttonReturn.mouseMove(x, y);

View File

@ -184,6 +184,7 @@ public:
virtual ~MenuStateMods();
void mouseClick(int x, int y, MouseButton mouseButton);
void mouseUp(int x, int y, const MouseButton mouseButton);
void mouseMove(int x, int y, const MouseState *mouseState);
void render();
void update();