void PropertyLineEditControl::Draw(const UIGeometricData &geometricData) { RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 0.3f); RenderHelper::Instance()->FillRect(geometricData.GetUnrotatedRect()); RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 0.9f); RenderHelper::Instance()->DrawRect(GetWorkZone()); RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); for (int32 k = 0; k < (int32)values.size() - 1; ++k) { RenderHelper::Instance()->DrawLine(CalcRealPosition(values[k]), CalcRealPosition(values[k + 1])); } Vector2 vlast = CalcRealPosition(values[(int32)values.size() - 1]); Vector2 vlast2 = CalcRealPosition(PropertyRect(maxX, maxY)); vlast2.y = vlast.y; RenderHelper::Instance()->DrawLine(vlast, vlast2); for (int32 k = 0; k < (int32)values.size(); ++k) { Vector2 pos = CalcRealPosition(values[k]); RenderHelper::Instance()->DrawRect(RectFromPosition(pos)); } RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); }
int32 PropertyLineEditControl::FindValueForInsertion(const Vector2 & absolutePoint) { for (int32 k = 0; k < (int32)values.size(); ++k) { Vector2 pos = CalcRealPosition(values[k]); if (absolutePoint.x < pos.x) return k; } return (int32)values.size(); }
void CControl::SetPercentPosition( const CVec2& position ) { if ( position != m_vec2PercentPosition) { m_vec2PercentPosition = position; CVec2 position; CalcRealPosition( position ); SetPosition( position.x ,position.y, 0.0f ); } }
void CControl::SetAbsolutePosition( const CVec2& position ) { if ( m_vec2AbsolutePosition != position ) { m_vec2AbsolutePosition = position; CVec2 position; CalcRealPosition( position ); SetPosition( position.x ,position.y, 0.0f ); } }
int32 PropertyLineEditControl::FindActiveValueFromPosition(const Vector2 & absolutePoint) { for (int32 k = 0; k < (int32)values.size(); ++k) { Rect valRect = RectFromPosition(CalcRealPosition(values[k])); if (valRect.PointInside(absolutePoint)) { return k; } } return -1; }
void PropertyLineEditControl::Draw(const UIGeometricData &geometricData) { RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 0.3f); RenderHelper::Instance()->FillRect(geometricData.GetUnrotatedRect()); const Rect & cRect = GetWorkZone(); RenderManager::Instance()->SetColor(0.8f, 0.6f, 0.6f, 1.0f); RenderHelper::Instance()->DrawLine(CalcRealPosition(PropertyRect(curTime, maxY)), CalcRealPosition(PropertyRect(curTime, minY))); RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 0.9f); RenderHelper::Instance()->DrawRect(cRect); RenderHelper::Instance()->DrawLine(Vector2(cRect.x - 3, cRect.y + cRect.dy/2), Vector2(cRect.x + 3, cRect.y + cRect.dy/2)); RenderHelper::Instance()->DrawLine(Vector2(cRect.x + cRect.dx - 3, cRect.y + cRect.dy/2), Vector2(cRect.x + cRect.dx + 3, cRect.y + cRect.dy/2)); RenderHelper::Instance()->DrawLine(Vector2(cRect.x + cRect.dx/2, cRect.y - 3), Vector2(cRect.x + cRect.dx/2, cRect.y + 3)); RenderHelper::Instance()->DrawLine(Vector2(cRect.x + cRect.dx/2, cRect.y + cRect.dy - 3), Vector2(cRect.x + cRect.dx/2, cRect.y + cRect.dy + 3)); RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); for (int32 k = 0; k < (int32)values.size() - 1; ++k) { RenderHelper::Instance()->DrawLine(CalcRealPosition(values[k]), CalcRealPosition(values[k + 1])); } Vector2 vlast = CalcRealPosition(values[(int32)values.size() - 1]); Vector2 vlast2 = CalcRealPosition(PropertyRect(maxX, maxY)); vlast2.y = vlast.y; RenderHelper::Instance()->DrawLine(vlast, vlast2); for (int32 k = 0; k < (int32)values.size(); ++k) { Vector2 pos = CalcRealPosition(values[k]); if(activeValueIndex == k) { RenderManager::Instance()->SetColor(0.6f, 0.6f, 0.6f, 1.0f); RenderHelper::Instance()->FillRect(RectFromPosition(pos)); } else if(selectedValueIndex == k) { RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); RenderHelper::Instance()->FillRect(RectFromPosition(pos)); } else { RenderManager::Instance()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); RenderHelper::Instance()->DrawRect(RectFromPosition(pos)); } } }
void CControl::OnParentSizeChange( float width, float height ) { m_fTargetWidth = width; m_fTargetHeight = height; CVec2 position; CalcRealPosition( position ); SetPosition( position.x, position.y, 0.0f ); CalcRealSize(); UpdateQuadP(); for ( auto childWnd : GetChildren() ) { if( childWnd->GetType() == eNT_NodeGUI ) { CControl* child = down_cast<CControl*>(childWnd); child->OnParentSizeChange( m_vecRealSize.x, m_vecRealSize.y ); } } }