void WDL_VirtualIconButton::OnMouseMove(int xpos, int ypos)
{
  if (m_en&&m_is_button)
  {
    int wp=m_pressed;

    WDL_VWnd *parhit = GetParent();
    if (parhit)
    {
      parhit = parhit->VirtWndFromPoint(m_position.left+xpos,m_position.top+ypos,0);
    }
    else if (!parhit)
    {
      // special case if no parent
      if (xpos >= 0 && xpos < m_position.right-m_position.left && ypos >= 0 && ypos < m_position.bottom-m_position.top) parhit=this;      
    }
    
    if (parhit == this)
    {
      m_pressed|=2;
    }
    else
    {
      m_pressed&=~2;
    }

    if ((m_pressed&3)!=(wp&3))
    {
      RequestRedraw(NULL);
    }
  }
}
void WDL_VirtualIconButton::OnMouseMove(int xpos, int ypos)
{
  if (m_en&&m_is_button)
  {
    int wp=m_pressed;

    WDL_VWnd *parhit = GetParent();
    if (parhit)
    {
      parhit = parhit->VirtWndFromPoint(m_position.left+xpos,m_position.top+ypos,0);
    }
    
    if (parhit == this)
    {
      m_pressed|=2;
    }
    else
    {
      m_pressed&=~2;
    }

    if ((m_pressed&3)!=(wp&3))
    {
      RequestRedraw(NULL);
    }
  }
}
Exemple #3
0
void SNM_KnobCaption::SetValue(int _value)
{
	if (m_value != _value)
	{
		m_value = _value;
		WDL_VWnd* knob = m_children ? m_children->Get(0) : NULL;
		if (knob && !strcmp(knob->GetType(), "SNM_Knob"))
			((SNM_Knob*)knob)->SetSliderPosition(_value);
		RequestRedraw(NULL);
	}
}
Exemple #4
0
void SNM_KnobCaption::SetPosition(const RECT* _r)
{
	m_position = *_r;
	if (m_children) 
	{
		WDL_VWnd* knob = m_children ? m_children->Get(0) : NULL;
		if (knob && !strcmp(knob->GetType(), "SNM_Knob"))
		{
			// fixed knob size atm..
			RECT r = {0,0,0,0};
			r.top = int(0.5 + (m_position.bottom-m_position.top)/2 - SNM_GUI_W_H_KNOB/2); // valign
			r.right = SNM_GUI_W_H_KNOB;
			r.bottom = r.top + SNM_GUI_W_H_KNOB;
			knob->SetPosition(&r);
		}
	}
 }