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

View File

@ -355,6 +355,7 @@ public:
static const int defThickness; static const int defThickness;
private: private:
bool activated;
bool lighted; bool lighted;
bool horizontal; bool horizontal;
int elementCount; int elementCount;
@ -370,6 +371,7 @@ public:
void init(int x, int y, bool horizontal,int length=defLength, int thickness=defThickness); void init(int x, int y, bool horizontal,int length=defLength, int thickness=defThickness);
virtual bool mouseDown(int x, int y); virtual bool mouseDown(int x, int y);
virtual bool mouseMove(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); 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); 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) { void MainMenu::keyDown(SDL_KeyboardEvent key) {
state->keyDown(key); state->keyDown(key);
} }

View File

@ -74,6 +74,7 @@ public:
virtual void mouseMove(int x, int y, const MouseState *mouseState); virtual void mouseMove(int x, int y, const MouseState *mouseState);
virtual void mouseDownLeft(int x, int y); virtual void mouseDownLeft(int x, int y);
virtual void mouseDownRight(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 keyDown(SDL_KeyboardEvent key);
virtual void keyUp(SDL_KeyboardEvent key); virtual void keyUp(SDL_KeyboardEvent key);
virtual void keyPress(SDL_KeyboardEvent key); virtual void keyPress(SDL_KeyboardEvent key);
@ -115,6 +116,7 @@ public:
MenuState(Program *program, MainMenu *mainMenu, const string &stateName); MenuState(Program *program, MainMenu *mainMenu, const string &stateName);
virtual ~MenuState(); virtual ~MenuState();
virtual void mouseClick(int x, int y, MouseButton mouseButton)=0; 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 mouseMove(int x, int y, const MouseState *mouseState)=0;
virtual void render()=0; virtual void render()=0;
virtual void update(){}; 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){ void MenuStateKeysetup::mouseMove(int x, int y, const MouseState *ms){
buttonReturn.mouseMove(x, y); buttonReturn.mouseMove(x, y);
buttonOk.mouseMove(x, y); buttonOk.mouseMove(x, y);

View File

@ -64,6 +64,7 @@ public:
virtual ~MenuStateKeysetup(); virtual ~MenuStateKeysetup();
void mouseClick(int x, int y, MouseButton mouseButton); 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 mouseMove(int x, int y, const MouseState *mouseState);
void update(); void update();
void render(); 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){ void MenuStateLoadGame::deleteSlot(int i){
if(selectedButton==slots[i]){ if(selectedButton==slots[i]){
selectedButton=NULL; selectedButton=NULL;

View File

@ -54,6 +54,7 @@ public:
~MenuStateLoadGame(); ~MenuStateLoadGame();
void mouseClick(int x, int y, MouseButton mouseButton); 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 mouseMove(int x, int y, const MouseState *mouseState);
void update(); void update();
void render(); 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){ void MenuStateMasterserver::mouseMove(int x, int y, const MouseState *ms){
MutexSafeWrapper safeMutex((updateFromMasterserverThread != NULL ? updateFromMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(extractFileFromDirectoryPath(__FILE__).c_str()) + "_" + intToStr(__LINE__)); MutexSafeWrapper safeMutex((updateFromMasterserverThread != NULL ? updateFromMasterserverThread->getMutexThreadObjectAccessor() : NULL),string(extractFileFromDirectoryPath(__FILE__).c_str()) + "_" + intToStr(__LINE__));

View File

@ -117,6 +117,7 @@ public:
~MenuStateMasterserver(); ~MenuStateMasterserver();
void mouseClick(int x, int y, MouseButton mouseButton); 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 mouseMove(int x, int y, const MouseState *mouseState);
void update(); void update();
void render(); 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) { void MenuStateMods::mouseMove(int x, int y, const MouseState *ms) {
buttonReturn.mouseMove(x, y); buttonReturn.mouseMove(x, y);

View File

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