1 /**
2  * @file lv_font_manager.h
3  *
4  */
5 #ifndef LV_FONT_MANAGER_H
6 #define LV_FONT_MANAGER_H
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 /*********************
13  *      INCLUDES
14  *********************/
15 
16 #include "../../misc/lv_types.h"
17 
18 #if LV_USE_FONT_MANAGER
19 
20 #if !LV_USE_FREETYPE
21 #error "LV_USE_FONT_MANAGER requires LV_USE_FREETYPE"
22 #endif
23 
24 /*********************
25  *      DEFINES
26  *********************/
27 
28 /**********************
29  *      TYPEDEFS
30  **********************/
31 
32 typedef struct _lv_font_manager_t lv_font_manager_t;
33 
34 /**********************
35  * GLOBAL PROTOTYPES
36  **********************/
37 
38 /**
39  * Create main font manager.
40  * @param recycle_cache_size number of fonts that were recently deleted from the cache.
41  * @return pointer to main font manager.
42  */
43 lv_font_manager_t * lv_font_manager_create(uint32_t recycle_cache_size);
44 
45 /**
46  * Delete main font manager.
47  * @param manager pointer to main font manager.
48  * @return return true if the deletion was successful.
49  */
50 bool lv_font_manager_delete(lv_font_manager_t * manager);
51 
52 /**
53  * Add the font file path.
54  * @param manager pointer to main font manager.
55  * @param name font name.
56  * @param path font file path.
57  */
58 void lv_font_manager_add_path(lv_font_manager_t * manager, const char * name, const char * path);
59 
60 /**
61  * Add the font file path with static memory.
62  * @param manager pointer to main font manager.
63  * @param name font name.
64  * @param path font file path.
65  */
66 void lv_font_manager_add_path_static(lv_font_manager_t * manager, const char * name, const char * path);
67 
68 /**
69  * Remove the font file path.
70  * @param manager pointer to main font manager.
71  * @param name font name.
72  * @return return true if the remove was successful.
73  */
74 bool lv_font_manager_remove_path(lv_font_manager_t * manager, const char * name);
75 
76 /**
77  * Create font.
78  * @param manager pointer to main font manager.
79  * @param font_family font family name.
80  * @param render_mode font render mode, see lv_freetype_font_render_mode_t.
81  * @param size font size.
82  * @param style font style, see lv_freetype_font_style_t.
83  * @return point to the created font
84  */
85 lv_font_t * lv_font_manager_create_font(lv_font_manager_t * manager, const char * font_family, uint16_t render_mode,
86                                         uint32_t size, uint16_t style);
87 
88 /**
89  * Delete font.
90  * @param manager pointer to main font manager.
91  * @param font point to the font.
92  * @return return true if the deletion was successful.
93  */
94 void lv_font_manager_delete_font(lv_font_manager_t * manager, lv_font_t * font);
95 
96 /**********************
97  *      MACROS
98  **********************/
99 
100 #endif /* LV_USE_FONT_MANAGER */
101 
102 #ifdef __cplusplus
103 } /* extern "C" */
104 #endif
105 
106 #endif /* FONT_MANAGER_MANAGER_H */
107