////////////////////////////////////// // Created by Pontus Fransson 2014 // ////////////////////////////////////// #ifndef DANBIAS_CLIENT_BUTTON_RECTANGLE_H #define DANBIAS_CLIENT_BUTTON_RECTANGLE_H #include "EventButtonGUI.h" #include //Only for testing because we don't have any other input #include "../WindowManager/WindowShell.h" namespace DanBias { namespace Client { template class ButtonRectangle : public EventButtonGUI { public: ButtonRectangle() : EventButtonGUI(), width(0), height(0) {} ButtonRectangle(std::wstring textureName, Owner owner, float xPos, float yPos, float width, float height, bool resizeToScreenAspectRatio = true) : EventButtonGUI(textureName, owner, xPos, yPos, width, height, resizeToScreenAspectRatio) {} ButtonRectangle(std::wstring textureName, EventFunc func, float xPos, float yPos, float width, float height, bool resizeToScreenAspectRatio = true) : EventButtonGUI(textureName, func, xPos, yPos, width, height, resizeToScreenAspectRatio) {} ButtonRectangle(std::wstring textureName, EventFunc func, Owner owner, float xPos, float yPos, float width, float height, bool resizeToScreenAspectRatio = true) : EventButtonGUI(textureName, func, owner, xPos, yPos, width, height, resizeToScreenAspectRatio) {} ButtonRectangle(std::wstring textureName, EventFunc func, Owner owner, void* userData, float xPos, float yPos, float width, float height, bool resizeToScreenAspectRatio = true) : EventButtonGUI(textureName, func, owner, userData, xPos, yPos, width, height, resizeToScreenAspectRatio) {} virtual ~ButtonRectangle() {} //Circle vs point collision bool Collision(InputClass* inputObject) { POINT p; RECT r; GetCursorPos(&p); ScreenToClient(WindowShell::GetHWND(), &p); GetClientRect(WindowShell::GetHWND(), &r); //Should come from the InputClass float xMouse = (float)p.x / (float)r.right, yMouse = (float)p.y / (float)r.bottom; float widthTemp = xPos - width * 0.5f; float widthTemp2 = xPos + width * 0.5f; float heightTemp = yPos - height * 0.5f; float heightTemp2 = yPos + height * 0.5f; //std::cout << p.x << ' ' << p.y << ' ' << widthTemp << ' ' << heightTemp << std::endl; if(xMouse >= widthTemp && xMouse <= widthTemp2 && yMouse >= heightTemp && yMouse <= heightTemp2) { return true; } return false; } protected: }; } } #endif