Example #1
0
void Scroller::onScrolled(Widget& widget, double x, double y)
{
  if (orientation == HORIZONTAL)
    setValue(value + float(x) * getValueStep(), true);
  else
    setValue(value + float(y) * getValueStep(), true);
}
Example #2
0
void Scroller::onButtonClicked(Widget& widget,
                               const vec2& point,
                               input::Button button,
                               bool clicked)
{
  if (!clicked)
    return;

  const vec2 local = transformToLocal(point);
  const float size = getHandleSize();
  const float offset = getHandleOffset();

  if (orientation == HORIZONTAL)
  {
    if (local.x < offset)
      setValue(value - getValueStep(), true);
    else if (local.x >= offset + size)
      setValue(value + getValueStep(), true);
  }
  else
  {
    if (local.y > getHeight() - offset)
      setValue(value - getValueStep(), true);
    else if (local.y <= getHeight() - offset - size)
      setValue(value + getValueStep(), true);
  }
}
Example #3
0
void Scroller::onKeyPressed(Widget& widget, input::Key key, bool pressed)
{
  if (pressed)
  {
    switch (key)
    {
      case input::KEY_DOWN:
      case input::KEY_RIGHT:
      {
        setValue(value + getValueStep(), true);
        break;
      }

      case input::KEY_UP:
      case input::KEY_LEFT:
      {
        setValue(value - getValueStep(), true);
        break;
      }

      case input::KEY_HOME:
      {
        setValue(minValue, true);
        break;
      }

      case input::KEY_END:
      {
        setValue(maxValue, true);
        break;
      }

      default:
        break;
    }
  }
}
Example #4
0
void Slider::updateView(float mouseData[2], int clickType, wchar_t keyChar, vector<string> eventCompList) {

	if (getVisible()) {
		float transparency = getTransparency();

		if ((getFocusEffect() == true) && (getMouseOverContainer() == true)) transparency = 1.0f;

		if (!getMouseOverContainer()) slide = false;

		if (!getEnabled()) { 
			setActualTex(getDisabledTex()); 
		} else {
			if ((slide || isMouseOver(mouseData) || button->isMouseOver(mouseData))&&getMouseOverContainer()) setActualTex(getHighlightTex());
			else  {
				setActualTex(getNormalTex());
				//slide = false;
			}
		}


		if (clickType == 1 && (isMouseOver(mouseData) || button->isMouseOver(mouseData))) {
			slide = true;
		}

		if ((clickType == -1) && (slide)) {
			slide = false;
		}

		if (slide) {

			if (horizontal) {

				float step = getWidth()/((getMaxValue()-getMinValue())/getValueStep());

				if (mouseData[0] >= button->getPosX()+step) { 
					if (setPosition(getPosition()+getValueStep()))
						sendNewValue(getPosition(), eventCompList);
				}

				if (mouseData[0] <= button->getPosX()-step) { 
					if (setPosition(getPosition()-getValueStep()))
						sendNewValue(getPosition(), eventCompList);
				}
			}
			else {
				float step = getHeight()/((getMaxValue()-getMinValue())/getValueStep());

				if (mouseData[1] <= button->getPosY()-step) {
					if (setPosition(getPosition()+getValueStep()))
						sendNewValue(getPosition(), eventCompList);
				}

				if (mouseData[1] >= button->getPosY()+step) {
					if (setPosition(getPosition()-getValueStep()))
						sendNewValue(getPosition(), eventCompList);
				}
			}


		}
		

		float posX = getPosX();
		float posY = getPosY();
		float height = getHeight();
		float width = getWidth();

		float vals[] = {posX, posY, 0, 1,  
							posX, posY+height, 0, 0,  
							posX+width, posY+height, 1, 0,  
							posX+width, posY, 1, 1 
						};
						
		h3dShowOverlays(vals, 4,1, 1, 1, transparency,getActualTex(), 0 );


		if (slide) { 
			button->setMouseOverIsTrue(true);
			button->updateView(mouseData,1,keyChar,eventCompList);
		} else {
			button->setMouseOverIsTrue(false);
			button->updateView(mouseData,clickType,keyChar,eventCompList);
		}
	}
}