Пример #1
0
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);
                }
        }
}
Пример #2
0
	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);
	}
Пример #3
0
	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);
	}