33 #include "UICore/Display/Render/graphic_context.h"
34 #include "../Image/pixel_buffer.h"
35 #include "font_description.h"
36 #include "glyph_metrics.h"
44 typedef std::shared_ptr<Canvas>
CanvasPtr;
60 static std::shared_ptr<Font>
create(
const FontFamilyPtr &font_family,
float height);
66 static std::shared_ptr<Font>
create(
const std::string &typeface_name,
float height);
89 virtual void set_scalable(
float height_threshold = 64.0
f) = 0;
147 typedef std::shared_ptr<Font>
FontPtr;
150 class FontHandle_Win32 :
public FontHandle
156 friend class FontEngine_Win32;
157 FontEngine_Win32 *engine =
nullptr;
static std::shared_ptr< Font > create(const FontFamilyPtr &font_family, float height)
virtual void set_line_height(float height)=0
Sets the distance between each line.
FontWeight
Definition: font_description.h:39
size_t clip_from_left(const CanvasPtr &canvas, const std::string &text, float width)
virtual int character_index(const CanvasPtr &canvas, const std::string &text, const Pointf &point)=0
Get the character index at a specified point.
static Colorf white
Definition: color.h:1207
FontFamily class.
Definition: font_family.h:43
2D (x,y) point structure - Float
Definition: point.h:68
std::shared_ptr< FontFamily > FontFamilyPtr
Definition: font.h:41
Floating point color description class (for float).
Definition: color.h:630
Font class.
Definition: font.h:56
virtual void set_weight(FontWeight value=FontWeight::normal)=0
Sets the font weight.
virtual const FontMetrics & font_metrics(const CanvasPtr &canvas)=0
Retrieves font metrics description for the selected font.
Font metrics class.
Definition: font_metrics.h:41
virtual GlyphMetrics metrics(const CanvasPtr &canvas, unsigned int glyph)=0
Gets the glyph metrics.
Glyph metrics class.
Definition: glyph_metrics.h:37
2D Graphics Canvas
Definition: canvas.h:52
virtual void set_height(float value)=0
Sets the font height.
2D (width,height) size structure - Float
Definition: size.h:180
size_t clip_from_right(const CanvasPtr &canvas, const std::string &text, float width)
std::shared_ptr< Font > FontPtr
Definition: path.h:39
virtual void set_scalable(float height_threshold=64.0f)=0
Sets the threshold to determine if the font can be drawn scaled.
virtual ~FontHandle()
Definition: font.h:50
FontStyle
Definition: font_description.h:52
virtual void draw_text(const CanvasPtr &canvas, const Pointf &position, const std::string &text, const Colorf &color=Colorf::white)=0
Print text.
std::string clipped_text(const CanvasPtr &canvas, const Sizef &box_size, const std::string &text, const std::string &ellipsis_text="...")
Retrieves clipped version of the text that will fit into a box.
virtual void set_style(FontStyle setting=FontStyle::normal)=0
Sets the font style setting.
std::shared_ptr< Canvas > CanvasPtr
Definition: canvas.h:126
Font description class.
Definition: font_description.h:62
virtual std::vector< Rectf > character_indices(const CanvasPtr &canvas, const std::string &text)=0
Get the rectangles of each glyph in a string of text.
Definition: Application/application.h:35
void draw_text(const CanvasPtr &canvas, float xpos, float ypos, const std::string &text, const Colorf &color=Colorf::white)
Definition: font.h:98
virtual FontHandle * handle(const CanvasPtr &canvas)=0
Get the font handle interface.
virtual GlyphMetrics measure_text(const CanvasPtr &canvas, const std::string &string)=0
Measure text size.