Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / BKE_font.h
index 1d52aa6edcc9026adf695b2f31c8b81abd0f2ef7..3f6d67f5ded4ebd50367c86ed5b8b3d4b8a30949 100644 (file)
@@ -38,11 +38,8 @@ extern "C" {
 #include <wchar.h>
 
 struct VFont;
-struct Scene;
 struct Object;
 struct Curve;
-struct objfnt;
-struct TmpFont;
 struct CharInfo;
 struct Main;
 
@@ -53,25 +50,25 @@ struct CharTrans {
        char dobreak;
 };
 
-typedef struct SelBox {
+typedef struct EditFontSelBox {
        float x, y, w, h;
        float rot;
-} SelBox;
+} EditFontSelBox;
 
-typedef struct EditFont {      
-       wchar_t *copybuf;
-       struct CharInfo *copybufinfo;
-       
+typedef struct EditFont {
        wchar_t *textbuf;
        struct CharInfo *textbufinfo;
-       
+
+       /* array of rectangles & rotation */
        float textcurs[4][2];
+       EditFontSelBox *selboxes;
+       int selboxes_len;
 
        /* positional vars relative to the textbuf, textbufinfo (not utf8 bytes)
         * a copy of these is kept in Curve, but use these in editmode */
        int len, pos;
        int selstart, selend;
-       
+
 } EditFont;
 
 
@@ -79,27 +76,35 @@ bool BKE_vfont_is_builtin(struct VFont *vfont);
 void BKE_vfont_builtin_register(void *mem, int size);
 
 void BKE_vfont_free_data(struct VFont *vfont);
-void BKE_vfont_free(struct VFont *sc); 
+void BKE_vfont_free(struct VFont *sc);
+void BKE_vfont_init(struct VFont *vfont);
+void BKE_vfont_copy_data(struct Main *bmain, struct VFont *vfont_dst, const struct VFont *vfont_src, const int flag);
 struct VFont *BKE_vfont_builtin_get(void);
-struct VFont *BKE_vfont_load(struct Main *bmain, const char *name);
+struct VFont *BKE_vfont_load(struct Main *bmain, const char *filepath);
+struct VFont *BKE_vfont_load_exists_ex(struct Main *bmain, const char *filepath, bool *r_exists);
+struct VFont *BKE_vfont_load_exists(struct Main *bmain, const char *filepath);
 
-bool BKE_vfont_to_curve_nubase_ex(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode,
-                                  struct ListBase *r_nubase,
-                                  const wchar_t **r_text, int *r_text_len, bool *r_text_free,
-                                     struct CharTrans **r_chartransdata);
-bool BKE_vfont_to_curve_nubase(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode,
-                                  struct ListBase *r_nubase);
+void BKE_vfont_make_local(struct Main *bmain, struct VFont *vfont, const bool lib_local);
 
-bool BKE_vfont_to_curve_ex(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode,
+bool BKE_vfont_to_curve_ex(struct Object *ob, struct Curve *cu, int mode,
+                           struct ListBase *r_nubase,
                            const wchar_t **r_text, int *r_text_len, bool *r_text_free,
                            struct CharTrans **r_chartransdata);
-bool BKE_vfont_to_curve(struct Main *bmain, struct Scene *scene, struct Object *ob, int mode);
+bool BKE_vfont_to_curve_nubase(struct Object *ob, int mode,
+                               struct ListBase *r_nubase);
+bool BKE_vfont_to_curve(struct Object *ob, int mode);
 
 int BKE_vfont_select_get(struct Object *ob, int *r_start, int *r_end);
+void BKE_vfont_select_clamp(struct Object *ob);
+
+void BKE_vfont_clipboard_free(void);
+void BKE_vfont_clipboard_set(const wchar_t *text_buf, const struct CharInfo *info_buf, const size_t len);
+void BKE_vfont_clipboard_get(
+        wchar_t **r_text_buf, struct CharInfo **r_info_buf,
+        size_t *r_len_utf8, size_t *r_len_wchar);
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif
-