Blender V4.5
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
11
12struct CharInfo;
13struct Curve;
14struct ListBase;
15struct Main;
16struct Object;
17struct VFont;
18
19struct CharTrans {
20 float xof, yof;
21 float rot;
22 short linenr, charnr;
23
28};
29
31 float x, y, w, h;
32 float rot;
33};
34
38struct EditFont {
40 char32_t *textbuf;
43
46
48 float textcurs[4][2];
51
52 /* Positional vars relative to the `textbuf` (not UTF8 bytes)
53 * a copy of these is kept in Curve, but use these in edit-mode. */
54
56 int len;
58 int pos;
61
68
74};
75
88
90#define FO_CURS_IS_MOTION(mode) \
91 (ELEM(mode, FO_CURSUP, FO_CURSDOWN, FO_PAGEUP, FO_PAGEDOWN, FO_LINE_BEGIN, FO_LINE_END))
92
93/* -------------------------------------------------------------------- */
98
99bool BKE_vfont_is_builtin(const VFont *vfont);
100void BKE_vfont_builtin_register(const void *mem, int size);
106
107void BKE_vfont_data_ensure(VFont *vfont);
108void BKE_vfont_data_free(VFont *vfont);
109
110VFont *BKE_vfont_load(Main *bmain, const char *filepath);
111VFont *BKE_vfont_load_exists_ex(Main *bmain, const char *filepath, bool *r_exists);
112VFont *BKE_vfont_load_exists(Main *bmain, const char *filepath);
113
114int BKE_vfont_select_get(const Curve *cu, int *r_start, int *r_end);
116
118void BKE_vfont_clipboard_set(const char32_t *text_buf, const CharInfo *info_buf, size_t len);
119void BKE_vfont_clipboard_get(char32_t **r_text_buf,
120 CharInfo **r_info_buf,
121 size_t *r_len_utf8,
122 size_t *r_len_utf32);
123
125
126/* -------------------------------------------------------------------- */
131
132int BKE_vfont_cursor_to_text_index(Object *ob, const float cursor_location[2]);
133
139 ListBase *nubase,
140 unsigned int charcode,
141 const CharInfo *info,
142 bool is_smallcaps,
143 float ofsx,
144 float ofsy,
145 float rot,
146 int charidx,
147 float fsize);
148
150 Curve *cu,
151 eEditFontMode mode,
152 ListBase *r_nubase,
153 const char32_t **r_text,
154 int *r_text_len,
155 bool *r_text_free,
156 CharTrans **r_chartransdata,
157 float *r_font_size_eval);
158bool BKE_vfont_to_curve_nubase(Object *ob, eEditFontMode mode, ListBase *r_nubase);
159
void BKE_vfont_data_ensure(VFont *vfont)
Definition vfont.cc:201
int BKE_vfont_select_get(const Curve *cu, int *r_start, int *r_end)
Definition vfont.cc:404
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, float *r_font_size_eval)
eEditFontMode
Definition BKE_vfont.hh:76
@ FO_PAGEUP
Definition BKE_vfont.hh:82
@ FO_EDIT
Definition BKE_vfont.hh:77
@ FO_CURSUP
Definition BKE_vfont.hh:79
@ FO_LINE_END
Definition BKE_vfont.hh:85
@ FO_LINE_BEGIN
Definition BKE_vfont.hh:84
@ FO_SELCHANGE
Definition BKE_vfont.hh:86
@ FO_CURS
Definition BKE_vfont.hh:78
@ FO_CURSDOWN
Definition BKE_vfont.hh:80
@ FO_PAGEDOWN
Definition BKE_vfont.hh:83
@ FO_DUPLI
Definition BKE_vfont.hh:81
void BKE_vfont_data_free(VFont *vfont)
Definition vfont.cc:241
void BKE_vfont_clipboard_set(const char32_t *text_buf, const CharInfo *info_buf, size_t len)
Definition vfont.cc:475
VFont * BKE_vfont_load(Main *bmain, const char *filepath)
Definition vfont.cc:299
void BKE_vfont_char_build(Curve *cu, ListBase *nubase, unsigned int charcode, const CharInfo *info, bool is_smallcaps, float ofsx, float ofsy, float rot, int charidx, float fsize)
bool BKE_vfont_is_builtin(const VFont *vfont)
Definition vfont.cc:273
bool BKE_vfont_to_curve_nubase(Object *ob, eEditFontMode mode, ListBase *r_nubase)
void BKE_vfont_select_clamp(Curve *cu)
Definition vfont.cc:443
VFont * BKE_vfont_load_exists_ex(Main *bmain, const char *filepath, bool *r_exists)
Definition vfont.cc:350
VFont * BKE_vfont_load_exists(Main *bmain, const char *filepath)
Definition vfont.cc:377
void BKE_vfont_builtin_register(const void *mem, int size)
Definition vfont.cc:278
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:505
VFont * BKE_vfont_builtin_ensure()
Definition vfont.cc:382
bool BKE_vfont_to_curve(Object *ob, eEditFontMode mode)
int BKE_vfont_cursor_to_text_index(Object *ob, const float cursor_location[2])
void BKE_vfont_clipboard_free()
Definition vfont.cc:467
unsigned int uint
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
#define rot(x, k)
short linenr
Definition BKE_vfont.hh:22
float yof
Definition BKE_vfont.hh:20
uint is_smallcaps
Definition BKE_vfont.hh:27
short charnr
Definition BKE_vfont.hh:22
uint dobreak
Definition BKE_vfont.hh:24
float xof
Definition BKE_vfont.hh:20
uint is_wrap
Definition BKE_vfont.hh:26
float rot
Definition BKE_vfont.hh:21
uint is_overflow
Definition BKE_vfont.hh:25
float textcurs[4][2]
Definition BKE_vfont.hh:48
float font_size_eval
Definition BKE_vfont.hh:45
CharInfo * textbufinfo
Definition BKE_vfont.hh:42
int selend
Definition BKE_vfont.hh:60
EditFontSelBox * selboxes
Definition BKE_vfont.hh:49
int select_char_info_flag
Definition BKE_vfont.hh:67
int selboxes_len
Definition BKE_vfont.hh:50
char32_t * textbuf
Definition BKE_vfont.hh:40
int selstart
Definition BKE_vfont.hh:60
char needs_flush_to_id
Definition BKE_vfont.hh:73
uint len