コード例 #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
ファイル: HierarchyPanel.cpp プロジェクト: ConnorRB96/mutiny
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;
}