TextProperties¶
-
class
TextProperties
¶ This defines the set of visual properties that may be assigned to the individual characters of the text. (Properties which affect the overall block of text can only be specified on the
TextNode
directly).Typically, there is just one set of properties on a given block of text, which is set directly on the
TextNode
(TextNode inherits from TextProperties). That makes all of the text within a particular block have the same appearance.This separate class exists in order to implement multiple different kinds of text appearing within one block. The text string itself may reference a TextProperties structure by name using the 1 and 2 tokens embedded within the string; each nested TextProperties structure modifies the appearance of subsequent text within the block.
Inheritance diagram
-
enum
Alignment
¶ -
enumerator
A_left
= 0¶
-
enumerator
A_right
= 1¶
-
enumerator
A_center
= 2¶
-
enumerator
A_boxed_left
= 3¶
-
enumerator
A_boxed_right
= 4¶
-
enumerator
A_boxed_center
= 5¶
-
enumerator
-
TextProperties
(void)¶
-
TextProperties
(TextProperties const ©)¶
-
void
add_properties
(TextProperties const &other)¶ Sets any properties that are explicitly specified in other on this object. Leaves other properties unchanged.
-
void
clear
(void)¶ Unsets all properties that have been specified so far, and resets the
TextProperties
structure to its initial empty state.
-
void
clear_align
(void)¶ Restores the default alignment of the text.
-
void
clear_bin
(void)¶ Removes the effect of a previous call to
set_bin()
. Text will be drawn in whatever bin it would like to be drawn in, with no explicit ordering.
-
void
clear_direction
(void)¶ Clears the text direction setting. If no text direction is specified, it will be guessed based on the contents of the string.
New in version 1.10.0.
-
void
clear_draw_order
(void)¶
-
void
clear_font
(void)¶ Restores the default font to the text.
-
void
clear_glyph_scale
(void)¶
-
void
clear_glyph_shift
(void)¶
-
void
clear_indent
(void)¶ Removes the indent setting from the text. Text will be as wide as it is.
-
void
clear_preserve_trailing_whitespace
(void)¶
-
void
clear_shadow
(void)¶ Specifies that a shadow will not be drawn behind the text.
-
void
clear_shadow_color
(void)¶ Removes the shadow color specification.
-
void
clear_slant
(void)¶
-
void
clear_small_caps
(void)¶
-
void
clear_small_caps_scale
(void)¶
-
void
clear_tab_width
(void)¶
-
void
clear_text_color
(void)¶ Removes the text color specification; the text will be colored whatever it was in the source font file.
-
void
clear_text_scale
(void)¶
-
void
clear_underscore
(void)¶
-
void
clear_underscore_height
(void)¶
-
void
clear_wordwrap
(void)¶ Removes the wordwrap setting from the text. Text will be as wide as it is.
-
std::string const &
get_bin
(void) const¶ Returns the drawing bin set with
set_bin()
, or empty string if no bin has been set.
-
static TypeHandle
get_class_type
(void)¶
-
TextFont *
get_default_font
(void)¶ Specifies the default font to be used for any
TextNode
whose font is uninitialized or NULL. Seeset_font()
.
-
Direction
get_direction
(void) const¶ Returns the direction of the text as specified by
set_direction()
.New in version 1.10.0.
-
int
get_draw_order
(void) const¶ Returns the drawing order set with
set_draw_order()
.
-
TextFont *
get_font
(void) const¶ Returns the font currently in use, if any. If no font is in use, this returns the default font.
-
PN_stdfloat
get_glyph_scale
(void) const¶ Returns the scale factor of each letter as specified by
set_glyph_scale()
.
-
PN_stdfloat
get_glyph_shift
(void) const¶ Returns the vertical shift of each letter as specified by
set_glyph_shift()
.
-
PN_stdfloat
get_indent
(void) const¶
-
bool
get_preserve_trailing_whitespace
(void) const¶ Returns the preserve_trailing_whitespace flag. See
set_preserve_trailing_whitespace()
.
-
LVector2
get_shadow
(void) const¶ Returns the offset of the shadow as set by
set_shadow()
. It is an error to call this ifhas_shadow()
is false.
-
PN_stdfloat
get_slant
(void) const¶ Returns the factor by which the text is specified to slant to the right.
-
bool
get_small_caps
(void) const¶ Returns the small_caps flag. See
set_small_caps()
.
-
PN_stdfloat
get_small_caps_scale
(void) const¶ Returns the scale factor applied to lowercase letters from their uppercase equivalents, when the small_caps flag is in effect. See
set_small_caps()
andset_small_caps_scale()
.
-
PN_stdfloat
get_tab_width
(void) const¶ Returns the width set via
set_tab_width()
.
-
PN_stdfloat
get_text_scale
(void) const¶ Returns the scale factor of the text as specified by
set_text_scale()
.
-
bool
get_underscore
(void) const¶ Returns the underscore flag. See
set_underscore()
.
-
PN_stdfloat
get_underscore_height
(void) const¶ Returns the vertical height of the underscore; see
set_underscore_height()
.
-
PN_stdfloat
get_wordwrap
(void) const¶
-
bool
has_align
(void) const¶
-
bool
has_bin
(void) const¶ Returns true if an explicit drawing bin has been set via
set_bin()
, false otherwise.
-
bool
has_direction
(void) const¶ New in version 1.10.0.
-
bool
has_draw_order
(void) const¶
-
bool
has_font
(void) const¶
-
bool
has_glyph_scale
(void) const¶
-
bool
has_glyph_shift
(void) const¶
-
bool
has_indent
(void) const¶
-
bool
has_preserve_trailing_whitespace
(void) const¶
-
bool
has_shadow
(void) const¶
-
bool
has_shadow_color
(void) const¶
-
bool
has_slant
(void) const¶
-
bool
has_small_caps
(void) const¶
-
bool
has_small_caps_scale
(void) const¶
-
bool
has_tab_width
(void) const¶
-
bool
has_text_color
(void) const¶
-
bool
has_text_scale
(void) const¶
-
bool
has_underscore
(void) const¶
-
bool
has_underscore_height
(void) const¶
-
bool
has_wordwrap
(void) const¶
-
bool
is_any_specified
(void) const¶ Returns true if any properties have been specified, false otherwise.
-
void
set_align
(TextProperties::Alignment align_type)¶ Specifies the alignment of the text within its margins.
-
void
set_bin
(std::string const &bin)¶ Names the CullBin that the text geometry should be assigned to. If this is set, then a
CullBinAttrib
will be created to explicitly place each component in the named bin.The draw_order value will also be passed to each
CullBinAttrib
as appropriate; this is particularly useful if this names a CullBinFixed, e.g. “fixed”.
-
void
set_default_font
(TextFont*)¶ Specifies the default font to be used for any
TextNode
whose font is uninitialized or NULL. Seeset_font()
.
-
void
set_direction
(TextProperties::Direction direction)¶ Specifies the text direction. If none is specified, it will be guessed based on the contents of the string.
New in version 1.10.0.
-
int
set_draw_order
(int draw_order)¶ Sets the drawing order of text created by the
TextNode
. This is actually the draw order of the card and frame. The shadow is drawn at _draw_order+1, and the text at _draw_order+2.This affects the sorting order assigned to the nodes as they are created, and also is passed to whatever bin may be assigned via
set_bin()
.The return value is the first unused draw_order number, e.g. _draw_order + 3.
-
void
set_font
(TextFont *font)¶ Sets the font that will be used when making text. If this is set to NULL, the default font will be used, which can be set via
set_default_font()
.
-
void
set_glyph_scale
(PN_stdfloat glyph_scale)¶ Specifies the factor by which to scale each letter of the text as it is placed, in addition to any scales inherited from the node or from
set_text_scale()
. This can be used (possibly in conjunction withset_glyph_shift()
) to implement superscripting or subscripting.The glyph scale is cumulative when applied to nested
TextProperties
. It is intended primarily for implementing superscripts, not for scaling the text in general. See alsoset_text_scale()
, which is intended primarily for scaling the text in general, and is not cumulative.
-
void
set_glyph_shift
(PN_stdfloat glyph_shift)¶ Specifies a vertical amount to shift each letter of the text as it is placed. This can be used (possibly in conjunction with
set_glyph_scale()
) to implement superscripting or subscripting.
-
void
set_indent
(PN_stdfloat indent)¶ Specifies the amount of extra space that is inserted before the first character of each line. This can be thought of as a left margin.
-
void
set_preserve_trailing_whitespace
(bool preserve_trailing_whitespace)¶ Sets the preserve_trailing_whitespace flag. When this is set, trailing whitespace at the end of the line is not stripped when the text is wordwrapped (it is stripped by default). Since the trailing whitespace is invisible, this is important primarily for determining the proper width of a frame or card behind the text.
-
void
set_shadow
(PN_stdfloat xoffset, PN_stdfloat yoffset)¶
-
void
set_shadow
(LVecBase2 const &shadow_offset)¶ Specifies that the text should be drawn with a shadow, by creating a second copy of the text and offsetting it slightly behind the first.
-
void
set_shadow_color
(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a)¶
-
void
set_slant
(PN_stdfloat slant)¶ Specifies the factor by which the text slants to the right.
-
void
set_small_caps
(bool small_caps)¶ Sets the small_caps flag. When this is set, lowercase letters are generated as scaled-down versions of their uppercase equivalents. This is particularly useful to set for fonts that do not have lowercase letters.
It is also a good idea to set this for a (dynamic) font that has already implemented lowercase letters as scaled-down versions of their uppercase equivalents, since without this flag the texture memory may needlessly duplicate equivalent glyphs for upper and lowercase letters. Setting this flag causes the texture memory to share the mixed-case letters.
The amount by which the lowercase letters are scaled is specified by
set_small_caps_scale()
.
-
void
set_small_caps_scale
(PN_stdfloat small_caps_scale)¶ Sets the scale factor applied to lowercase letters from their uppercase equivalents, when the small_caps flag is in effect. See
set_small_caps()
. Normally, this will be a number less than one.
-
void
set_tab_width
(PN_stdfloat tab_width)¶ Sets the width of each tab stop, in screen units. A tab character embedded in the text will advance the horizontal position to the next tab stop.
-
void
set_text_color
(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a)¶
-
void
set_text_scale
(PN_stdfloat text_scale)¶ Specifies the factor by which to scale the text, in addition to any scalings imposed by the node, as well as in addition to the glyph scale.
The text scale is not cumulative when applied to nested
TextProperties
. See alsoset_glyph_scale()
, which is cumulative.
-
void
set_underscore
(bool underscore)¶ Sets the underscore flag. When this is set, the text is underscored with a one-pixel line the same color as the text foreground, drawn at the baseline.
-
void
set_underscore_height
(PN_stdfloat underscore_height)¶ Specifies the vertical height of the underscore, relative to the text baseline. This only has meaning if the underscore mode is enabled with
set_underscore()
.
-
void
set_wordwrap
(PN_stdfloat wordwrap)¶ Sets the text up to automatically wordwrap when it exceeds the indicated width. This can be thought of as a right margin or margin width.
-
void
write
(std::ostream &out, int indent_level = 0) const¶
-
enum