void cWidgetLabel::OnDraw(float afTimeStep, cGuiClipRegion *apClipRegion) { //////////////////////////////// // Texts cVector3f vOffset = 0; //if(mTextAlign == eFontAlign_Center) vOffset.x += mvSize.x/2; //else if(mTextAlign == eFontAlign_Right) vOffset.x += mvSize.x; if(mbWordWrap) { int lChars =0; bool bEnabled = IsEnabled(); float fHeight = mvDefaultFontSize.y+2; tWStringVec vRows; mpDefaultFontType->GetWordWrapRows(mvSize.x,fHeight, mvDefaultFontSize, msText, &vRows); for(size_t i=0; i< vRows.size(); ++i) { bool bBreak = false; if(mlMaxCharacters>=0) { if(lChars + (int)vRows[i].length() > mlMaxCharacters) { vRows[i] = cString::SubW(vRows[i],0, mlMaxCharacters - lChars); bBreak = true; } lChars += (int)vRows[i].length(); } if(bEnabled) DrawDefaultText(vRows[i], GetGlobalPosition()+vOffset,mTextAlign); else DrawSkinText(vRows[i],eGuiSkinFont_Disabled,GetGlobalPosition()+vOffset,mTextAlign); vOffset.y += fHeight; if(bBreak) break; } } else { if(mlMaxCharacters>=0 && (int)msText.length() > mlMaxCharacters) { if(IsEnabled()) DrawDefaultText(cString::SubW(msText,0,mlMaxCharacters), GetGlobalPosition()+vOffset,mTextAlign); else DrawSkinText(cString::SubW(msText,0,mlMaxCharacters),eGuiSkinFont_Disabled,GetGlobalPosition()+vOffset,mTextAlign); } else { if(IsEnabled()) DrawDefaultText(msText, GetGlobalPosition()+vOffset,mTextAlign); else DrawSkinText(msText,eGuiSkinFont_Disabled,GetGlobalPosition()+vOffset,mTextAlign); } } }
void cWidgetCheckBox::OnDraw(float afTimeStep, cGuiClipRegion *apClipRegion) { //////////////////////////////// // Box mpSet->DrawGfx( mvGfxBox[IsEnabled()][mbChecked], GetGlobalPosition() + cVector3f(0,mvSize.y/2 - mvGfxBox[0][0]->GetActiveSize().y/2,0)); //////////////////////////////// // Text eGuiSkinFont font = IsEnabled() ? eGuiSkinFont_Default : eGuiSkinFont_Disabled; DrawSkinText( msText,font, GetGlobalPosition() + cVector3f( mvGfxBox[0][0]->GetActiveSize().x +3.0f, mvSize.y/2 - mvDefaultFontSize.y/2,0), eFontAlign_Left); }
void cWidgetWindow::OnDraw(float afTimeStep, cGuiClipRegion *apClipRegion) { //////////////////////////////// // Calc label size cVector2f vLabelSize; vLabelSize.x = mvSize.x - (mvGfxCorners[0]->GetActiveSize().x + mvGfxCorners[1]->GetActiveSize().x); vLabelSize.y = mpLabelFont->mvSize.y + mvLabelTextOffset.y*2; //////////////////////////////// // Label mpSet->DrawGfx( mpGfxLabel,GetGlobalPosition() + cVector3f(mvGfxCorners[0]->GetActiveSize().x,mvGfxCorners[0]->GetActiveSize().y,0.2f), vLabelSize); //////////////////////////////// // Label text DrawSkinText( msText,eGuiSkinFont_WindowLabel,GetGlobalPosition()+ cVector3f( mvGfxCorners[0]->GetActiveSize().x+mvLabelTextOffset.x, mvGfxCorners[0]->GetActiveSize().y+mvLabelTextOffset.y,0.4f)); //////////////////////////////// // Borders and background DrawBordersAndCorners( mpGfxBackground, mvGfxBorders, mvGfxCorners, GetGlobalPosition(), mvSize); }