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 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::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 tNASBar::paintEvent( QPaintEvent* /*pEvent*/ ) { QPainter painter( this ); QStyleOptionButton option; option.initFrom( this ); tNOSStyle* nemStyle = qobject_cast< tNOSStyle* >( style() ); if( nemStyle ) { nemStyle->DrawMediaBar( &option, &painter, Selected() ); } // draw a highlight area if the mouse is pressed on a hot spot if( m_ButtonPressed && m_PressedPosition != eCP_None ) { painter.fillRect( RectFromPosition( m_PressedPosition ), palette().highlight() ); } painter.end(); }