Merge branch 'master' into blender2.8
[blender.git] / source / blender / makesrna / intern / rna_userdef.c
index 4831edf0016f463ffd5c7828c0662e73eba6528d..289019fdddec3d7860d87fec443f4d1217af425c 100644 (file)
@@ -88,12 +88,19 @@ static EnumPropertyItem audio_device_items[] = {
        {0, NULL, 0, NULL, NULL}
 };
 
-EnumPropertyItem navigation_mode_items[] = {
+EnumPropertyItem rna_enum_navigation_mode_items[] = {
        {VIEW_NAVIGATION_WALK, "WALK", 0, "Walk", "Interactively walk or free navigate around the scene"},
        {VIEW_NAVIGATION_FLY, "FLY", 0, "Fly", "Use fly dynamics to navigate the scene"},
        {0, NULL, 0, NULL, NULL}
 };
 
+#if defined(WITH_INTERNATIONAL) || !defined(RNA_RUNTIME)
+static EnumPropertyItem rna_enum_language_default_items[] = {
+       {0, "DEFAULT", 0, "Default (Default)", ""},
+       {0, NULL, 0, NULL, NULL}
+};
+#endif
+
 #ifdef RNA_RUNTIME
 
 #include "DNA_object_types.h"
@@ -139,17 +146,24 @@ static void rna_userdef_dpi_update(Main *UNUSED(bmain), Scene *UNUSED(scene), Po
        /* font's are stored at each DPI level, without this we can easy load 100's of fonts */
        BLF_cache_clear();
 
-       BKE_userdef_state();
+       BKE_blender_userdef_refresh();
        WM_main_add_notifier(NC_WINDOW, NULL);      /* full redraw */
        WM_main_add_notifier(NC_SCREEN | NA_EDITED, NULL);    /* refresh region sizes */
 }
 
-static void rna_userdef_virtual_pixel_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
+static void rna_userdef_virtual_pixel_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
 {
        /* font's are stored at each DPI level, without this we can easy load 100's of fonts */
        BLF_cache_clear();
        
-       BKE_userdef_state();
+       BKE_blender_userdef_refresh();
+
+       /* force setting drawable again */
+       wmWindowManager *wm = bmain->wm.first;
+       if (wm) {
+               wm->windrawable = NULL;
+       }
+
        WM_main_add_notifier(NC_WINDOW, NULL);      /* full redraw */
        WM_main_add_notifier(NC_SCREEN | NA_EDITED, NULL);    /* refresh region sizes */
 }
@@ -161,25 +175,6 @@ static void rna_userdef_language_update(Main *UNUSED(bmain), Scene *UNUSED(scene
        UI_reinit_font();
 }
 
-static void update_cb(PBVHNode *node, void *UNUSED(rebuild))
-{
-       BKE_pbvh_node_mark_rebuild_draw(node);
-}
-
-static void rna_userdef_vbo_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *UNUSED(ptr))
-{
-       Object *ob;
-       
-       for (ob = bmain->object.first; ob; ob = ob->id.next) {
-               GPU_drawobject_free(ob->derivedFinal);
-
-               if (ob->sculpt && ob->sculpt->pbvh) {
-                       BKE_pbvh_search_callback(ob->sculpt->pbvh, NULL, NULL, update_cb, NULL);
-               }
-       }
-       GPU_buffer_multires_free(false);
-}
-
 static void rna_userdef_show_manipulator_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
        UserDef *userdef = (UserDef *)ptr->data;
@@ -400,11 +395,6 @@ static void rna_UserDef_viewport_lights_update(Main *bmain, Scene *scene, Pointe
        rna_userdef_update(bmain, scene, ptr);
 }
 
-static int rna_Scene_GPU_selection_supported(UserDef *UNUSED(U))
-{
-       return GPU_select_query_check_support();
-}
-
 static void rna_userdef_autosave_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
        wmWindowManager *wm = bmain->wm.first;
@@ -425,7 +415,7 @@ static void rna_userdef_addon_remove(ReportList *reports, PointerRNA *path_cmp_p
 {
        bAddon *bext = path_cmp_ptr->data;
        if (BLI_findindex(&U.addons, bext) == -1) {
-               BKE_report(reports, RPT_ERROR, "Addon is no longer valid");
+               BKE_report(reports, RPT_ERROR, "Add-on is no longer valid");
                return;
        }
 
@@ -659,7 +649,11 @@ static EnumPropertyItem *rna_userdef_audio_device_itemf(bContext *UNUSED(C), Poi
 static EnumPropertyItem *rna_lang_enum_properties_itemf(bContext *UNUSED(C), PointerRNA *UNUSED(ptr),
                                                         PropertyRNA *UNUSED(prop), bool *UNUSED(r_free))
 {
-       return BLT_lang_RNA_enum_properties();
+       EnumPropertyItem *items = BLT_lang_RNA_enum_properties();
+       if (items == NULL) {
+               items = rna_enum_language_default_items;
+       }
+       return items;
 }
 #endif
 
@@ -722,7 +716,7 @@ static StructRNA *rna_AddonPref_register(Main *bmain, ReportList *reports, void
 
        BLI_strncpy(dummyapt.idname, dummyaddon.module, sizeof(dummyapt.idname));
        if (strlen(identifier) >= sizeof(dummyapt.idname)) {
-               BKE_reportf(reports, RPT_ERROR, "Registering addon-prefs class: '%s' is too long, maximum length is %d",
+               BKE_reportf(reports, RPT_ERROR, "Registering add-on preferences class: '%s' is too long, maximum length is %d",
                            identifier, (int)sizeof(dummyapt.idname));
                return NULL;
        }
@@ -1617,11 +1611,18 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
 
        rna_def_userdef_theme_spaces_gradient(srna);
 
+       /* General Viewport options */
+
        prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_array(prop, 3);
        RNA_def_property_ui_text(prop, "Grid", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
+       prop = RNA_def_property(srna, "clipping_border_3d", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 4);
+       RNA_def_property_ui_text(prop, "Clipping Border", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
        prop = RNA_def_property(srna, "wire", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_array(prop, 3);
        RNA_def_property_ui_text(prop, "Wire", "");
@@ -1632,32 +1633,18 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Wire Edit", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
        
-       rna_def_userdef_theme_spaces_gpencil(srna);
 
-       prop = RNA_def_property(srna, "lamp", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 4);
-       RNA_def_property_ui_text(prop, "Lamp", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
+       /* Grease Pencil */
 
-       prop = RNA_def_property(srna, "speaker", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Speaker", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
-       
-       prop = RNA_def_property(srna, "camera", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Camera", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
+       rna_def_userdef_theme_spaces_gpencil(srna);
 
-       prop = RNA_def_property(srna, "view_overlay", PROP_FLOAT, PROP_COLOR_GAMMA);
+       prop = RNA_def_property(srna, "text_grease_pencil", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_float_sdna(prop, NULL, "time_gp_keyframe");
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "View Overlay", "");
+       RNA_def_property_ui_text(prop, "Grease Pencil Keyframe", "Color for indicating Grease Pencil keyframes");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Empty", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
+       /* Object specific options */
 
        prop = RNA_def_property(srna, "object_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "select");
@@ -1683,14 +1670,42 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Object Grouped Active", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "transform", PROP_FLOAT, PROP_COLOR_GAMMA);
+       prop = RNA_def_property(srna, "text_keyframe", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_float_sdna(prop, NULL, "time_keyframe");
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Transform", "");
+       RNA_def_property_ui_text(prop, "Object Keyframe", "Color for indicating Object keyframes");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
-       
+
+       /* Object type options */
+
+       prop = RNA_def_property(srna, "camera", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Camera", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Empty", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       prop = RNA_def_property(srna, "lamp", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 4);
+       RNA_def_property_ui_text(prop, "Lamp", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       prop = RNA_def_property(srna, "speaker", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Speaker", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       /* Mesh Object specific */
+
        rna_def_userdef_theme_spaces_vertex(srna);
        rna_def_userdef_theme_spaces_edge(srna);
        rna_def_userdef_theme_spaces_face(srna);
+
+       /* Mesh Object specific curves*/
+
        rna_def_userdef_theme_spaces_curves(srna, true, true, true, false);
 
        prop = RNA_def_property(srna, "extra_edge_len", PROP_FLOAT, PROP_COLOR_GAMMA);
@@ -1734,10 +1749,7 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Split Normal", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "bone_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Bone Solid", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
+       /* Armature Object specific  */
 
        prop = RNA_def_property(srna, "bone_pose", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_array(prop, 3);
@@ -1749,16 +1761,12 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Bone Pose Active", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_float_sdna(prop, NULL, "cframe");
+       prop = RNA_def_property(srna, "bone_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_array(prop, 3);
-       RNA_def_property_ui_text(prop, "Current Frame", "");
+       RNA_def_property_ui_text(prop, "Bone Solid", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "outline_width", PROP_INT, PROP_NONE);
-       RNA_def_property_range(prop, 1, 5);
-       RNA_def_property_ui_text(prop, "Outline Width", "");
-       RNA_def_property_update(prop, 0, "rna_userdef_update");
+       /* misc */
 
        prop = RNA_def_property(srna, "bundle_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "bundle_solid");
@@ -1777,12 +1785,29 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Skin Root", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "clipping_border_3d", PROP_FLOAT, PROP_COLOR_GAMMA);
-       RNA_def_property_array(prop, 4);
-       RNA_def_property_ui_text(prop, "Clipping Border", "");
+       prop = RNA_def_property(srna, "view_overlay", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "View Overlay", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
-       
+
+       prop = RNA_def_property(srna, "transform", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Transform", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
+       prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_float_sdna(prop, NULL, "cframe");
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Current Frame", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
        rna_def_userdef_theme_spaces_paint_curves(srna);
+
+       prop = RNA_def_property(srna, "outline_width", PROP_INT, PROP_NONE);
+       RNA_def_property_range(prop, 1, 5);
+       RNA_def_property_ui_text(prop, "Outline Width", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
 }
 
 
@@ -2572,6 +2597,11 @@ static void rna_def_userdef_theme_space_seq(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Meta Strip", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
+       prop = RNA_def_property(srna, "text_strip", PROP_FLOAT, PROP_COLOR_GAMMA);
+       RNA_def_property_array(prop, 3);
+       RNA_def_property_ui_text(prop, "Text Strip", "");
+       RNA_def_property_update(prop, 0, "rna_userdef_update");
+
        prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "cframe");
        RNA_def_property_array(prop, 3);
@@ -2760,6 +2790,13 @@ static void rna_def_userdef_theme_space_action(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Keyframe Border Selected", "Color of selected keyframe border");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
        
+       prop = RNA_def_property(srna, "keyframe_scale_factor", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_float_sdna(prop, NULL, "keyframe_scale_fac");
+       RNA_def_property_float_default(prop, 1.0f);
+       RNA_def_property_ui_text(prop, "Keyframe Scale Factor", "Scale factor for adjusting the height of keyframes");
+       RNA_def_property_range(prop, 0.8f, 5.0f); /* Note: These limits prevent buttons overlapping (min), and excessive size... (max) */
+       RNA_def_property_update(prop, NC_SPACE | ND_SPACE_DOPESHEET, "rna_userdef_update");
+       
        
        prop = RNA_def_property(srna, "summary", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "anim_active");
@@ -3176,7 +3213,7 @@ static void rna_def_userdef_addon(BlenderRNA *brna)
        srna = RNA_def_struct(brna, "Addon", NULL);
        RNA_def_struct_sdna(srna, "bAddon");
        RNA_def_struct_clear_flag(srna, STRUCT_UNDO);
-       RNA_def_struct_ui_text(srna, "Addon", "Python addons to be loaded automatically");
+       RNA_def_struct_ui_text(srna, "Add-on", "Python add-ons to be loaded automatically");
 
        prop = RNA_def_property(srna, "module", PROP_STRING, PROP_NONE);
        RNA_def_property_ui_text(prop, "Module", "Module name");
@@ -3213,7 +3250,7 @@ static void rna_def_userdef_addon_pref(BlenderRNA *brna)
        PropertyRNA *prop;
 
        srna = RNA_def_struct(brna, "AddonPreferences", NULL);
-       RNA_def_struct_ui_text(srna, "Addon Preferences", "");
+       RNA_def_struct_ui_text(srna, "Add-on Preferences", "");
        RNA_def_struct_sdna(srna, "bAddon");  /* WARNING: only a bAddon during registration */
 
        RNA_def_struct_refine_func(srna, "rna_AddonPref_refine");
@@ -3362,7 +3399,7 @@ static void rna_def_userdef_view(BlenderRNA *brna)
        static EnumPropertyItem zoom_frame_modes[] = {
                {ZOOM_FRAME_MODE_KEEP_RANGE, "KEEP_RANGE", 0, "Keep Range", ""},
                {ZOOM_FRAME_MODE_SECONDS, "SECONDS", 0, "Seconds", ""},
-           {ZOOM_FRAME_MODE_KEYFRAMES, "KEYFRAMES", 0, "Keyframes", ""},
+               {ZOOM_FRAME_MODE_KEYFRAMES, "KEYFRAMES", 0, "Keyframes", ""},
                {0, NULL, 0, NULL, NULL}
        };
 
@@ -3464,11 +3501,6 @@ static void rna_def_userdef_view(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Prompt Quit",
                                 "Ask for confirmation when quitting through the window close button");
 
-       prop = RNA_def_property(srna, "use_gl_warn_support", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_negative_sdna(prop, NULL, "uiflag2", USER_OPENGL_NO_WARN_SUPPORT);
-       RNA_def_property_ui_text(prop, "Warn On Deprecated OpenGL",
-                                "Pop up a warning when an old OpenGL version is detected");
-
        /* Toolbox click-hold delay */
        prop = RNA_def_property(srna, "open_left_mouse_delay", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "tb_leftmouse");
@@ -3738,14 +3770,14 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
                                 "and also Color is based on the transform axis");
        
        prop = RNA_def_property(srna, "keyframe_new_interpolation_type", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, beztriple_interpolation_mode_items);
+       RNA_def_property_enum_items(prop, rna_enum_beztriple_interpolation_mode_items);
        RNA_def_property_enum_sdna(prop, NULL, "ipo_new");
        RNA_def_property_ui_text(prop, "New Interpolation Type",
                                 "Interpolation mode used for first keyframe on newly added F-Curves "
                                 "(subsequent keyframes take interpolation from preceding keyframe)");
 
        prop = RNA_def_property(srna, "keyframe_new_handle_type", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, keyframe_handle_type_items);
+       RNA_def_property_enum_items(prop, rna_enum_keyframe_handle_type_items);
        RNA_def_property_enum_sdna(prop, NULL, "keyhandles_new");
        RNA_def_property_ui_text(prop, "New Handles Type", "Handle type for handles of new keyframes");
        
@@ -3776,17 +3808,13 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Grease Pencil Euclidean Distance",
                                 "Distance moved by mouse when drawing stroke to include");
 
-       prop = RNA_def_property(srna, "use_grease_pencil_smooth_stroke", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "gp_settings", GP_PAINT_DOSMOOTH);
-       RNA_def_property_ui_text(prop, "Grease Pencil Smooth Stroke", "Smooth the final stroke");
-
        prop = RNA_def_property(srna, "use_grease_pencil_simplify_stroke", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gp_settings", GP_PAINT_DOSIMPLIFY);
        RNA_def_property_ui_text(prop, "Grease Pencil Simplify Stroke", "Simplify the final stroke");
 
        prop = RNA_def_property(srna, "grease_pencil_eraser_radius", PROP_INT, PROP_PIXEL);
        RNA_def_property_int_sdna(prop, NULL, "gp_eraser");
-       RNA_def_property_range(prop, 0, 100);
+       RNA_def_property_range(prop, 1, 500);
        RNA_def_property_ui_text(prop, "Grease Pencil Eraser Radius", "Radius of eraser 'brush'");
        
        
@@ -3847,10 +3875,6 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
        prop = RNA_def_property(srna, "use_duplicate_action", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "dupflag", USER_DUP_ACT);
        RNA_def_property_ui_text(prop, "Duplicate Action", "Causes actions to be duplicated with the object");
-       
-       prop = RNA_def_property(srna, "use_duplicate_particle", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "dupflag", USER_DUP_PSYS);
-       RNA_def_property_ui_text(prop, "Duplicate Particle", "Causes particle systems to be duplicated with the object");
 
        /* currently only used for insert offset (aka auto-offset), maybe also be useful for later stuff though */
        prop = RNA_def_property(srna, "node_margin", PROP_INT, PROP_NONE);
@@ -3861,9 +3885,7 @@ static void rna_def_userdef_edit(BlenderRNA *brna)
 
 static void rna_def_userdef_system(BlenderRNA *brna)
 {
-       FunctionRNA *func;
        PropertyRNA *prop;
-       PropertyRNA *parm;
        StructRNA *srna;
 
        static EnumPropertyItem gl_texture_clamp_items[] = {
@@ -3963,11 +3985,6 @@ static void rna_def_userdef_system(BlenderRNA *brna)
                {USER_MULTISAMPLE_16, "16", 0, "MultiSample: 16", "Use 16x OpenGL MultiSample (requires restart)"},
                {0, NULL, 0, NULL, NULL}
        };
-       
-       static EnumPropertyItem language_items[] = {
-               {0, "DEFAULT", 0, "Default (Default)", ""},
-               {0, NULL, 0, NULL, NULL}
-       };
 
 #ifdef WITH_CYCLES
        static EnumPropertyItem compute_device_items[] = {
@@ -4031,6 +4048,11 @@ static void rna_def_userdef_system(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Interface Font", "Path to interface font");
        RNA_def_property_update(prop, NC_WINDOW, "rna_userdef_language_update");
 
+       prop = RNA_def_property(srna, "font_path_ui_mono", PROP_STRING, PROP_FILEPATH);
+       RNA_def_property_string_sdna(prop, NULL, "font_path_ui_mono");
+       RNA_def_property_ui_text(prop, "Mono-space Font", "Path to interface mono-space Font");
+       RNA_def_property_update(prop, NC_WINDOW, "rna_userdef_language_update");
+
        prop = RNA_def_property(srna, "scrollback", PROP_INT, PROP_UNSIGNED);
        RNA_def_property_int_sdna(prop, NULL, "scrollback");
        RNA_def_property_range(prop, 32, 32768);
@@ -4045,7 +4067,7 @@ static void rna_def_userdef_system(BlenderRNA *brna)
        /* Language Selection */
 
        prop = RNA_def_property(srna, "language", PROP_ENUM, PROP_NONE);
-       RNA_def_property_enum_items(prop, language_items);
+       RNA_def_property_enum_items(prop, rna_enum_language_default_items);
 #ifdef WITH_INTERNATIONAL
        RNA_def_property_enum_funcs(prop, NULL, NULL, "rna_lang_enum_properties_itemf");
 #endif
@@ -4162,13 +4184,6 @@ static void rna_def_userdef_system(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Image Draw Method", "Method used for displaying images on the screen");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop = RNA_def_property(srna, "use_vertex_buffer_objects", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_negative_sdna(prop, NULL, "gameflags", USER_DISABLE_VBO);
-       RNA_def_property_ui_text(prop, "VBOs",
-                                "Use Vertex Buffer Objects (or Vertex Arrays, if unsupported) for viewport rendering");
-       /* this isn't essential but nice to check if VBO draws any differently */
-       RNA_def_property_update(prop, NC_WINDOW, "rna_userdef_vbo_update");
-
        prop = RNA_def_property(srna, "anisotropic_filter", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "anisotropic_filter");
        RNA_def_property_enum_items(prop, anisotropic_items);
@@ -4250,11 +4265,6 @@ static void rna_def_userdef_system(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Text Anti-aliasing", "Draw user interface text anti-aliased");
        RNA_def_property_update(prop, 0, "rna_userdef_text_update");
 
-       func = RNA_def_function(srna, "is_occlusion_query_supported", "rna_Scene_GPU_selection_supported");
-       parm = RNA_def_boolean(func, "is_supported", 0, "Occlusion Query Support",
-                              "Check if GPU supports Occlusion Queries");
-       RNA_def_function_return(func, parm);
-
        prop = RNA_def_property(srna, "select_method", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "gpu_select_method");
        RNA_def_property_enum_items(prop, gpu_select_method_items);
@@ -4385,7 +4395,7 @@ static void rna_def_userdef_input(BlenderRNA *brna)
        /* View Navigation */
        prop = RNA_def_property(srna, "navigation_mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "navigation_mode");
-       RNA_def_property_enum_items(prop, navigation_mode_items);
+       RNA_def_property_enum_items(prop, rna_enum_navigation_mode_items);
        RNA_def_property_ui_text(prop, "View Navigation", "Which method to use for viewport navigation");
 
        prop = RNA_def_property(srna, "walk_navigation", PROP_POINTER, PROP_NONE);
@@ -4599,7 +4609,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
        RNA_def_property_string_sdna(prop, NULL, "pythondir");
        RNA_def_property_ui_text(prop, "Python Scripts Directory",
                                 "Alternate script path, matching the default layout with subdirs: "
-                                "startup, addons & modules (requires restart)");
+                                "startup, add-ons & modules (requires restart)");
        /* TODO, editing should reset sys.path! */
 
        prop = RNA_def_property(srna, "i18n_branches_directory", PROP_STRING, PROP_DIRPATH);
@@ -4691,7 +4701,7 @@ static void rna_def_userdef_addon_collection(BlenderRNA *brna, PropertyRNA *cpro
        func = RNA_def_function(srna, "remove", "rna_userdef_addon_remove");
        RNA_def_function_flag(func, FUNC_NO_SELF | FUNC_USE_REPORTS);
        RNA_def_function_ui_description(func, "Remove add-on");
-       parm = RNA_def_pointer(func, "addon", "Addon", "", "Addon to remove");
+       parm = RNA_def_pointer(func, "addon", "Addon", "", "Add-on to remove");
        RNA_def_property_flag(parm, PROP_REQUIRED | PROP_NEVER_NULL | PROP_RNAPTR);
        RNA_def_property_clear_flag(parm, PROP_THICK_WRAP);
 }
@@ -4767,7 +4777,7 @@ void RNA_def_userdef(BlenderRNA *brna)
        prop = RNA_def_property(srna, "addons", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "addons", NULL);
        RNA_def_property_struct_type(prop, "Addon");
-       RNA_def_property_ui_text(prop, "Addon", "");
+       RNA_def_property_ui_text(prop, "Add-on", "");
        rna_def_userdef_addon_collection(brna, prop);
 
        prop = RNA_def_property(srna, "autoexec_paths", PROP_COLLECTION, PROP_NONE);