| 31 | } |
| 32 | |
| 33 | void CUIProgressBar::UpdateProgressBar() |
| 34 | { |
| 35 | if (fsimilar(m_MaxPos, m_MinPos)) |
| 36 | m_MaxPos += EPS; |
| 37 | |
| 38 | float progressbar_unit = 1 / (m_MaxPos - m_MinPos); |
| 39 | |
| 40 | float fCurrentLength = m_ProgressPos.x * progressbar_unit; |
| 41 | |
| 42 | switch (m_orient_mode) |
| 43 | { |
| 44 | case om_horz: |
| 45 | case om_back: |
| 46 | case om_fromcenter: m_CurrentLength = GetWidth() * fCurrentLength; break; |
| 47 | case om_vert: |
| 48 | case om_down: |
| 49 | case om_vfromcenter: m_CurrentLength = GetHeight() * fCurrentLength; break; |
| 50 | default: m_CurrentLength = 0.0f; |
| 51 | } |
| 52 | |
| 53 | if (m_bUseColor) |
| 54 | { |
| 55 | if (m_bUseGradient) |
| 56 | { |
| 57 | Fcolor curr; |
| 58 | curr.lerp(m_minColor, m_middleColor, m_maxColor, fCurrentLength); |
| 59 | m_UIProgressItem.SetTextureColor(curr.get()); |
| 60 | } |
| 61 | else |
| 62 | m_UIProgressItem.SetTextureColor(m_maxColor.get()); |
| 63 | } |
| 64 | } |
| 65 | |
| 66 | void CUIProgressBar::SetProgressPos(float _Pos) |
| 67 | { |