Merge branch 'master' into blender2.8
[blender.git] / source / blender / makesrna / intern / rna_material.c
index 75064ce18554c7b64fe21b5a490130e671cdf845..ee0c9e392c40ec001ee5778243e47a930082b981 100644 (file)
@@ -281,6 +281,33 @@ void rna_mtex_texture_slots_clear(ID *self_id, struct bContext *C, ReportList *r
        WM_event_add_notifier(C, NC_TEXTURE, CTX_data_scene(C));
 }
 
+static void rna_TexPaintSlot_uv_layer_get(PointerRNA *ptr, char *value)
+{
+       TexPaintSlot *data = (TexPaintSlot *)(ptr->data);
+
+       if (data->uvname != NULL) {
+               BLI_strncpy_utf8(value, data->uvname, 64);
+       }
+       else {
+               value[0] = '\0';
+       }
+}
+
+static int rna_TexPaintSlot_uv_layer_length(PointerRNA *ptr)
+{
+       TexPaintSlot *data = (TexPaintSlot *)(ptr->data);
+       return data->uvname == NULL ? 0 : strlen(data->uvname);
+}
+
+static void rna_TexPaintSlot_uv_layer_set(PointerRNA *ptr, const char *value)
+{
+       TexPaintSlot *data = (TexPaintSlot *)(ptr->data);
+
+       if (data->uvname != NULL) {
+               BLI_strncpy_utf8(data->uvname, value, 64);
+       }
+}
+
 static bool rna_is_grease_pencil_get(PointerRNA *ptr)
 {
        Material *ma = (Material *)ptr->data;
@@ -832,6 +859,8 @@ static void rna_def_tex_slot(BlenderRNA *brna)
        prop = RNA_def_property(srna, "uv_layer", PROP_STRING, PROP_NONE);
        RNA_def_property_string_maxlength(prop, 64); /* else it uses the pointer size! */
        RNA_def_property_string_sdna(prop, NULL, "uvname");
+       RNA_def_property_string_funcs(prop, "rna_TexPaintSlot_uv_layer_get", "rna_TexPaintSlot_uv_layer_length",
+                                     "rna_TexPaintSlot_uv_layer_set");
        RNA_def_property_ui_text(prop, "UV Map", "Name of UV map");
        RNA_def_property_update(prop, NC_GEOM | ND_DATA, "rna_Material_update");