示例#1
0
/******************************************************************************
*  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;
}
示例#2
0
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();
}
示例#3
0
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;
}