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
path: root/source
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2009-08-15 23:40:09 +0400
committerThomas Dinges <blender@dingto.org>2009-08-15 23:40:09 +0400
commit0ce5163cc0aa32df5450752da9056059a88f1fd5 (patch)
treea5aa62f012dba91b3d78935f608a06c1b69b4ef6 /source
parentca906df5ccdd0d1b0a600f073b5bad5251d42e07 (diff)
2.5 3D_View:
Patch [#19031] (2.5) python menus for the view3d header by Lorenzo Pierfederici (lento). Thanks! * Added CTX_data_mode_string() to find out in which mode we're in. * Added some "select" menus as a test. This patch makes it basically possible to wrap the 3D View menus to python.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_context.h2
-rw-r--r--source/blender/blenkernel/intern/context.c38
-rw-r--r--source/blender/editors/include/UI_interface.h4
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c209
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h1
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c40
-rw-r--r--source/blender/makesrna/intern/rna_context.c16
-rw-r--r--source/blender/makesrna/intern/rna_ui_api.c9
9 files changed, 103 insertions, 218 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index e47ad969b91..81dea204dd0 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -191,6 +191,8 @@ struct Main *CTX_data_main(const bContext *C);
struct Scene *CTX_data_scene(const bContext *C);
struct ToolSettings *CTX_data_tool_settings(const bContext *C);
+char *CTX_data_mode_string(const bContext *C);
+
void CTX_data_main_set(bContext *C, struct Main *bmain);
void CTX_data_scene_set(bContext *C, struct Scene *bmain);
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index d1e228f83b6..df5b0d766b5 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -34,6 +34,7 @@
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "DNA_windowmanager_types.h"
+#include "DNA_object_types.h"
#include "RNA_access.h"
@@ -43,6 +44,7 @@
#include "BKE_context.h"
#include "BKE_main.h"
#include "BKE_screen.h"
+#include "BKE_global.h"
#include <string.h>
@@ -659,6 +661,42 @@ Scene *CTX_data_scene(const bContext *C)
return C->data.scene;
}
+char *CTX_data_mode_string(const bContext *C)
+{
+ Object *obedit= CTX_data_edit_object(C);
+
+ if(obedit) {
+ switch(obedit->type) {
+ case OB_MESH:
+ return "meshedit";
+ case OB_CURVE:
+ return "curveedit";
+ case OB_SURF:
+ return "surfaceedit";
+ case OB_FONT:
+ return "textedit";
+ case OB_ARMATURE:
+ return "armatureedit";
+ case OB_MBALL:
+ return "mballedit";
+ case OB_LATTICE:
+ return "latticeedit";
+ }
+ }
+ else {
+ Object *ob = CTX_data_active_object(C);
+
+ if(ob && (ob->flag & OB_POSEMODE)) return "posemode";
+ else if (ob && ob->mode & OB_MODE_SCULPT) return "sculpt_mode";
+ else if (G.f & G_WEIGHTPAINT) return "weightpaint";
+ else if (G.f & G_VERTEXPAINT) return "vertexpaint";
+ else if (G.f & G_TEXTUREPAINT) return "texturepaint";
+ else if(G.f & G_PARTICLEEDIT) return "particlemode";
+ }
+
+ return "objectmode";
+}
+
void CTX_data_scene_set(bContext *C, Scene *scene)
{
C->data.scene= scene;
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 4d6dfe993a6..7fc2d62af29 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -638,6 +638,10 @@ void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *i
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
void uiTemplateHeader3D(uiLayout *layout, struct bContext *C);
+void uiTemplate_view3d_select_metaballmenu(uiLayout *layout, struct bContext *C);
+void uiTemplate_view3d_select_armaturemenu(uiLayout *layout, struct bContext *C);
+void uiTemplate_view3d_select_posemenu(uiLayout *layout, struct bContext *C);
+void uiTemplate_view3d_select_faceselmenu(uiLayout *layout, struct bContext *C);
void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *tex);
typedef struct uiListItem {
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 48ea5cf5df2..8b719dd2d80 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -595,7 +595,7 @@ static void view3d_tools_area_init(wmWindowManager *wm, ARegion *ar)
static void view3d_tools_area_draw(const bContext *C, ARegion *ar)
{
- ED_region_panels(C, ar, 1, view3d_context_string(C), -1);
+ ED_region_panels(C, ar, 1, CTX_data_mode_string(C), -1);
}
static int view3d_context(const bContext *C, const char *member, bContextDataResult *result)
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 8a39bbee2d8..7f2e3f1a90e 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -970,112 +970,6 @@ static uiBlock *view3d_select_object_groupedmenu(bContext *C, ARegion *ar, void
#endif
-static void view3d_select_objectmenu(bContext *C, uiLayout *layout, void *arg_unused)
-{
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
-
- uiItemS(layout);
-
- uiItemO(layout, "Select/Deselect All", 0, "OBJECT_OT_select_all_toggle");
- uiItemO(layout, "Inverse", 0, "OBJECT_OT_select_inverse");
- uiItemO(layout, "Random", 0, "OBJECT_OT_select_random");
- uiItemO(layout, "Select All by Layer", 0, "OBJECT_OT_select_by_layer");
- uiItemMenuEnumO(layout, "Select All by Type", 0, "OBJECT_OT_select_by_type", "type");
- uiItemMenuEnumO(layout, "Select Grouped", 0, "OBJECT_OT_select_grouped", "type");
-
-#if 0
- uiDefIconTextBlockBut(block, view3d_select_object_layermenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Layer", 0, yco-=20, 120, 19, "");
- uiDefIconTextBlockBut(block, view3d_select_object_typemenu, NULL, ICON_RIGHTARROW_THIN, "Select All by Type", 0, yco-=20, 120, 19, "");
-
- uiItemS(layout);
-
- uiDefIconTextBlockBut(block, view3d_select_object_linkedmenu, NULL, ICON_RIGHTARROW_THIN, "Linked", 0, yco-=20, 120, 19, "");
- uiDefIconTextBlockBut(block, view3d_select_object_groupedmenu, NULL, ICON_RIGHTARROW_THIN, "Grouped", 0, yco-=20, 120, 19, "");
-#endif
-}
-
-static void view3d_select_meshmenu(bContext *C, uiLayout *layout, void *arg_unused)
-{
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
-
- uiItemS(layout);
-
- uiItemO(layout, "Select/Deselect All", 0, "MESH_OT_select_all_toggle");
- uiItemO(layout, "Inverse", 0, "MESH_OT_select_inverse");
-
- uiItemS(layout);
-
- uiItemO(layout, "Random...", 0, "MESH_OT_select_random"); // Random...
- uiItemO(layout, "Sharp Edges", 0, "MESH_OT_edges_select_sharp");
- uiItemO(layout, "Linked Flat Faces", 0, "MESH_OT_faces_select_linked_flat");
-
- uiItemS(layout);
-
- uiItemEnumO(layout, "Triangles", 0, "MESH_OT_select_by_number_vertices", "type", 3); // Ctrl Alt Shift 3
- uiItemEnumO(layout, "Quads", 0, "MESH_OT_select_by_number_vertices", "type", 4); // Ctrl Alt Shift 4
- uiItemEnumO(layout, "Loose Verts/Edges", 0, "MESH_OT_select_by_number_vertices", "type", 5); // Ctrl Alt Shift 5
- uiItemO(layout, "Similar...", 0, "MESH_OT_select_similar");
-
- uiItemS(layout);
-
- uiItemO(layout, "Less", 0, "MESH_OT_select_more");
- uiItemO(layout, "More", 0, "MESH_OT_select_less");
-
- uiItemS(layout);
-
- uiItemO(layout, "Linked", 0, "MESH_OT_select_linked");
- uiItemO(layout, "Vertex Path", 0, "MESH_OT_select_vertex_path"); // W, Alt 7
- uiItemO(layout, "Edge Loop", 0, "MESH_OT_loop_multi_select");
- uiItemBooleanO(layout, "Edge Ring", 0, "MESH_OT_loop_multi_select", "ring", 1);
-
- uiItemS(layout);
-
- uiItemO(layout, NULL, 0, "MESH_OT_loop_to_region"); // Ctrl E 8
- uiItemO(layout, NULL, 0, "MESH_OT_region_to_loop"); // Ctrl E 9
-}
-
-static void view3d_select_curvemenu(bContext *C, uiLayout *layout, void *arg_unused)
-{
- Object *obedit= CTX_data_edit_object(C);
-
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_circle");
-
- uiItemS(layout);
-
- uiItemO(layout, NULL, 0, "CURVE_OT_select_all_toggle");
- uiItemO(layout, NULL, 0, "CURVE_OT_select_inverse");
- uiItemO(layout, NULL, 0, "CURVE_OT_select_random"); // Random...
- uiItemO(layout, NULL, 0, "CURVE_OT_select_every_nth"); // Every Nth..
-
- uiItemS(layout);
-
- if(obedit->type == OB_SURF) {
- uiItemO(layout, NULL, 0, "CURVE_OT_select_row");
- }
- else {
- uiItemO(layout, NULL, 0, "CURVE_OT_de_select_first");
- uiItemO(layout, NULL, 0, "CURVE_OT_de_select_last");
- uiItemO(layout, NULL, 0, "CURVE_OT_select_next");
- uiItemO(layout, NULL, 0, "CURVE_OT_select_previous");
- }
-
- uiItemS(layout);
-
- uiItemO(layout, NULL, 0, "CURVE_OT_select_more");
- uiItemO(layout, NULL, 0, "CURVE_OT_select_less");
-
- /* commented out because it seems to only like the LKEY method - based on mouse pointer position :( */
- /* uiItemO(layout, NULL, 0, "CURVE_OT_select_linked"); */
-
-#if 0
- G.qual |= LR_CTRLKEY;
- select_connected_nurb();
- G.qual &= ~LR_CTRLKEY;
- break;*/
-#endif
-}
-
static void view3d_select_metaballmenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
@@ -1086,18 +980,20 @@ static void view3d_select_metaballmenu(bContext *C, uiLayout *layout, void *arg_
uiItemO(layout, NULL, 0, "MBALL_OT_select_random_metaelems");
}
-static void view3d_select_latticemenu(bContext *C, uiLayout *layout, void *arg_unused)
+/* wrapper for python layouts */
+void uiTemplate_view3d_select_metaballmenu(uiLayout *layout, bContext *C)
{
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
- uiItemS(layout);
- uiItemO(layout, NULL, 0, "LATTICE_OT_select_all_toggle");
+ void *arg_unused = NULL;
+ ARegion *ar= CTX_wm_region(C);
+ view3d_select_metaballmenu(C, ar, arg_unused);
}
static void view3d_select_armaturemenu(bContext *C, uiLayout *layout, void *arg_unused)
{
PointerRNA ptr;
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
+ /* this part of the menu has been moved to python */
+ /*uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
uiItemS(layout);
@@ -1109,7 +1005,7 @@ static void view3d_select_armaturemenu(bContext *C, uiLayout *layout, void *arg_
uiItemEnumO(layout, "Parent", 0, "ARMATURE_OT_select_hierarchy", "direction", BONE_SELECT_PARENT);
uiItemEnumO(layout, "Child", 0, "ARMATURE_OT_select_hierarchy", "direction", BONE_SELECT_CHILD);
- uiItemS(layout);
+ uiItemS(layout);*/
WM_operator_properties_create(&ptr, "ARMATURE_OT_select_hierarchy");
RNA_boolean_set(&ptr, "extend", 1);
@@ -1122,25 +1018,17 @@ static void view3d_select_armaturemenu(bContext *C, uiLayout *layout, void *arg_
uiItemFullO(layout, "Extend Child", 0, "ARMATURE_OT_select_hierarchy", ptr.data, WM_OP_EXEC_REGION_WIN);
}
+/* wrapper for python layouts */
+void uiTemplate_view3d_select_armaturemenu(uiLayout *layout, bContext *C)
+{
+ void *arg_unused = NULL;
+ view3d_select_armaturemenu(C, layout, arg_unused);
+}
+
static void view3d_select_posemenu(bContext *C, uiLayout *layout, void *arg_unused)
{
PointerRNA ptr;
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
-
- uiItemS(layout);
-
- uiItemO(layout, "Select/Deselect All", 0, "POSE_OT_select_all_toggle");
- uiItemO(layout, "Inverse", 0, "POSE_OT_select_inverse");
- uiItemO(layout, "Constraint Target", 0, "POSE_OT_select_constraint_target");
-
- uiItemS(layout);
-
- uiItemEnumO(layout, "Parent", 0, "POSE_OT_select_hierarchy", "direction", BONE_SELECT_PARENT);
- uiItemEnumO(layout, "Child", 0, "POSE_OT_select_hierarchy", "direction", BONE_SELECT_CHILD);
-
- uiItemS(layout);
-
WM_operator_properties_create(&ptr, "POSE_OT_select_hierarchy");
RNA_boolean_set(&ptr, "extend", 1);
RNA_enum_set(&ptr, "direction", BONE_SELECT_PARENT);
@@ -1152,6 +1040,13 @@ static void view3d_select_posemenu(bContext *C, uiLayout *layout, void *arg_unus
uiItemFullO(layout, "Extend Child", 0, "POSE_OT_select_hierarchy", ptr.data, WM_OP_EXEC_REGION_WIN);
}
+/* wrapper for python layouts */
+void uiTemplate_view3d_select_posemenu(uiLayout *layout, bContext *C)
+{
+ void *arg_unused = NULL;
+ view3d_select_posemenu(C, layout, arg_unused);
+}
+
void do_view3d_select_faceselmenu(bContext *C, void *arg, int event)
{
#if 0
@@ -1222,6 +1117,14 @@ static uiBlock *view3d_select_faceselmenu(bContext *C, ARegion *ar, void *arg_un
return block;
}
+/* wrapper for python layouts */
+void uiTemplate_view3d_select_faceselmenu(uiLayout *layout, bContext *C)
+{
+ void *arg_unused = NULL;
+ ARegion *ar= CTX_wm_region(C);
+ view3d_select_faceselmenu(C, ar, arg_unused);
+}
+
static void view3d_edit_snapmenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiItemO(layout, NULL, 0, "VIEW3D_OT_snap_selected_to_grid");
@@ -3333,28 +3236,6 @@ static uiBlock *view3d_faceselmenu(bContext *C, ARegion *ar, void *arg_unused)
return block;
}
-static void view3d_select_particlemenu(bContext *C, uiLayout *layout, void *arg_unused)
-{
- ToolSettings *ts= CTX_data_tool_settings(C);
-
- uiItemO(layout, NULL, 0, "VIEW3D_OT_select_border");
-
- uiItemS(layout);
-
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_all_toggle");
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_linked");
-
- if(ts->particle.selectmode & SCE_SELECT_POINT) {
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_last"); // |W, 4
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_first"); // |W, 3
- }
-
- uiItemS(layout);
-
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_more");
- uiItemO(layout, NULL, 0, "PARTICLE_OT_select_less");
-}
-
static void view3d_particle_showhidemenu(bContext *C, uiLayout *layout, void *arg_unused)
{
uiItemO(layout, NULL, 0, "PARTICLE_OT_reveal");
@@ -3788,35 +3669,7 @@ static void view3d_header_pulldowns(const bContext *C, uiBlock *block, Object *o
* height of the header */
xmax= GetButStringLength("Select");
- if (obedit) {
- if (ob && ob->type == OB_MESH) {
- uiDefMenuBut(block, view3d_select_meshmenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- } else if (ob && (ob->type == OB_CURVE || ob->type == OB_SURF)) {
- uiDefMenuBut(block, view3d_select_curvemenu, NULL, "Select", xco, yco, xmax-3, 20, "");
- } else if (ob && ob->type == OB_FONT) {
- xmax= 0;
- } else if (ob && ob->type == OB_MBALL) {
- uiDefMenuBut(block, view3d_select_metaballmenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- } else if (ob && ob->type == OB_LATTICE) {
- uiDefMenuBut(block, view3d_select_latticemenu, NULL, "Select", xco, yco, xmax-3, 20, "");
- } else if (ob && ob->type == OB_ARMATURE) {
- uiDefMenuBut(block, view3d_select_armaturemenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- }
- } else if (FACESEL_PAINT_TEST) {
- if (ob && ob->type == OB_MESH) {
- uiDefPulldownBut(block, view3d_select_faceselmenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- }
- } else if ((G.f & G_VERTEXPAINT) || (G.f & G_TEXTUREPAINT) || (G.f & G_WEIGHTPAINT)) {
- uiDefBut(block, LABEL,0,"", xco, 0, xmax, 20, 0, 0, 0, 0, 0, "");
- } else if (G.f & G_PARTICLEEDIT) {
- uiDefMenuBut(block, view3d_select_particlemenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- } else {
-
- if (ob && (ob->flag & OB_POSEMODE))
- uiDefMenuBut(block, view3d_select_posemenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- else
- uiDefMenuBut(block, view3d_select_objectmenu, NULL, "Select", xco,yco, xmax-3, 20, "");
- }
+
xco+= xmax;
if (obedit) {
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 3e9382509f4..acd1c62bc17 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -140,7 +140,6 @@ void view3d_buttons_register(struct ARegionType *art);
void VIEW3D_OT_toolbar(struct wmOperatorType *ot);
void view3d_toolbar_register(struct ARegionType *art);
void view3d_tool_props_register(struct ARegionType *art);
-char *view3d_context_string(const struct bContext *C);
/* view3d_snap.c */
int minmax_verts(Object *obedit, float *min, float *max);
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index a6317100643..ec1ed10cd0b 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -164,42 +164,6 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
/* ******************* */
-char *view3d_context_string(const bContext *C)
-{
- Object *obedit= CTX_data_edit_object(C);
-
- if(obedit) {
- switch(obedit->type) {
- case OB_MESH:
- return "editmode_mesh";
- case OB_CURVE:
- return "editmode_curve";
- case OB_SURF:
- return "editmode_surface";
- case OB_FONT:
- return "editmode_text";
- case OB_ARMATURE:
- return "editmode_armature";
- case OB_MBALL:
- return "editmode_mball";
- case OB_LATTICE:
- return "editmode_lattice";
- }
- }
- else {
- Object *ob = CTX_data_active_object(C);
-
- if(ob && (ob->flag & OB_POSEMODE)) return "pose_mode";
- else if (ob && ob->mode & OB_MODE_SCULPT) return "sculpt_mode";
- else if (G.f & G_WEIGHTPAINT) return "weight_paint";
- else if (G.f & G_VERTEXPAINT) return "vertex_paint";
- else if (G.f & G_TEXTUREPAINT) return "texture_paint";
- else if(G.f & G_PARTICLEEDIT) return "particle_mode";
- }
-
- return "objectmode";
-}
-
typedef struct CustomTool {
struct CustomTool *next, *prev;
char opname[OP_MAX_TYPENAME];
@@ -215,7 +179,7 @@ static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2)
BLI_addtail(arg_listbase, ct);
BLI_strncpy(ct->opname, ot->idname, OP_MAX_TYPENAME);
- BLI_strncpy(ct->context, view3d_context_string(C), OP_MAX_TYPENAME);
+ BLI_strncpy(ct->context, CTX_data_mode_string(C), OP_MAX_TYPENAME);
}
}
@@ -278,7 +242,7 @@ static void view3d_panel_tool_shelf(const bContext *C, Panel *pa)
SpaceLink *sl= CTX_wm_space_data(C);
SpaceType *st= NULL;
uiLayout *col;
- const char *context= view3d_context_string(C);
+ const char *context= CTX_data_mode_string(C);
if(sl)
st= BKE_spacetype_from_id(sl->spacetype);
diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c
index 5e164c6525f..5d45a3513d1 100644
--- a/source/blender/makesrna/intern/rna_context.c
+++ b/source/blender/makesrna/intern/rna_context.c
@@ -110,6 +110,18 @@ static PointerRNA rna_Context_user_preferences_get(PointerRNA *ptr)
return newptr;
}
+static void rna_Context_mode_string_get(PointerRNA *ptr, char *value)
+{
+ bContext *C= (bContext*)ptr->data;
+ strcpy(value, CTX_data_mode_string(C));
+}
+
+static int rna_Context_mode_string_length(PointerRNA *ptr)
+{
+ bContext *C= (bContext*)ptr->data;
+ return strlen(CTX_data_mode_string(C));
+}
+
#else
void RNA_def_context(BlenderRNA *brna)
@@ -177,6 +189,10 @@ void RNA_def_context(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_struct_type(prop, "UserPreferences");
RNA_def_property_pointer_funcs(prop, "rna_Context_user_preferences_get", NULL, NULL);
+
+ prop= RNA_def_property(srna, "mode_string", PROP_STRING, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_string_funcs(prop, "rna_Context_mode_string_get", "rna_Context_mode_string_length", NULL);
}
#endif
diff --git a/source/blender/makesrna/intern/rna_ui_api.c b/source/blender/makesrna/intern/rna_ui_api.c
index e788250e407..40d300315f5 100644
--- a/source/blender/makesrna/intern/rna_ui_api.c
+++ b/source/blender/makesrna/intern/rna_ui_api.c
@@ -288,6 +288,15 @@ void RNA_api_ui_layout(StructRNA *srna)
func= RNA_def_function(srna, "template_header_3D", "uiTemplateHeader3D");
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ func= RNA_def_function(srna, "view3d_select_metaballmenu", "uiTemplate_view3d_select_metaballmenu");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ func= RNA_def_function(srna, "view3d_select_armaturemenu", "uiTemplate_view3d_select_armaturemenu");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ func= RNA_def_function(srna, "view3d_select_posemenu", "uiTemplate_view3d_select_posemenu");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+ func= RNA_def_function(srna, "view3d_select_faceselmenu", "uiTemplate_view3d_select_faceselmenu");
+ RNA_def_function_flag(func, FUNC_USE_CONTEXT);
+
func= RNA_def_function(srna, "template_texture_image", "uiTemplateTextureImage");
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
parm= RNA_def_pointer(func, "texture", "Texture", "", "");