VGUI TextImage: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Why use vgui:: when we have declared the namespace at top?)
m (TextImage only has one parameter in its constructor (For setting the text).)
Line 19: Line 19:
TextImages can be created via the c++ keyword new with a simple call to TextImage:
TextImages can be created via the c++ keyword new with a simple call to TextImage:
<source lang="cpp">
<source lang="cpp">
  text = new TextImage(this, "myText");
  text = new TextImage("Text");
</source>
</source>



Revision as of 22:32, 18 June 2012

A TextImage is a vgui2 element defined in the vgui_controls library, in the file TextImage.cpp. TextImages are available in all source games. TextImage is not really a full functioning control, it's used by VGUI Label to draw text.

You can, however, use TextImage to draw text, but you will need to call TextImage's paint function, as it is not automatically called.

Example Usage

Before creating anything, we first need to include the TextImage header file and use the vgui namespace.

 #include <vgui_controls/TextImage.h>

 using namespace vgui;

First, lets add a new variable to our class's header file:

TextImage* text;

TextImages can be created via the c++ keyword new with a simple call to TextImage:

 text = new TextImage("Text");

Once we've created our TextImage, we now need to do some configuration, usually done in ApplySchemeSettings:

 void CExample::ApplySchemeSettings( vgui::IScheme *pScheme )
 {
    BaseClass::ApplySchemeSettings( pScheme );
 
    text->SetText("Text");
    text->SetPos(200,200);
    text->SetSize(100,50);
    text->SetFont(pScheme->GetFont( "DefaultVerySmall" ));
    text->SetColor( Color( 200, 255, 200, 255 ) );
 }

As mentioned above, TextImages will not automatically paint themselves, so, we need to paint them. Don't worry, its fairly simple.

 void CExample::Paint()
 {
    BaseClass::Paint();
 
    text->Paint();
 }

Heres what it should look like when you're done:

TextImage.jpg