Blender V4.3
BKE_vfont.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4#pragma once
5
6#include "BLI_sys_types.h"
7
12struct CharInfo;
13struct Curve;
14struct Main;
15struct Object;
16struct VFont;
17
18struct CharTrans {
19 float xof, yof;
20 float rot;
21 short linenr, charnr;
22 char dobreak;
23};
24
26 float x, y, w, h;
27 float rot;
28};
29
33struct EditFont {
35 char32_t *textbuf;
38
40 float textcurs[4][2];
43
44 /* Positional vars relative to the `textbuf` (not utf8 bytes)
45 * a copy of these is kept in Curve, but use these in edit-mode. */
46
48 int len;
50 int pos;
53
60
66};
67
78
79/* BKE_vfont_to_curve will move the cursor in these cases */
80#define FO_CURS_IS_MOTION(mode) (ELEM(mode, FO_CURSUP, FO_CURSDOWN, FO_PAGEUP, FO_PAGEDOWN))
81
82bool BKE_vfont_is_builtin(const VFont *vfont);
83void BKE_vfont_builtin_register(const void *mem, int size);
84
85void BKE_vfont_free_data(VFont *vfont);
91VFont *BKE_vfont_load(Main *bmain, const char *filepath);
92VFont *BKE_vfont_load_exists_ex(Main *bmain, const char *filepath, bool *r_exists);
93VFont *BKE_vfont_load_exists(Main *bmain, const char *filepath);
94
96 Curve *cu,
97 eEditFontMode mode,
98 ListBase *r_nubase,
99 const char32_t **r_text,
100 int *r_text_len,
101 bool *r_text_free,
102 CharTrans **r_chartransdata);
103bool BKE_vfont_to_curve_nubase(Object *ob, eEditFontMode mode, ListBase *r_nubase);
104
105int BKE_vfont_cursor_to_text_index(Object *ob, const float cursor_location[2]);
106
112 ListBase *nubase,
113 unsigned int character,
114 const CharInfo *info,
115 float ofsx,
116 float ofsy,
117 float rot,
118 int charidx,
119 float fsize);
120
121int BKE_vfont_select_get(Object *ob, int *r_start, int *r_end);
123
125void BKE_vfont_clipboard_set(const char32_t *text_buf, const CharInfo *info_buf, size_t len);
126void BKE_vfont_clipboard_get(char32_t **r_text_buf,
127 CharInfo **r_info_buf,
128 size_t *r_len_utf8,
129 size_t *r_len_utf32);
eEditFontMode
Definition BKE_vfont.hh:68
@ FO_PAGEUP
Definition BKE_vfont.hh:74
@ FO_EDIT
Definition BKE_vfont.hh:69
@ FO_CURSUP
Definition BKE_vfont.hh:71
@ FO_SELCHANGE
Definition BKE_vfont.hh:76
@ FO_CURS
Definition BKE_vfont.hh:70
@ FO_CURSDOWN
Definition BKE_vfont.hh:72
@ FO_PAGEDOWN
Definition BKE_vfont.hh:75
@ FO_DUPLI
Definition BKE_vfont.hh:73
void BKE_vfont_select_clamp(Object *ob)
Definition vfont.cc:670
void BKE_vfont_clipboard_set(const char32_t *text_buf, const CharInfo *info_buf, size_t len)
Definition vfont.cc:2071
VFont * BKE_vfont_load(Main *bmain, const char *filepath)
Definition vfont.cc:325
bool BKE_vfont_is_builtin(const VFont *vfont)
Definition vfont.cc:232
bool BKE_vfont_to_curve_nubase(Object *ob, eEditFontMode mode, ListBase *r_nubase)
Definition vfont.cc:2036
int BKE_vfont_select_get(Object *ob, int *r_start, int *r_end)
Definition vfont.cc:630
VFont * BKE_vfont_load_exists_ex(Main *bmain, const char *filepath, bool *r_exists)
Definition vfont.cc:376
VFont * BKE_vfont_load_exists(Main *bmain, const char *filepath)
Definition vfont.cc:403
void BKE_vfont_builtin_register(const void *mem, int size)
Definition vfont.cc:237
void BKE_vfont_clipboard_get(char32_t **r_text_buf, CharInfo **r_info_buf, size_t *r_len_utf8, size_t *r_len_utf32)
Definition vfont.cc:2101
VFont * BKE_vfont_builtin_get()
Definition vfont.cc:422
void BKE_vfont_build_char(Curve *cu, ListBase *nubase, unsigned int character, const CharInfo *info, float ofsx, float ofsy, float rot, int charidx, float fsize)
Definition vfont.cc:507
bool BKE_vfont_to_curve(Object *ob, eEditFontMode mode)
Definition vfont.cc:2044
int BKE_vfont_cursor_to_text_index(Object *ob, const float cursor_location[2])
Definition vfont.cc:2007
bool BKE_vfont_to_curve_ex(Object *ob, Curve *cu, eEditFontMode mode, ListBase *r_nubase, const char32_t **r_text, int *r_text_len, bool *r_text_free, CharTrans **r_chartransdata)
Definition vfont.cc:1983
void BKE_vfont_free_data(VFont *vfont)
Definition vfont.cc:200
void BKE_vfont_clipboard_free()
Definition vfont.cc:2063
int len
#define rot(x, k)
short linenr
Definition BKE_vfont.hh:21
float yof
Definition BKE_vfont.hh:19
short charnr
Definition BKE_vfont.hh:21
float xof
Definition BKE_vfont.hh:19
float rot
Definition BKE_vfont.hh:20
char dobreak
Definition BKE_vfont.hh:22
float textcurs[4][2]
Definition BKE_vfont.hh:40
CharInfo * textbufinfo
Definition BKE_vfont.hh:37
int selend
Definition BKE_vfont.hh:52
EditFontSelBox * selboxes
Definition BKE_vfont.hh:41
int select_char_info_flag
Definition BKE_vfont.hh:59
int selboxes_len
Definition BKE_vfont.hh:42
char32_t * textbuf
Definition BKE_vfont.hh:35
int selstart
Definition BKE_vfont.hh:52
char needs_flush_to_id
Definition BKE_vfont.hh:65