/****************************************************************************** * Find which spin widget button a mouse event is in. */ int SpinBox::whichButton(const QPoint& pos) { if (upRect().contains(pos)) return UP; if (downRect().contains(pos)) return DOWN; return NO_BUTTON; }
void HierarchyPanel::displayScrollbars() { Rect container(position.x + position.width - 20, position.y + (ITEM_HEIGHT * 3), 20, position.height - (ITEM_HEIGHT * 4)); Rect scrollbarRect(container.x, container.y + scrollPos, container.width, 20); Gui::box(container, ""); Rect upRect(container.x, container.y - ITEM_HEIGHT, ITEM_HEIGHT, ITEM_HEIGHT); Gui::button(upRect, ""); if(Input::getMouseButton(0) == true && upRect.contains(Input::getMousePosition()) == true) { scrollPos -= 100 * Time::getDeltaTime(); } Rect downRect(container.x, container.y + container.height, ITEM_HEIGHT, ITEM_HEIGHT); Gui::button(downRect, ""); if(Input::getMouseButton(0) == true && downRect.contains(Input::getMousePosition()) == true) { scrollPos += 100 * Time::getDeltaTime(); } scrollbarRect.height = ((float)maxDisplay / (float)totalDisplay) * (float)container.height; //Gui::drawTexture(scrollbarRect, scrollbarTexture); //Gui::button(scrollbarRect, ""); Graphics::drawTexture(scrollbarRect, scrollbarTexture, Rect(0, 0, 1, 1), 5, 5, 5, 5); if(scrolling == false) { if(Input::getMouseButtonDown(0) == true && scrollbarRect.contains(Input::getMousePosition()) == true) { mousePos = Input::getMousePosition().y; scrolling = true; } } else { scrollPos += Input::getMousePosition().y - mousePos; mousePos = Input::getMousePosition().y; if(Input::getMouseButtonUp(0) == true) { scrolling = false; } } if(scrollPos + scrollbarRect.height > container.height) { scrollPos = container.height - scrollbarRect.height; } if(scrollPos < 0) { scrollPos = 0; } float percent = 0; if(scrollPos == 0) { percent = 0; } else { percent = scrollPos / (container.height - scrollbarRect.height); } //std::cout << percent << std::endl; startDisplay = (totalDisplay - maxDisplay) * percent; }