Merge branch 'master' into blender2.8
[blender.git] / source / blender / makesrna / intern / rna_ui.c
index a61846fa028c75c9461236fff0469ae019d82aed..08038b0b1ffd71feb3e0dd4010fb178dcf5708ff 100644 (file)
@@ -29,7 +29,7 @@
 
 #include "DNA_screen_types.h"
 
-#include "BLF_translation.h"
+#include "BLT_translation.h"
 
 #include "BKE_idprop.h"
 
@@ -43,7 +43,7 @@
 #include "WM_types.h"
 
 /* see WM_types.h */
-EnumPropertyItem operator_context_items[] = {
+EnumPropertyItem rna_enum_operator_context_items[] = {
        {WM_OP_INVOKE_DEFAULT, "INVOKE_DEFAULT", 0, "Invoke Default", ""},
        {WM_OP_INVOKE_REGION_WIN, "INVOKE_REGION_WIN", 0, "Invoke Region Window", ""},
        {WM_OP_INVOKE_REGION_CHANNELS, "INVOKE_REGION_CHANNELS", 0, "Invoke Region Channels", ""},
@@ -59,7 +59,7 @@ EnumPropertyItem operator_context_items[] = {
        {0, NULL, 0, NULL, NULL}
 };
 
-EnumPropertyItem uilist_layout_type_items[] = {
+EnumPropertyItem rna_enum_uilist_layout_type_items[] = {
        {UILST_LAYOUT_DEFAULT, "DEFAULT", 0, "Default Layout", "Use the default, multi-rows layout"},
        {UILST_LAYOUT_COMPACT, "COMPACT", 0, "Compact Layout", "Use the compact, single-row layout"},
        {UILST_LAYOUT_GRID, "GRID", 0, "Grid Layout", "Use the grid-based layout"},
@@ -177,16 +177,17 @@ static void rna_Panel_unregister(Main *UNUSED(bmain), StructRNA *type)
                return;
        
        RNA_struct_free_extension(type, &pt->ext);
+       RNA_struct_free(&BLENDER_RNA, type);
 
        BLI_freelinkN(&art->paneltypes, pt);
-       RNA_struct_free(&BLENDER_RNA, type);
 
        /* update while blender is running */
        WM_main_add_notifier(NC_WINDOW, NULL);
 }
 
-static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *data, const char *identifier,
-                                     StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
+static StructRNA *rna_Panel_register(
+        Main *bmain, ReportList *reports, void *data, const char *identifier,
+        StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
 {
        ARegionType *art;
        PanelType *pt, dummypt = {NULL};
@@ -199,7 +200,7 @@ static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *dat
        RNA_pointer_create(NULL, &RNA_Panel, &dummypanel, &dummyptr);
 
        /* We have to set default context! Else we get a void string... */
-       strcpy(dummypt.translation_context, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       strcpy(dummypt.translation_context, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
 
        /* validate the python class */
        if (validate(&dummyptr, data, have_function) != 0)
@@ -221,7 +222,7 @@ static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *dat
 
        /* check if we have registered this panel type before, and remove it */
        for (pt = art->paneltypes.first; pt; pt = pt->next) {
-               if (strcmp(pt->idname, dummypt.idname) == 0) {
+               if (STREQ(pt->idname, dummypt.idname)) {
                        if (pt->ext.srna)
                                rna_Panel_unregister(bmain, pt->ext.srna);
                        else
@@ -229,6 +230,12 @@ static StructRNA *rna_Panel_register(Main *bmain, ReportList *reports, void *dat
                        break;
                }
        }
+       if (!RNA_struct_available_or_report(reports, dummypt.idname)) {
+               return NULL;
+       }
+       if (!RNA_struct_bl_idname_ok_or_report(reports, dummypt.idname, "_PT_")) {
+               return NULL;
+       }
        
        /* create a new panel type */
        pt = MEM_callocN(sizeof(PanelType), "python buttons panel");
@@ -455,17 +462,17 @@ static void rna_UIList_unregister(Main *UNUSED(bmain), StructRNA *type)
                return;
 
        RNA_struct_free_extension(type, &ult->ext);
+       RNA_struct_free(&BLENDER_RNA, type);
 
        WM_uilisttype_freelink(ult);
 
-       RNA_struct_free(&BLENDER_RNA, type);
-
        /* update while blender is running */
        WM_main_add_notifier(NC_WINDOW, NULL);
 }
 
-static StructRNA *rna_UIList_register(Main *bmain, ReportList *reports, void *data, const char *identifier,
-                                      StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
+static StructRNA *rna_UIList_register(
+        Main *bmain, ReportList *reports, void *data, const char *identifier,
+        StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
 {
        uiListType *ult, dummyult = {NULL};
        uiList dummyuilist = {NULL};
@@ -489,8 +496,15 @@ static StructRNA *rna_UIList_register(Main *bmain, ReportList *reports, void *da
 
        /* check if we have registered this uilist type before, and remove it */
        ult = WM_uilisttype_find(dummyult.idname, true);
-       if (ult && ult->ext.srna)
+       if (ult && ult->ext.srna) {
                rna_UIList_unregister(bmain, ult->ext.srna);
+       }
+       if (!RNA_struct_available_or_report(reports, dummyult.idname)) {
+               return NULL;
+       }
+       if (!RNA_struct_bl_idname_ok_or_report(reports, dummyult.idname, "_UL_")) {
+               return NULL;
+       }
 
        /* create a new menu type */
        ult = MEM_callocN(sizeof(uiListType) + over_alloc, "python uilist");
@@ -551,16 +565,17 @@ static void rna_Header_unregister(Main *UNUSED(bmain), StructRNA *type)
                return;
        
        RNA_struct_free_extension(type, &ht->ext);
+       RNA_struct_free(&BLENDER_RNA, type);
 
        BLI_freelinkN(&art->headertypes, ht);
-       RNA_struct_free(&BLENDER_RNA, type);
 
        /* update while blender is running */
        WM_main_add_notifier(NC_WINDOW, NULL);
 }
 
-static StructRNA *rna_Header_register(Main *bmain, ReportList *reports, void *data, const char *identifier,
-                                      StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
+static StructRNA *rna_Header_register(
+        Main *bmain, ReportList *reports, void *data, const char *identifier,
+        StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
 {
        ARegionType *art;
        HeaderType *ht, dummyht = {NULL};
@@ -587,12 +602,18 @@ static StructRNA *rna_Header_register(Main *bmain, ReportList *reports, void *da
 
        /* check if we have registered this header type before, and remove it */
        for (ht = art->headertypes.first; ht; ht = ht->next) {
-               if (strcmp(ht->idname, dummyht.idname) == 0) {
+               if (STREQ(ht->idname, dummyht.idname)) {
                        if (ht->ext.srna)
                                rna_Header_unregister(bmain, ht->ext.srna);
                        break;
                }
        }
+       if (!RNA_struct_available_or_report(reports, dummyht.idname)) {
+               return NULL;
+       }
+       if (!RNA_struct_bl_idname_ok_or_report(reports, dummyht.idname, "_HT_")) {
+               return NULL;
+       }
        
        /* create a new header type */
        ht = MEM_callocN(sizeof(HeaderType), "python buttons header");
@@ -673,17 +694,17 @@ static void rna_Menu_unregister(Main *UNUSED(bmain), StructRNA *type)
                return;
        
        RNA_struct_free_extension(type, &mt->ext);
+       RNA_struct_free(&BLENDER_RNA, type);
 
        WM_menutype_freelink(mt);
 
-       RNA_struct_free(&BLENDER_RNA, type);
-
        /* update while blender is running */
        WM_main_add_notifier(NC_WINDOW, NULL);
 }
 
-static StructRNA *rna_Menu_register(Main *bmain, ReportList *reports, void *data, const char *identifier,
-                                    StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
+static StructRNA *rna_Menu_register(
+        Main *bmain, ReportList *reports, void *data, const char *identifier,
+        StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
 {
        MenuType *mt, dummymt = {NULL};
        Menu dummymenu = {NULL};
@@ -700,7 +721,7 @@ static StructRNA *rna_Menu_register(Main *bmain, ReportList *reports, void *data
        RNA_pointer_create(NULL, &RNA_Menu, &dummymenu, &dummymtr);
 
        /* We have to set default context! Else we get a void string... */
-       strcpy(dummymt.translation_context, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       strcpy(dummymt.translation_context, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
 
        /* validate the python class */
        if (validate(&dummymtr, data, have_function) != 0)
@@ -714,8 +735,15 @@ static StructRNA *rna_Menu_register(Main *bmain, ReportList *reports, void *data
 
        /* check if we have registered this menu type before, and remove it */
        mt = WM_menutype_find(dummymt.idname, true);
-       if (mt && mt->ext.srna)
+       if (mt && mt->ext.srna) {
                rna_Menu_unregister(bmain, mt->ext.srna);
+       }
+       if (!RNA_struct_available_or_report(reports, dummymt.idname)) {
+               return NULL;
+       }
+       if (!RNA_struct_bl_idname_ok_or_report(reports, dummymt.idname, "_MT_")) {
+               return NULL;
+       }
        
        /* create a new menu type */
        if (_menu_descr[0]) {
@@ -886,7 +914,7 @@ static void rna_def_ui_layout(BlenderRNA *brna)
        RNA_def_property_boolean_funcs(prop, "rna_UILayout_active_get", "rna_UILayout_active_set");
        
        prop = RNA_def_property(srna, "operator_context", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, operator_context_items);
+       RNA_def_property_enum_items(prop, rna_enum_operator_context_items);
        RNA_def_property_enum_funcs(prop, "rna_UILayout_op_context_get", "rna_UILayout_op_context_set", NULL);
        
        prop = RNA_def_property(srna, "enabled", PROP_BOOLEAN, PROP_NONE);
@@ -936,7 +964,8 @@ static void rna_def_panel(BlenderRNA *brna)
        RNA_def_struct_sdna(srna, "Panel");
        RNA_def_struct_refine_func(srna, "rna_Panel_refine");
        RNA_def_struct_register_funcs(srna, "rna_Panel_register", "rna_Panel_unregister", NULL);
-       RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_struct_translation_context(srna, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_struct_flag(srna, STRUCT_PUBLIC_NAMESPACE_INHERIT);
 
        /* poll */
        func = RNA_def_function(srna, "poll", NULL);
@@ -944,20 +973,20 @@ static void rna_def_panel(BlenderRNA *brna)
        RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_REGISTER_OPTIONAL);
        RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", ""));
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 
        /* draw */
        func = RNA_def_function(srna, "draw", NULL);
        RNA_def_function_ui_description(func, "Draw UI elements into the panel UI layout");
        RNA_def_function_flag(func, FUNC_REGISTER);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 
        func = RNA_def_function(srna, "draw_header", NULL);
        RNA_def_function_ui_description(func, "Draw UI elements into the panel's header UI layout");
        RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 
        prop = RNA_def_property(srna, "layout", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "UILayout");
@@ -986,7 +1015,7 @@ static void rna_def_panel(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "bl_translation_context", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "type->translation_context");
-       RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_property_string_default(prop, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
        RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
        RNA_define_verify_sdna(true);
 
@@ -996,13 +1025,13 @@ static void rna_def_panel(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "bl_space_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "type->space_type");
-       RNA_def_property_enum_items(prop, space_type_items);
+       RNA_def_property_enum_items(prop, rna_enum_space_type_items);
        RNA_def_property_flag(prop, PROP_REGISTER);
        RNA_def_property_ui_text(prop, "Space type", "The space where the panel is going to be used in");
        
        prop = RNA_def_property(srna, "bl_region_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "type->region_type");
-       RNA_def_property_enum_items(prop, region_type_items);
+       RNA_def_property_enum_items(prop, rna_enum_region_type_items);
        RNA_def_property_flag(prop, PROP_REGISTER);
        RNA_def_property_ui_text(prop, "Region Type", "The region where the panel is going to be used in");
 
@@ -1039,6 +1068,7 @@ static void rna_def_uilist(BlenderRNA *brna)
        RNA_def_struct_refine_func(srna, "rna_UIList_refine");
        RNA_def_struct_register_funcs(srna, "rna_UIList_register", "rna_UIList_unregister", NULL);
        RNA_def_struct_idprops_func(srna, "rna_UIList_idprops");
+       RNA_def_struct_flag(srna, STRUCT_NO_DATABLOCK_IDPROPERTIES | STRUCT_PUBLIC_NAMESPACE_INHERIT);
 
        /* Registration */
        prop = RNA_def_property(srna, "bl_idname", PROP_STRING, PROP_NONE);
@@ -1052,7 +1082,7 @@ static void rna_def_uilist(BlenderRNA *brna)
 
        /* Data */
        prop = RNA_def_property(srna, "layout_type", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, uilist_layout_type_items);
+       RNA_def_property_enum_items(prop, rna_enum_uilist_layout_type_items);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 
        /* Filter options */
@@ -1084,35 +1114,35 @@ static void rna_def_uilist(BlenderRNA *brna)
                                              "function, you may want to check given 'item' is of the right type...)");
        RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        parm = RNA_def_pointer(func, "layout", "UILayout", "", "Layout to draw the item");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
        parm = RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take Collection property");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_RNAPTR);
        parm = RNA_def_pointer(func, "item", "AnyType", "", "Item of the collection property");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_RNAPTR);
        parm = RNA_def_int(func, "icon", 0, 0, INT_MAX, "", "Icon of the item in the collection", 0, INT_MAX);
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        parm = RNA_def_pointer(func, "active_data", "AnyType", "",
                               "Data from which to take property for the active element");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED | PARM_RNAPTR);
        parm = RNA_def_string(func, "active_property", NULL, 0, "",
                              "Identifier of property in active_data, for the active element");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        RNA_def_int(func, "index", 0, 0, INT_MAX, "", "Index of the item in the collection", 0, INT_MAX);
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_PYFUNC_OPTIONAL);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_PYFUNC_OPTIONAL);
        prop = RNA_def_property(func, "flt_flag", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_ui_text(prop, "", "The filter-flag result for this item");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_PYFUNC_OPTIONAL);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_PYFUNC_OPTIONAL);
 
        /* draw_filter */
        func = RNA_def_function(srna, "draw_filter", NULL);
        RNA_def_function_ui_description(func, "Draw filtering options");
        RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        parm = RNA_def_pointer(func, "layout", "UILayout", "", "Layout to draw the item");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL);
+       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
 
        /* filter */
        func = RNA_def_function(srna, "filter_items", NULL);
@@ -1120,19 +1150,19 @@ static void rna_def_uilist(BlenderRNA *brna)
                                              "filter_flags, and reorder results in filter_neworder arrays)");
        RNA_def_function_flag(func, FUNC_REGISTER_OPTIONAL);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        parm = RNA_def_pointer(func, "data", "AnyType", "", "Data from which to take Collection property");
-       RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED | PARM_RNAPTR);
        parm = RNA_def_string(func, "property", NULL, 0, "", "Identifier of property in data, for the collection");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
        prop = RNA_def_property(func, "filter_flags", PROP_INT, PROP_UNSIGNED);
-       RNA_def_property_flag(prop, PROP_REQUIRED | PROP_DYNAMIC);
+       RNA_def_property_flag(prop, PARM_REQUIRED | PROP_DYNAMIC);
        RNA_def_property_array(prop, 1);  /* XXX Dummy value, default 0 does not work */
        RNA_def_property_ui_text(prop, "", "An array of filter flags, one for each item in the collection (NOTE: "
                                           "FILTER_ITEM bit is reserved, it defines whether the item is shown or not)");
        RNA_def_function_output(func, prop);
        prop = RNA_def_property(func, "filter_neworder", PROP_INT, PROP_UNSIGNED);
-       RNA_def_property_flag(prop, PROP_REQUIRED | PROP_DYNAMIC);
+       RNA_def_property_flag(prop, PARM_REQUIRED | PROP_DYNAMIC);
        RNA_def_property_array(prop, 1);  /* XXX Dummy value, default 0 does not work */
        RNA_def_property_ui_text(prop, "", "An array of indices, one for each item in the collection, mapping the org "
                                           "index to the new one");
@@ -1160,13 +1190,14 @@ static void rna_def_header(BlenderRNA *brna)
        RNA_def_struct_sdna(srna, "Header");
        RNA_def_struct_refine_func(srna, "rna_Header_refine");
        RNA_def_struct_register_funcs(srna, "rna_Header_register", "rna_Header_unregister", NULL);
+       RNA_def_struct_flag(srna, STRUCT_PUBLIC_NAMESPACE_INHERIT);
 
        /* draw */
        func = RNA_def_function(srna, "draw", NULL);
        RNA_def_function_ui_description(func, "Draw UI elements into the header UI layout");
        RNA_def_function_flag(func, FUNC_REGISTER);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 
        RNA_define_verify_sdna(0); /* not in sdna */
 
@@ -1187,7 +1218,7 @@ static void rna_def_header(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "bl_space_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "type->space_type");
-       RNA_def_property_enum_items(prop, space_type_items);
+       RNA_def_property_enum_items(prop, rna_enum_space_type_items);
        RNA_def_property_flag(prop, PROP_REGISTER);
        RNA_def_property_ui_text(prop, "Space type", "The space where the header is going to be used in");
 
@@ -1206,7 +1237,8 @@ static void rna_def_menu(BlenderRNA *brna)
        RNA_def_struct_sdna(srna, "Menu");
        RNA_def_struct_refine_func(srna, "rna_Menu_refine");
        RNA_def_struct_register_funcs(srna, "rna_Menu_register", "rna_Menu_unregister", NULL);
-       RNA_def_struct_translation_context(srna, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_struct_translation_context(srna, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_struct_flag(srna, STRUCT_PUBLIC_NAMESPACE_INHERIT);
 
        /* poll */
        func = RNA_def_function(srna, "poll", NULL);
@@ -1214,14 +1246,14 @@ static void rna_def_menu(BlenderRNA *brna)
        RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_REGISTER_OPTIONAL);
        RNA_def_function_return(func, RNA_def_boolean(func, "visible", 1, "", ""));
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 
        /* draw */
        func = RNA_def_function(srna, "draw", NULL);
        RNA_def_function_ui_description(func, "Draw UI elements into the menu UI layout");
        RNA_def_function_flag(func, FUNC_REGISTER);
        parm = RNA_def_pointer(func, "context", "Context", "", "");
-       RNA_def_property_flag(parm, PROP_REQUIRED);
+       RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
 
        RNA_define_verify_sdna(false); /* not in sdna */
 
@@ -1247,7 +1279,7 @@ static void rna_def_menu(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "bl_translation_context", PROP_STRING, PROP_NONE);
        RNA_def_property_string_sdna(prop, NULL, "type->translation_context");
-       RNA_def_property_string_default(prop, BLF_I18NCONTEXT_DEFAULT_BPYRNA);
+       RNA_def_property_string_default(prop, BLT_I18NCONTEXT_DEFAULT_BPYRNA);
        RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
 
        prop = RNA_def_property(srna, "bl_description", PROP_STRING, PROP_NONE);