41 #ifndef INCLUDED_GLS_CTL_TEXT_BOX_H 
   42 #define INCLUDED_GLS_CTL_TEXT_BOX_H 
   47 #if defined( EMSCRIPTEN ) || defined( RPI_ARCH ) 
   48 #    define GLS_CTL_FALLBACK_ENABLED 
   50 #        error "GLES should always be enabled when using the CTL fallback code" 
   55 #if( defined( GLSGEN_EXPORT_GLSCTLTEXTBOX ) || defined( GLSGEN_IMPORT_GLSCTLTEXTBOX ) || defined( GLSGEN_GLSCTLTEXTBOX_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   56     && defined( _MSC_VER ) 
   57 #    if defined( GLSGEN_EXPORT_GLSCTLTEXTBOX ) || defined( GLSGEN_GLSCTLTEXTBOX_EXPORT_GENERATED ) 
   58 #        define GLSGEN_GLSCTLTEXTBOX_EXPORT __declspec( dllexport ) 
   60 #        define GLSGEN_GLSCTLTEXTBOX_EXPORT __declspec( dllimport ) 
   63 #    define GLSGEN_GLSCTLTEXTBOX_EXPORT 
   73 #ifndef GLS_CTL_FALLBACK_ENABLED 
   75 #    define CTL_BASE_CLASS GlsText 
   78 #    define CTL_BASE_CLASS GlsTextBox 
   81 #define LIB_BASE_NAME "gls_ctl_text_box" 
   87 #    if !defined( NO_GLS_AUTOLIB ) && !defined( GLS_IMPORT_LIBRARY ) 
   89 #            define PANGO_SUFFIX "_64" 
   91 #            define PANGO_SUFFIX "" 
   93 #        pragma message( "Will automatically link with libpango" PANGO_SUFFIX "-1.0.lib" ) 
   94 #        pragma message( "Will automatically link with libpangoft2" PANGO_SUFFIX "-1.0.lib" ) 
   95 #        pragma message( "Will automatically link with libgobject" PANGO_SUFFIX "-2.0.lib" ) 
   96 #        pragma comment( lib, "libpango" PANGO_SUFFIX "-1.0.lib" ) 
   97 #        pragma comment( lib, "libpangoft2" PANGO_SUFFIX "-1.0.lib" ) 
   98 #        pragma comment( lib, "libgobject" PANGO_SUFFIX "-2.0.lib" ) 
  105 #ifndef GLS_CTL_FALLBACK_ENABLED 
  106 class GlsPangoWrapper;
 
  109 class GlsTextBoxFontRenderer;
 
  110 #endif // GLS_CTL_FALLBACK_ENABLED 
  113 class GlsGloFileAttribute;
 
  114 class GlsStateManager;
 
  115 class GlsQuadListVCT_2D;
 
  136     friend class GlsCTLTextBoxEditor;
 
  138 #ifndef GLS_CTL_FALLBACK_ENABLED 
  147 #endif // GLS_CTL_FALLBACK_ENABLED 
  152         VERTICAL_ALIGNMENT_CENTER = ALIGN_CENTER,
 
  153         VERTICAL_ALIGNMENT_TOP    = ALIGN_TOP,
 
  154         VERTICAL_ALIGNMENT_BOTTOM = ALIGN_BOTTOM
 
  161         ELLIPSIZE_MODE_START,
 
  162         ELLIPSIZE_MODE_MIDDLE,
 
  201 #ifndef GLS_CTL_FALLBACK_ENABLED 
  215     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void Draw();
 
  218     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void SetVertices( 
unsigned int nPoints, 
Vertex* vertices );
 
  221     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void Scale( 
float px, 
float py, 
float pz, 
Vertex* anchor, 
int handleBar );
 
  227     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void VaString( 
const char* format, ... );
 
  232     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void VerticalAlignment( VerticalAlignment_t verticalAlignment );
 
  245     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void VerticalAlignment( VerticalAlignment_t verticalAlignment ) { _BaseClass::VerticalAlignment( verticalAlignment ); }
 
  248 #endif // GLS_CTL_FALLBACK_ENABLED 
  263     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void Rebuild();
 
  284     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
unsigned int GetLineCount();
 
  290     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
unsigned int GetGlyphCount();
 
  297     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT GlyphMetrics 
GetGlyphMetrics( 
const unsigned int glyphIndex );
 
  310     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void SetAltWidth( 
float width );
 
  316     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void SetAltHeight( 
float height );
 
  341 #ifndef GLS_CTL_FALLBACK_ENABLED 
  361 #endif // GLS_CTL_FALLBACK_ENABLED 
  368 #    ifndef GLS_CTL_FALLBACK_ENABLED 
  375     bool _geometryRefreshDraw;
 
  380     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void PopulateQuadStorage( 
IGlsStateManager* stateManager );
 
  386 #    endif // GLS_CTL_FALLBACK_ENABLED 
  391     virtual GLSGEN_GLSCTLTEXTBOX_EXPORT 
