Panda3D
|
This defines the set of visual properties that may be assigned to the individual characters of the text. More...
#include "textProperties.h"
Public Types | |
enum | Alignment { A_left, A_right, A_center, A_boxed_left, A_boxed_right, A_boxed_center } |
Public Member Functions | |
TextProperties (const TextProperties ©) | |
void | add_properties (const TextProperties &other) |
Sets any properties that are explicitly specified in other on this object. More... | |
void | clear () |
Unsets all properties that have been specified so far, and resets the TextProperties structure to its initial empty state. More... | |
void | clear_align () |
Restores the default alignment of the text. More... | |
void | clear_bin () |
Removes the effect of a previous call to set_bin(). More... | |
void | clear_draw_order () |
void | clear_font () |
Restores the default font to the text. More... | |
void | clear_glyph_scale () |
void | clear_glyph_shift () |
void | clear_indent () |
Removes the indent setting from the text. More... | |
void | clear_preserve_trailing_whitespace () |
void | clear_shadow () |
Specifies that a shadow will not be drawn behind the text. More... | |
void | clear_shadow_color () |
Removes the shadow color specification. More... | |
void | clear_slant () |
void | clear_small_caps () |
void | clear_small_caps_scale () |
void | clear_tab_width () |
void | clear_text_color () |
Removes the text color specification; the text will be colored whatever it was in the source font file. More... | |
void | clear_text_scale () |
void | clear_underscore () |
void | clear_underscore_height () |
void | clear_wordwrap () |
Removes the wordwrap setting from the text. More... | |
Alignment | get_align () const |
const string & | get_bin () const |
Returns the drawing bin set with set_bin(), or empty string if no bin has been set. More... | |
int | get_draw_order () const |
Returns the drawing order set with set_draw_order(). More... | |
TextFont * | get_font () const |
Returns the font currently in use, if any. More... | |
PN_stdfloat | get_glyph_scale () const |
Returns the scale factor of each letter as specified by set_glyph_scale(). More... | |
PN_stdfloat | get_glyph_shift () const |
Returns the vertical shift of each letter as specified by set_glyph_shift(). More... | |
PN_stdfloat | get_indent () const |
bool | get_preserve_trailing_whitespace () const |
Returns the preserve_trailing_whitespace flag. More... | |
LVector2 | get_shadow () const |
Returns the offset of the shadow as set by set_shadow(). More... | |
LColor | get_shadow_color () const |
PN_stdfloat | get_slant () const |
Returns the factor by which the text is specified to slant to the right. More... | |
bool | get_small_caps () const |
Returns the small_caps flag. More... | |
PN_stdfloat | get_small_caps_scale () const |
Returns the scale factor applied to lowercase letters from their uppercase equivalents, when the small_caps flag is in effect. More... | |
PN_stdfloat | get_tab_width () const |
Returns the width set via set_tab_width(). More... | |
LColor | get_text_color () const |
PN_stdfloat | get_text_scale () const |
Returns the scale factor of the text as specified by set_text_scale(). More... | |
bool | get_underscore () const |
Returns the underscore flag. More... | |
PN_stdfloat | get_underscore_height () const |
Returns the vertical height of the underscore; see set_underscore_height(). More... | |
PN_stdfloat | get_wordwrap () const |
bool | has_align () const |
bool | has_bin () const |
Returns true if an explicit drawing bin has been set via set_bin(), false otherwise. More... | |
bool | has_draw_order () const |
bool | has_font () const |
bool | has_glyph_scale () const |
bool | has_glyph_shift () const |
bool | has_indent () const |
bool | has_preserve_trailing_whitespace () const |
bool | has_shadow () const |
bool | has_shadow_color () const |
bool | has_slant () const |
bool | has_small_caps () const |
bool | has_small_caps_scale () const |
bool | has_tab_width () const |
bool | has_text_color () const |
bool | has_text_scale () const |
bool | has_underscore () const |
bool | has_underscore_height () const |
bool | has_wordwrap () const |
bool | is_any_specified () const |
Returns true if any properties have been specified, false otherwise. More... | |
bool | operator!= (const TextProperties &other) const |
void | operator= (const TextProperties ©) |
bool | operator== (const TextProperties &other) const |
void | set_align (Alignment align_type) |
Specifies the alignment of the text within its margins. More... | |
void | set_bin (const string &bin) |
Names the CullBin that the text geometry should be assigned to. More... | |
int | set_draw_order (int draw_order) |
Sets the drawing order of text created by the TextNode. More... | |
void | set_font (TextFont *font) |
Sets the font that will be used when making text. More... | |
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(). More... | |
void | set_glyph_shift (PN_stdfloat glyph_shift) |
Specifies a vertical amount to shift each letter of the text as it is placed. More... | |
void | set_indent (PN_stdfloat indent) |
Specifies the amount of extra space that is inserted before the first character of each line. More... | |
void | set_preserve_trailing_whitespace (bool preserve_trailing_whitespace) |
Sets the preserve_trailing_whitespace flag. More... | |
void | set_shadow (PN_stdfloat xoffset, PN_stdfloat yoffset) |
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. More... | |
void | set_shadow (const LVecBase2 &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. More... | |
void | set_shadow_color (PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a) |
void | set_shadow_color (const LColor &shadow_color) |
void | set_slant (PN_stdfloat slant) |
Specifies the factor by which the text slants to the right. More... | |
void | set_small_caps (bool small_caps) |
Sets the small_caps flag. More... | |
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. More... | |
void | set_tab_width (PN_stdfloat tab_width) |
Sets the width of each tab stop, in screen units. More... | |
void | set_text_color (PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a) |
void | set_text_color (const LColor &text_color) |
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. More... | |
void | set_underscore (bool underscore) |
Sets the underscore flag. More... | |
void | set_underscore_height (PN_stdfloat underscore_height) |
Specifies the vertical height of the underscore, relative to the text baseline. More... | |
void | set_wordwrap (PN_stdfloat wordwrap) |
Sets the text up to automatically wordwrap when it exceeds the indicated width. More... | |
void | write (ostream &out, int indent_level=0) const |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static TextFont * | get_default_font () |
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL. More... | |
static void | init_type () |
static void | set_default_font (TextFont *) |
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL. More... | |
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.
Definition at line 46 of file textProperties.h.
void TextProperties::add_properties | ( | const TextProperties & | other | ) |
Sets any properties that are explicitly specified in other on this object.
Leaves other properties unchanged.
Definition at line 190 of file textProperties.cxx.
References get_bin(), get_draw_order(), get_font(), get_glyph_scale(), get_glyph_shift(), get_shadow(), get_slant(), get_small_caps(), get_small_caps_scale(), get_tab_width(), get_text_scale(), get_underscore(), get_underscore_height(), ConfigVariableFilename::get_value(), has_bin(), is_any_specified(), FontPool::load_font(), BamFile::open_read(), set_align(), set_bin(), set_draw_order(), set_font(), set_glyph_scale(), set_glyph_shift(), set_indent(), set_shadow(), set_slant(), set_small_caps(), set_small_caps_scale(), set_tab_width(), set_text_scale(), set_underscore(), set_underscore_height(), and set_wordwrap().
Referenced by clear(), and TextAssembler::get_ypos().
void TextProperties::clear | ( | ) |
Unsets all properties that have been specified so far, and resets the TextProperties structure to its initial empty state.
Definition at line 178 of file textProperties.cxx.
References add_properties().
|
inline |
Restores the default alignment of the text.
Definition at line 370 of file textProperties.I.
References set_indent().
Referenced by set_align(), and TextNode::set_small_caps_scale().
|
inline |
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.
Definition at line 725 of file textProperties.I.
References has_bin().
Referenced by TextNode::clear_bin(), and set_bin().
|
inline |
Restores the default font to the text.
Definition at line 86 of file textProperties.I.
References get_font().
Referenced by TextNode::clear_font(), and set_font().
|
inline |
Removes the indent setting from the text.
Text will be as wide as it is.
Definition at line 415 of file textProperties.I.
References set_wordwrap().
Referenced by set_indent(), and TextNode::set_indent().
|
inline |
Specifies that a shadow will not be drawn behind the text.
Definition at line 671 of file textProperties.I.
References get_shadow().
Referenced by TextNode::clear_shadow(), and set_shadow().
|
inline |
Removes the shadow color specification.
Definition at line 614 of file textProperties.I.
References set_shadow().
Referenced by clear_text_color(), and TextNode::clear_text_color().
|
inline |
Removes the text color specification; the text will be colored whatever it was in the source font file.
Definition at line 562 of file textProperties.I.
References clear_shadow_color().
Referenced by TextNode::clear_text_color(), and get_preserve_trailing_whitespace().
|
inline |
Removes the wordwrap setting from the text.
Text will be as wide as it is.
Definition at line 460 of file textProperties.I.
References set_preserve_trailing_whitespace().
Referenced by TextNode::clear_wordwrap(), and set_wordwrap().
|
inline |
Returns the drawing bin set with set_bin(), or empty string if no bin has been set.
Definition at line 748 of file textProperties.I.
References set_draw_order().
Referenced by add_properties(), TextNode::calc_width(), TextAssembler::get_xpos(), and has_bin().
|
inlinestatic |
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL.
See set_font().
Definition at line 60 of file textProperties.I.
References set_font().
Referenced by get_font(), and set_default_font().
|
inline |
Returns the drawing order set with set_draw_order().
Definition at line 801 of file textProperties.I.
References set_tab_width().
Referenced by add_properties(), TextNode::calc_width(), TextAssembler::get_xpos(), and set_draw_order().
|
inline |
Returns the font currently in use, if any.
If no font is in use, this returns the default font.
Definition at line 108 of file textProperties.I.
References get_default_font(), and set_small_caps().
Referenced by add_properties(), TextAssembler::calc_width(), TextNode::calc_width(), clear_font(), TextNode::get_line_height(), TextNode::has_character(), TextAssembler::has_exact_character(), TextNode::has_exact_character(), TextAssembler::is_whitespace(), and TextNode::is_whitespace().
|
inline |
Returns the scale factor of each letter as specified by set_glyph_scale().
Definition at line 900 of file textProperties.I.
References set_glyph_shift().
Referenced by add_properties(), TextAssembler::calc_width(), TextAssembler::is_whitespace(), and set_glyph_scale().
|
inline |
Returns the vertical shift of each letter as specified by set_glyph_shift().
Definition at line 946 of file textProperties.I.
References set_text_scale().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_glyph_shift().
|
inline |
Returns the preserve_trailing_whitespace flag.
See set_preserve_trailing_whitespace().
Definition at line 530 of file textProperties.I.
References clear_text_color().
Referenced by set_preserve_trailing_whitespace().
|
inline |
Returns the offset of the shadow as set by set_shadow().
It is an error to call this if has_shadow() is false.
Definition at line 694 of file textProperties.I.
References set_bin().
Referenced by add_properties(), clear_shadow(), and TextAssembler::get_xpos().
|
inline |
Returns the factor by which the text is specified to slant to the right.
Definition at line 257 of file textProperties.I.
References set_underscore().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_slant().
|
inline |
Returns the small_caps flag.
See set_small_caps().
Definition at line 166 of file textProperties.I.
References set_small_caps_scale().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_small_caps().
|
inline |
Returns the scale factor applied to lowercase letters from their uppercase equivalents, when the small_caps flag is in effect.
See set_small_caps() and set_small_caps_scale().
Definition at line 213 of file textProperties.I.
References set_slant().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_small_caps_scale().
|
inline |
Returns the width set via set_tab_width().
Definition at line 845 of file textProperties.I.
References set_glyph_scale().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_tab_width().
|
inline |
Returns the scale factor of the text as specified by set_text_scale().
Definition at line 995 of file textProperties.I.
Referenced by add_properties(), TextAssembler::calc_width(), TextAssembler::is_whitespace(), and set_text_scale().
|
inline |
Returns the underscore flag.
See set_underscore().
Definition at line 302 of file textProperties.I.
References set_underscore_height().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_underscore().
|
inline |
Returns the vertical height of the underscore; see set_underscore_height().
Definition at line 348 of file textProperties.I.
References set_align().
Referenced by add_properties(), TextAssembler::is_whitespace(), and set_underscore_height().
|
inline |
Returns true if an explicit drawing bin has been set via set_bin(), false otherwise.
Definition at line 737 of file textProperties.I.
References get_bin().
Referenced by add_properties(), TextNode::calc_width(), clear_bin(), and TextAssembler::get_xpos().
|
inline |
Returns true if any properties have been specified, false otherwise.
Definition at line 33 of file textProperties.I.
References set_default_font().
Referenced by add_properties().
|
inline |
Specifies the alignment of the text within its margins.
Definition at line 359 of file textProperties.I.
References clear_align().
Referenced by add_properties(), get_underscore_height(), and TextNode::set_small_caps_scale().
|
inline |
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".
Definition at line 711 of file textProperties.I.
References clear_bin().
Referenced by add_properties(), get_shadow(), and TextNode::set_bin().
|
inlinestatic |
Specifies the default font to be used for any TextNode whose font is uninitialized or NULL.
See set_font().
Definition at line 45 of file textProperties.I.
References get_default_font().
Referenced by is_any_specified().
|
inline |
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.
Definition at line 768 of file textProperties.I.
References get_draw_order().
Referenced by add_properties(), get_bin(), and TextNode::set_draw_order().
|
inline |
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().
Definition at line 75 of file textProperties.I.
References clear_font().
Referenced by add_properties(), get_default_font(), and TextNode::set_font().
|
inline |
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 with set_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 also set_text_scale(), which is intended primarily for scaling the text in general, and is not cumulative.
Definition at line 867 of file textProperties.I.
References get_glyph_scale().
Referenced by add_properties(), get_tab_width(), and TextNode::set_glyph_scale().
|
inline |
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.
Definition at line 913 of file textProperties.I.
References get_glyph_shift().
Referenced by add_properties(), get_glyph_scale(), and TextNode::set_glyph_shift().
|
inline |
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.
Definition at line 403 of file textProperties.I.
References clear_indent().
Referenced by add_properties(), clear_align(), and TextNode::set_indent().
|
inline |
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.
Definition at line 497 of file textProperties.I.
References get_preserve_trailing_whitespace().
Referenced by clear_wordwrap(), and PGEntry::is_wtext().
|
inline |
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.
Definition at line 647 of file textProperties.I.
Referenced by add_properties(), clear_shadow_color(), and TextNode::set_shadow().
|
inline |
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.
Definition at line 659 of file textProperties.I.
References clear_shadow().
|
inline |
Specifies the factor by which the text slants to the right.
Definition at line 224 of file textProperties.I.
References get_slant().
Referenced by add_properties(), get_small_caps_scale(), and TextNode::set_small_caps_scale().
|
inline |
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().
Definition at line 134 of file textProperties.I.
References get_small_caps().
Referenced by add_properties(), get_font(), and TextNode::set_small_caps().
|
inline |
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.
Definition at line 179 of file textProperties.I.
References get_small_caps_scale().
Referenced by add_properties(), get_small_caps(), and TextNode::set_small_caps_scale().
|
inline |
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.
Definition at line 813 of file textProperties.I.
References get_tab_width().
Referenced by add_properties(), get_draw_order(), and TextNode::set_tab_width().
|
inline |
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 also set_glyph_scale(), which is cumulative.
Definition at line 962 of file textProperties.I.
References get_text_scale().
Referenced by add_properties(), and get_glyph_shift().
|
inline |
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.
Definition at line 270 of file textProperties.I.
References get_underscore().
Referenced by add_properties(), and get_slant().
|
inline |
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().
Definition at line 315 of file textProperties.I.
References get_underscore_height().
Referenced by add_properties(), and get_underscore().
|
inline |
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.
Definition at line 448 of file textProperties.I.
References clear_wordwrap().
Referenced by add_properties(), clear_indent(), PGEntry::is_wtext(), and TextNode::set_wordwrap().