Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/editors/include/UI_interface.h6
-rw-r--r--source/blender/editors/interface/interface_templates.c18
-rw-r--r--source/blender/makesrna/intern/rna_ui_api.c1
3 files changed, 18 insertions, 7 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index b3c95aa0712..42386c7ecac 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -956,7 +956,11 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C);
void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C);
void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C);
void uiTemplateKeymapItemProperties(uiLayout *layout, struct PointerRNA *ptr);
-void uiTemplateOverrideProperty(uiLayout *layout, struct PointerRNA *collection_props_ptr, struct PointerRNA *scene_props_ptr, const char *name, const char *custom_template);
+void uiTemplateOverrideProperty(
+ uiLayout *layout, struct PointerRNA *collection_props_ptr, struct PointerRNA *scene_props_ptr,
+ const char *propname,
+ const char *name, const char *text_ctxt, int translate, int icon,
+ const char *custom_template);
void uiTemplateComponentMenu(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name);
void uiTemplateNodeSocket(uiLayout *layout, struct bContext *C, float *color);
void uiTemplateCacheFile(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname);
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index 083e29ac28b..e21f09fad61 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -4000,7 +4000,10 @@ void uiTemplateKeymapItemProperties(uiLayout *layout, PointerRNA *ptr)
/********************************* Overrides *************************************/
-void uiTemplateOverrideProperty(uiLayout *layout, struct PointerRNA *collection_props_ptr, struct PointerRNA *scene_props_ptr, const char *name, const char *custom_template)
+void uiTemplateOverrideProperty(
+ uiLayout *layout, PointerRNA *collection_props_ptr, PointerRNA *scene_props_ptr, const char *propname,
+ const char *name, const char *text_ctxt, int translate, int icon,
+ const char *custom_template)
{
bool is_set = false;
uiLayout *row, *col;
@@ -4010,27 +4013,30 @@ void uiTemplateOverrideProperty(uiLayout *layout, struct PointerRNA *collection_
IDProperty *collection_props = collection_props_ptr->data;
- if (IDP_GetPropertyFromGroup(collection_props, name)) {
- prop = RNA_struct_find_property(collection_props_ptr, name);
+ if (IDP_GetPropertyFromGroup(collection_props, propname)) {
+ prop = RNA_struct_find_property(collection_props_ptr, propname);
ptr = collection_props_ptr;
is_set = RNA_property_is_set(ptr, prop);
}
else {
/* property doesn't exist yet */
- prop = RNA_struct_find_property(scene_props_ptr, name);
+ prop = RNA_struct_find_property(scene_props_ptr, propname);
ptr = scene_props_ptr;
}
+ /* Get translated name (label). */
+ name = RNA_translate_ui_text(name, text_ctxt, NULL, prop, translate);
+
row = uiLayoutRow(layout, false);
col = uiLayoutColumn(row, false);
uiLayoutSetEnabled(col, is_set);
if (custom_template && STREQ(custom_template, "icon_view")) {
- uiTemplateIconView(col, ptr, name, false, 5.0f);
+ uiTemplateIconView(col, ptr, propname, false, 5.0f);
}
else {
- uiItemFullR(col, ptr, prop, -1, 0, 0, NULL, ICON_NONE);
+ uiItemFullR(col, ptr, prop, -1, 0, 0, name, icon);
}
col = uiLayoutColumn(row, false);
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index 76ff2915276..fd7346379a1 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -918,6 +918,7 @@ void RNA_api_ui_layout(StructRNA *srna)
RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
parm = RNA_def_string(func, "property", NULL, 0, "", "Identifier of property in collection_properties");
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
+ api_ui_item_common(func);
parm = RNA_def_string(func, "custom_template", NULL, 0, "", "Optional template to use for property");
func = RNA_def_function(srna, "template_component_menu", "uiTemplateComponentMenu");