void DrawText();
 
  393 #ifndef GLS_CTL_FALLBACK_ENABLED 
  397 #endif // GLS_CTL_FALLBACK_ENABLED 
  401     void OnCellDimensionChanged()
 
  413 #ifndef GLS_CTL_FALLBACK_ENABLED 
  422     if( str == 
"ALIGN_TOP" || str == 
"VERTICAL_ALIGNMENT_TOP" )
 
  424         verticalAlignment = disti::GlsCTLTextBox::ALIGN_TOP;
 
  426     else if( str == 
"ALIGN_CENTER" || str == 
"VERTICAL_ALIGNMENT_CENTER" )
 
  428         verticalAlignment = disti::GlsCTLTextBox::ALIGN_CENTER;
 
  430     else if( str == 
"ALIGN_BOTTOM" || str == 
"VERTICAL_ALIGNMENT_BOTTOM" )
 
  432         verticalAlignment = disti::GlsCTLTextBox::ALIGN_BOTTOM;
 
  441     switch( verticalAlignment )
 
  443     case disti::GlsCTLTextBox::ALIGN_TOP:
 
  444         outstr << 
"ALIGN_TOP";
 
  446     case disti::GlsCTLTextBox::ALIGN_CENTER:
 
  447         outstr << 
"ALIGN_CENTER";
 
  449     case disti::GlsCTLTextBox::ALIGN_BOTTOM:
 
  450         outstr << 
"ALIGN_BOTTOM";
 
  455 #endif // GLS_CTL_FALLBACK_ENABLED 
  464     if( str == 
"ELLIPSIZE_MODE_NONE" )
 
  466         ellipsizeMode = disti::GlsCTLTextBox::ELLIPSIZE_MODE_NONE;
 
  468     else if( str == 
"ELLIPSIZE_MODE_START" )
 
  470         ellipsizeMode = disti::GlsCTLTextBox::ELLIPSIZE_MODE_START;
 
  472     else if( str == 
"ELLIPSIZE_MODE_MIDDLE" )
 
  474         ellipsizeMode = disti::GlsCTLTextBox::ELLIPSIZE_MODE_MIDDLE;
 
  476     else if( str == 
"ELLIPSIZE_MODE_END" )
 
  478         ellipsizeMode = disti::GlsCTLTextBox::ELLIPSIZE_MODE_END;
 
  487     switch( ellipsizeMode )
 
  489     case disti::GlsCTLTextBox::ELLIPSIZE_MODE_NONE:
 
  490         outstr << 
"ELLIPSIZE_MODE_NONE";
 
  492     case disti::GlsCTLTextBox::ELLIPSIZE_MODE_START:
 
  493         outstr << 
"ELLIPSIZE_MODE_START";
 
  495     case disti::GlsCTLTextBox::ELLIPSIZE_MODE_MIDDLE:
 
  496         outstr << 
"ELLIPSIZE_MODE_MIDDLE";
 
  498     case disti::GlsCTLTextBox::ELLIPSIZE_MODE_END:
 
  499         outstr << 
"ELLIPSIZE_MODE_END";
 
  507 #endif // INCLUDED_GLS_CTL_TEXT_BOX_H 
The DistiUnhideGlobalsDummyClass class. 
virtual VerticalAlignment_t VerticalAlignment()
The disti::GlsTextBox class. 
ScopedPtr< GlsPangoWrapper > _glsPangoWrapper
Definition: gls_ctl_text_box.h:353
virtual float TextHorizontalScale()
void AdjustImageVertsAndCoords(PangoRect &verts, PangoRect &texCoords)
virtual void PreDraw(const OpenGLMatrices ¤t, Culler &culler)
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:278
virtual void CopyGeometry(DisplayObject *src)
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
float _altWidth
Definition: gls_ctl_text_box.h:343
bool RequiresFontFile() const DISTI_METHOD_OVERRIDE
Definition: gls_ctl_text_box.h:335
virtual DisplayObject * CloneObject(bool generateNames=false)
EllipsizeMode_t
Definition: gls_ctl_text_box.h:158
virtual void SetAvailableAttributes(unsigned int value)
virtual void VaString(const char *format,...)
virtual GlyphMetrics GetGlyphMetrics(const unsigned int glyphIndex)
float _cellHeight
Definition: gls_text.h:784
Definition: gls_state_manager_interface.h:66
virtual void RecalcVertices()
virtual unsigned int GetLineCount()
The disti::GlsText class. 
float _altHeight
Definition: gls_ctl_text_box.h:345
Definition: gls_glo_file.h:835
virtual unsigned int GetGlyphCount()
virtual void CopyProperties(DisplayObject *src)
virtual float TextVerticalScale()
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar)
The Gls CTL (Complex Text Layout) Text Box. 
Definition: gls_ctl_text_box.h:126
bool ControlCellSize() const 
Definition: gls_text.h:463
VerticalAlignmentCTL_t
Definition: gls_ctl_text_box.h:150
static const unsigned int INTERNAL_BORDER
Definition: gls_ctl_text_box.h:134
Definition: gls_ctl_text_box.h:169
VerticalAlignment_t
Definition: gls_ctl_text_box.h:140
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
float _cellWidth
Definition: gls_text.h:787
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
float _textVerticalScale
Definition: gls_ctl_text_box.h:350
virtual EllipsizeMode_t EllipsizeMode()
virtual void SetAltHeight(float height)
A smart pointer with unique ownership – poor man's std::unique_ptr. 
virtual void SetLayoutAutoDir(bool autoDir)
Macros and helper code to determine what subset of C++11/14/17 is available. 
float _textHorizontalScale
Definition: gls_ctl_text_box.h:348
Definition: bmpimage.h:46
virtual void SetAltWidth(float width)