bool isCursorInListByX( cursorPosition, xPosition, windowWidth )
{
if (cursorPosition.x > xPosition && cursorPosition.x < xPosition + windowWidth) {
return true;
}
return false;
}
bool isCursorInListByY( cursorPosition, yPosition, windowHeight )
{
if (cursorPosition.y > yPosition && cursorPosition.y < yPosition + windowHeight) {
return true;
}
return false;
}
bool isCursorInList( xPosition, yPosition, windowWidth, windowHeight )
{
if (isCursorInListByX( getCursorPosition(), xPosition, windowWidth )
&& isCursorInListByY( getCursorPosition(), yPosition, windowHeight )) {
return true;
}
return false;
}
void moveList()
{
static bool isDragging = false;
static int dragXPosition = 0;
static int dragYPosition = 0;
static int xPosition = 200;
static int yPosition = 200;
const int windowWidth = 200;
const int windowHeight = 350;
Vector2D cursorPosition = getCursorPosition();
if (!GetAsyncKeyState(1)) {
isDragging = false;
if (isCursorInListByX( cursorPosition, xPosition, windowWidth )) {
dragXPosition = cursorPosition.x;
}
if (isCursorInListByY( cursorPosition, yPosition, windowHeight )) {
dragYPosition = cursorPosition.y;
}
}
if (GetAsyncKeyState(1) && isCursorInList( xPosition, yPosition, windowWidth, windowHeight )) {
isDragging = true;
}
if (GetAsyncKeyState(1) && isDragging) {
if (cursorPosition.x != dragXPosition) {
xPosition -= ( dragXPosition - cursorPosition.x );
dragXPosition = cursorPosition.x;
}
if (cursorPosition.y != dragYPosition) {
yPosition -= ( dragYPosition - cursorPosition.y );
dragYPosition = cursorPosition.y;
}
}
}