Blender  V3.3
rna_vfont.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #include <stdlib.h>
8 
9 #include "RNA_define.h"
10 
11 #include "rna_internal.h"
12 
13 #include "DNA_vfont_types.h"
14 
15 #include "WM_types.h"
16 
17 #ifdef RNA_RUNTIME
18 
19 # include "BKE_vfont.h"
20 # include "DNA_object_types.h"
21 
22 # include "DEG_depsgraph.h"
23 
24 # include "WM_api.h"
25 
26 /* Matching function in rna_ID.c */
27 static int rna_VectorFont_filepath_editable(PointerRNA *ptr, const char **UNUSED(r_info))
28 {
29  VFont *vfont = (VFont *)ptr->owner_id;
30  if (BKE_vfont_is_builtin(vfont)) {
31  return 0;
32  }
33  return PROP_EDITABLE;
34 }
35 
36 static void rna_VectorFont_reload_update(Main *UNUSED(bmain),
37  Scene *UNUSED(scene),
38  PointerRNA *ptr)
39 {
40  VFont *vf = (VFont *)ptr->owner_id;
42 
43  /* update */
46 }
47 
48 #else
49 
51 {
52  StructRNA *srna;
53  PropertyRNA *prop;
54 
55  srna = RNA_def_struct(brna, "VectorFont", "ID");
56  RNA_def_struct_ui_text(srna, "Vector Font", "Vector font for Text objects");
57  RNA_def_struct_sdna(srna, "VFont");
58  RNA_def_struct_ui_icon(srna, ICON_FILE_FONT);
59 
60  prop = RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
61  RNA_def_property_string_sdna(prop, NULL, "filepath");
62  RNA_def_property_editable_func(prop, "rna_VectorFont_filepath_editable");
63  RNA_def_property_ui_text(prop, "File Path", "");
64  RNA_def_property_update(prop, NC_GEOM | ND_DATA, "rna_VectorFont_reload_update");
65 
66  prop = RNA_def_property(srna, "packed_file", PROP_POINTER, PROP_NONE);
67  RNA_def_property_pointer_sdna(prop, NULL, "packedfile");
68  RNA_def_property_ui_text(prop, "Packed File", "");
69 
70  RNA_api_vfont(srna);
71 }
72 
73 #endif
void BKE_vfont_free_data(struct VFont *vfont)
Definition: vfont.c:188
bool BKE_vfont_is_builtin(const struct VFont *vfont)
Definition: vfont.c:223
#define UNUSED(x)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_TRANSFORM
Definition: DNA_ID.h:771
@ ID_RECALC_GEOMETRY
Definition: DNA_ID.h:791
Object is a sort of wrapper for general info.
@ PROP_STRING
Definition: RNA_types.h:62
@ PROP_POINTER
Definition: RNA_types.h:64
@ PROP_EDITABLE
Definition: RNA_types.h:189
@ PROP_NONE
Definition: RNA_types.h:126
@ PROP_FILEPATH
Definition: RNA_types.h:129
#define NC_GEOM
Definition: WM_types.h:343
#define ND_DATA
Definition: WM_types.h:456
Scene scene
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2740
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
Definition: rna_define.c:1645
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2695
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
Definition: rna_define.c:1237
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
Definition: rna_define.c:1048
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
Definition: rna_define.c:2900
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
Definition: rna_define.c:2855
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
Definition: rna_define.c:1257
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
Definition: rna_define.c:1028
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
Definition: rna_define.c:1245
void RNA_api_vfont(struct StructRNA *srna)
Definition: rna_vfont_api.c:38
void RNA_def_vfont(BlenderRNA *brna)
Definition: rna_vfont.c:50
Definition: BKE_main.h:121
struct ID * owner_id
Definition: RNA_types.h:36
void WM_main_add_notifier(unsigned int type, void *reference)
PointerRNA * ptr
Definition: wm_files.c:3480