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); } } }
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); } }
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); } } }