/****************************************************************************** * 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 TRop::over(const TRasterP &rout, const TRasterP &rup, const TPoint &pos) { TRect outRect(rout->getBounds()); TRect upRect(rup->getBounds() + pos); TRect intersection = outRect * upRect; if (intersection.isEmpty()) return; TRasterP cRout = rout->extract(intersection); TRect r = intersection - pos; TRasterP cRup = rup->extract(r); TRaster32P rout32 = cRout, rup32 = cRup; TRaster64P rout64 = cRout, rup64 = cRup; TRasterGR8P rout8 = cRout, rup8 = cRup; TRasterCM32P routCM32 = cRout, rupCM32 = cRup; rout->lock(); rup->lock(); // TRaster64P rout64 = rout, rin64 = rin; if (rout32 && rup32) { #ifdef _WIN32 if (TSystem::getCPUExtensions() & TSystem::CpuSupportsSse2) do_over_SSE2(rout32, rup32); else #endif do_overT2<TPixel32, UCHAR>(rout32, rup32); } else if (rout64) { if (!rup64) { TRaster64P raux(cRup->getSize()); TRop::convert(raux, cRup); rup64 = raux; } do_overT2<TPixel64, USHORT>(rout64, rup64); } else if (rout32 && rup8) do_over(rout32, rup8); else if (rout8 && rup32) do_over(rout8, rup32); else if (rout8 && rup8) TRop::copy(rout8, rup8); else if (routCM32 && rupCM32) do_over(routCM32, rupCM32); else { rout->unlock(); rup->unlock(); throw TRopException("unsupported pixel type"); } rout->unlock(); rup->unlock(); }
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; }