1 Star 0 Fork 0

yoyojacky/CSMoE

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
TextImage.h 3.13 KB
一键复制 编辑 原始数据 按行查看 历史
//========= Copyright ?1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef TEXTIMAGE_H
#define TEXTIMAGE_H
#ifdef _WIN32
#pragma once
#endif
#include <vgui/VGUI2.h>
#include <vgui/ILocalize.h>
#include "Image.h"
#include <tier1/utlvector.h>
class KeyValues;
namespace vgui2
{
//-----------------------------------------------------------------------------
// Purpose: Image that handles drawing of a text string
//-----------------------------------------------------------------------------
class TextImage : public Image
{
public:
TextImage(const char *text);
TextImage(const wchar_t *wszText);
~TextImage();
public:
// takes the string and looks it up in the localization file to convert it to unicode
virtual void SetText(const char *text);
// sets unicode text directly
virtual void SetText(const wchar_t *text, bool bClearUnlocalizedSymbol = false);
// get the full text in the image
virtual void GetText(char *buffer, int bufferSize);
virtual void GetText(wchar_t *buffer, int bufferLength);
// get the text in it's unlocalized form
virtual void GetUnlocalizedText(char *buffer, int bufferSize);
virtual StringIndex_t GetUnlocalizedTextSymbol();
// set the font of the text
virtual void SetFont(vgui2::HFont font);
// get the font of the text
virtual vgui2::HFont GetFont();
// set the width of the text to be drawn
// use this function if the textImage is in another window to cause
// the text to be truncated to the width of the window (elipsis added)
void SetDrawWidth(int width);
// get the width of the text to be drawn
void GetDrawWidth(int &width);
void ResizeImageToContent();
void ResizeImageToContentMaxWidth( int nMaxWidth );
// set the size of the image
virtual void SetSize(int wide,int tall);
// get the full size of a text string
virtual void GetContentSize(int &wide, int &tall);
// draws the text
virtual void Paint();
void SetWrap( bool bWrap );
void RecalculateNewLinePositions();
void SetUseFallbackFont( bool bState, HFont hFallback );
protected:
// truncate the _text string to fit into the draw width
void SizeText(wchar_t *tempText, int stringLength);
// gets the size of a specified piece of text
virtual void GetTextSize(int &wide, int &tall);
private:
void RecalculateEllipsesPosition();
wchar_t *_utext; // unicode version of the text
short _textBufferLen; // size of the text buffer
short _textLen; // length of the text string
vgui2::HFont _font; // font of the text string
vgui2::HFont _fallbackFont;
int _drawWidth; // this is the width of the window we are drawing into.
// if there is not enough room truncate the txt and add an elipsis
StringIndex_t _unlocalizedTextSymbol; // store off the unlocalized text index for build mode
wchar_t *m_pwszEllipsesPosition;
bool m_bRecalculateTruncation : 1;
bool m_bWrap : 1;
bool m_bUseFallbackFont : 1;
bool m_bRenderUsingFallbackFont : 1;
CUtlVector<wchar_t *> m_LineBreaks; // an array that holds the index in the buffer to wrap lines at
};
} // namespace vgui
#endif // TEXTIMAGE_H
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yoyojacky/CSMoE.git
git@gitee.com:yoyojacky/CSMoE.git
yoyojacky
CSMoE
CSMoE
master

搜索帮助