VGUI TextImage: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
(Fixed source highlighting)
Line 6: Line 6:


Before creating anything, we first need to include the TextImage header file and use the vgui namespace.
Before creating anything, we first need to include the TextImage header file and use the vgui namespace.
 
<source lang="cpp">
  #include <vgui_controls/TextImage.h>
  #include <vgui_controls/TextImage.h>


  using namespace vgui;
  using namespace vgui;
 
</source>


First, lets add a new variable to our class's header file:
First, lets add a new variable to our class's header file:
 
<source lang="cpp">
  vgui::TextImage* text;
  vgui::TextImage* text;
 
</source>


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">
  text = new TextImage(this, "myText");
  text = new TextImage(this, "myText");
 
</source>


Once we've created our TextImage, we now need to do some configuration, usually done in ApplySchemeSettings:
Once we've created our TextImage, we now need to do some configuration, usually done in ApplySchemeSettings:
 
<source lang="cpp">
  void CExample::ApplySchemeSettings( vgui::IScheme *pScheme )
  void CExample::ApplySchemeSettings( vgui::IScheme *pScheme )
  {
  {
Line 34: Line 34:
     text->SetColor( Color( 200, 255, 200, 255 ) );
     text->SetColor( Color( 200, 255, 200, 255 ) );
  }
  }
 
</source>


As mentioned above, TextImages will not automatically paint themselves, so, we need to paint them. Don't worry, its fairly simple.
As mentioned above, TextImages will not automatically paint themselves, so, we need to paint them. Don't worry, its fairly simple.
 
<source lang="cpp">
  void CExample::Paint()
  void CExample::Paint()
  {
  {
Line 44: Line 44:
     text->Paint();
     text->Paint();
  }
  }
 
</source>


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

Revision as of 23:19, 29 August 2011

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:

 vgui::TextImage* text;

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

 text = new TextImage(this, "myText");

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