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--intern/ghost/intern/GHOST_SystemWin32.cpp7
-rw-r--r--release/ui/buttons_data_armature.py122
-rw-r--r--release/ui/buttons_data_bone.py75
-rw-r--r--release/ui/buttons_data_curve.py147
-rw-r--r--release/ui/buttons_data_modifier.py2
-rw-r--r--release/ui/buttons_data_text.py135
-rw-r--r--source/blender/editors/space_buttons/buttons_header.c38
-rw-r--r--source/blender/editors/space_buttons/buttons_intern.h1
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c2
-rw-r--r--source/blender/makesrna/intern/rna_armature.c6
-rw-r--r--source/blender/makesrna/intern/rna_curve.c6
12 files changed, 517 insertions, 26 deletions
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index e79a075ff2c..8513d056795 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -39,6 +39,7 @@
#endif
#include "GHOST_SystemWin32.h"
+//#include <stdio.h> //for printf()
// win64 doesn't define GWL_USERDATA
#ifdef WIN32
@@ -536,7 +537,7 @@ GHOST_Event* GHOST_SystemWin32::processWindowEvent(GHOST_TEventType type, GHOST_
LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
GHOST_Event* event = 0;
- LRESULT lResult;
+ LRESULT lResult = 0;
GHOST_SystemWin32* system = ((GHOST_SystemWin32*)getSystem());
GHOST_ASSERT(system, "GHOST_SystemWin32::s_wndProc(): system not initialized")
@@ -746,6 +747,9 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
* the message is sent asynchronously, so the window is activated immediately.
*/
event = processWindowEvent(LOWORD(wParam) ? GHOST_kEventWindowActivate : GHOST_kEventWindowDeactivate, window);
+ /* WARNING: Let DefWindowProc handle WM_ACTIVATE, otherwise WM_MOUSEWHEEL
+ will not be dispatched to OUR active window if we minimize one of OUR windows. */
+ lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);
break;
case WM_PAINT:
/* An application sends the WM_PAINT message when the system or another application
@@ -905,7 +909,6 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
if (event) {
system->pushEvent(event);
- lResult = 0;
}
else {
lResult = ::DefWindowProc(hwnd, msg, wParam, lParam);
diff --git a/release/ui/buttons_data_armature.py b/release/ui/buttons_data_armature.py
new file mode 100644
index 00000000000..f8cf595ea37
--- /dev/null
+++ b/release/ui/buttons_data_armature.py
@@ -0,0 +1,122 @@
+
+import bpy
+
+class DataButtonsPanel(bpy.types.Panel):
+ __space_type__ = "BUTTONS_WINDOW"
+ __region_type__ = "WINDOW"
+ __context__ = "data"
+
+ def poll(self, context):
+ ob = context.active_object
+ return (ob and ob.type == 'ARMATURE')
+
+class DATA_PT_skeleton(DataButtonsPanel):
+ __idname__ = "DATA_PT_skeleton"
+ __label__ = "Skeleton"
+
+ def draw(self, context):
+ arm = context.main.armatures[0]
+ layout = self.layout
+
+ row = layout.row()
+ row.itemR(arm, "rest_position")
+
+ split = layout.split()
+
+ sub = split.column()
+
+ sub.itemL(text="Deform:")
+ sub.itemR(arm, "deform_vertexgroups", text="Vertes Groups")
+ sub.itemR(arm, "deform_envelope", text="Envelopes")
+ sub.itemR(arm, "deform_quaternion", text="Quaternion")
+ sub.itemR(arm, "deform_bbone_rest", text="B-Bones Rest")
+ #sub.itemR(arm, "x_axis_mirror")
+ #sub.itemR(arm, "auto_ik")
+
+ sub = split.column()
+ sub.itemL(text="Layers:")
+ sub.itemL(text="LAYERS")
+ #sub.itemR(arm, "layer")
+ #sub.itemR(arm, "layer_protection")
+
+
+class DATA_PT_display(DataButtonsPanel):
+ __idname__ = "DATA_PT_display"
+ __label__ = "Display"
+
+ def draw(self, context):
+ arm = context.main.armatures[0]
+ layout = self.layout
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(arm, "drawtype", text="Style")
+ sub.itemR(arm, "delay_deform", text="Delay Refresh")
+
+ sub = split.column()
+ sub.itemR(arm, "draw_names", text="Names")
+ sub.itemR(arm, "draw_axes", text="Axes")
+ sub.itemR(arm, "draw_custom_bone_shapes", text="Shapes")
+ sub.itemR(arm, "draw_group_colors", text="Colors")
+
+
+class DATA_PT_paths(DataButtonsPanel):
+ __idname__ = "DATA_PT_paths"
+ __label__ = "Paths"
+
+ def draw(self, context):
+ arm = context.main.armatures[0]
+ layout = self.layout
+
+ split = layout.split()
+
+ sub = split.column()
+
+ sub.itemR(arm, "paths_show_around_current_frame", text="Around Frame")
+ if (arm.paths_show_around_current_frame):
+ sub.itemR(arm, "path_before_current", text="Before")
+ sub.itemR(arm, "path_after_current", text="After")
+ else:
+ sub.itemR(arm, "path_start_frame", text="Start")
+ sub.itemR(arm, "path_end_frame", text="End")
+
+ sub.itemR(arm, "path_size", text="Step")
+ sub.itemR(arm, "paths_calculate_head_positions", text="Head")
+
+ sub = split.column()
+ sub.itemL(text="Show:")
+ sub.itemR(arm, "paths_show_frame_numbers", text="Frame Numbers")
+ sub.itemR(arm, "paths_highlight_keyframes", text="Keyframes")
+ sub.itemR(arm, "paths_show_keyframe_numbers", text="Keyframe Numbers")
+
+
+class DATA_PT_ghost(DataButtonsPanel):
+ __idname__ = "DATA_PT_ghost"
+ __label__ = "Ghost"
+
+ def draw(self, context):
+ arm = context.main.armatures[0]
+ layout = self.layout
+
+ split = layout.split()
+
+ sub = split.column()
+
+ sub.itemR(arm, "ghost_type", text="Scope")
+ if arm.ghost_type == 'RANGE':
+ sub.itemR(arm, "ghost_start_frame", text="Start")
+ sub.itemR(arm, "ghost_end_frame", text="End")
+ sub.itemR(arm, "ghost_size", text="Step")
+ elif arm.ghost_type == 'CURRENT_FRAME':
+ sub.itemR(arm, "ghost_step", text="Range")
+ sub.itemR(arm, "ghost_size", text="Step")
+
+ sub = split.column()
+
+ sub.itemR(arm, "ghost_only_selected", text="Selected Only")
+
+bpy.types.register(DATA_PT_skeleton)
+bpy.types.register(DATA_PT_display)
+bpy.types.register(DATA_PT_paths)
+bpy.types.register(DATA_PT_ghost) \ No newline at end of file
diff --git a/release/ui/buttons_data_bone.py b/release/ui/buttons_data_bone.py
new file mode 100644
index 00000000000..fb3648802ef
--- /dev/null
+++ b/release/ui/buttons_data_bone.py
@@ -0,0 +1,75 @@
+
+import bpy
+
+class DataButtonsPanel(bpy.types.Panel):
+ __space_type__ = "BUTTONS_WINDOW"
+ __region_type__ = "WINDOW"
+ __context__ = "bone"
+
+ def poll(self, context):
+ ob = context.active_object
+ return (ob and ob.type == 'ARMATURE')
+
+class DATA_PT_bone(DataButtonsPanel):
+ __idname__ = "DATA_PT_bone"
+ __label__ = "Bone"
+
+ def draw(self, context):
+ bone = context.main.armatures[0].bones[0]
+ layout = self.layout
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemR(bone, "name")
+ sub.itemR(bone, "parent")
+ sub.itemR(bone, "connected")
+ sub.itemR(bone, "deform")
+
+
+ sub.itemL(text="Inherit:")
+ sub.itemR(bone, "hinge")
+ sub.itemR(bone, "inherit_scale")
+
+ sub.itemL(text="Envelope:")
+ sub.itemR(bone, "envelope_distance", text="Distance")
+ sub.itemR(bone, "envelope_weight", text="Weight")
+ sub.itemR(bone, "multiply_vertexgroup_with_envelope", text="Multiply")
+
+ sub = split.column()
+ #sub.itemR(bone, "layer")
+ sub.itemL(text="Display:")
+ sub.itemR(bone, "draw_wire", text="Wireframe")
+ sub.itemR(bone, "editmode_hidden", text="Hide (EditMode)")
+ sub.itemR(bone, "pose_channel_hidden", text="Hide (PoseMode)")
+
+ sub.itemL(text="Curved Bones:")
+ sub.itemR(bone, "bbone_segments", text="Segments")
+ sub.itemR(bone, "bbone_in", text="Ease In")
+ sub.itemR(bone, "bbone_out", text="Ease Out")
+
+
+ sub.itemR(bone, "cyclic_offset")
+
+
+class DATA_PT_constraints(DataButtonsPanel):
+ __idname__ = "DATA_PT_constraints"
+ __label__ = "Constraints"
+
+ def draw(self, context):
+ bone = context.main.armatures[0].bones[0]
+ layout = self.layout
+
+ split = layout.split()
+
+ sub = split.column()
+
+
+
+
+
+bpy.types.register(DATA_PT_bone)
+bpy.types.register(DATA_PT_constraints)
+
+
+
diff --git a/release/ui/buttons_data_curve.py b/release/ui/buttons_data_curve.py
new file mode 100644
index 00000000000..4d6817d0fe8
--- /dev/null
+++ b/release/ui/buttons_data_curve.py
@@ -0,0 +1,147 @@
+
+import bpy
+
+class DataButtonsPanel(bpy.types.Panel):
+ __space_type__ = "BUTTONS_WINDOW"
+ __region_type__ = "WINDOW"
+ __context__ = "data"
+
+ def poll(self, context):
+ ob = context.active_object
+ return (ob and ob.type == 'CURVE')
+
+
+class DATA_PT_shape_curve(DataButtonsPanel):
+ __idname__ = "DATA_PT_shape_curve"
+ __label__ = "Shape"
+
+ def draw(self, context):
+ curve = context.main.curves[0]
+ layout = self.layout
+
+ if not curve:
+ return
+ row = layout.row()
+ row.itemR(curve, "curve_2d")
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemL(text="Caps:")
+ sub.itemR(curve, "front")
+ sub.itemR(curve, "back")
+
+ sub.itemL(text="Textures:")
+ sub.itemR(curve, "uv_orco")
+ sub.itemR(curve, "autotexspace")
+
+ sub = split.column()
+ sub.itemL(text="Resolution:")
+ sub.itemR(curve, "resolution_u", text="Preview U")
+ sub.itemR(curve, "resolution_v", text="Preview V")
+ sub.itemR(curve, "render_resolution_u", text="Render U")
+ sub.itemR(curve, "render_resolution_v", text="Render V")
+
+ sub.itemL(text="Display:")
+ sub.itemL(text="HANDLES")
+ sub.itemL(text="NORMALS")
+ sub.itemR(curve, "vertex_normal_flip")
+
+
+class DATA_PT_geometry(DataButtonsPanel):
+ __idname__ = "DATA_PT_geometry"
+ __label__ = "Geometry"
+
+ def draw(self, context):
+ curve = context.main.curves[0]
+ layout = self.layout
+
+ if not curve:
+ return
+
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemL(text="Modification:")
+ sub.itemR(curve, "width")
+ sub.itemR(curve, "extrude")
+ sub.itemR(curve, "taper_object")
+ sub = split.column()
+ sub.itemL(text="Bevel:")
+ sub.itemR(curve, "bevel_depth", text="Depth")
+ sub.itemR(curve, "bevel_resolution", text="Resolution")
+ sub.itemR(curve, "bevel_object")
+
+
+
+
+class DATA_PT_pathanim(DataButtonsPanel):
+ __idname__ = "DATA_PT_pathanim"
+ __label__ = "Path Animation"
+
+ def draw(self, context):
+ curve = context.main.curves[0]
+ layout = self.layout
+
+ if not curve:
+ return
+
+
+ split = layout.split()
+ sub = split.column(1)
+ sub.itemR(curve, "path", text="Enable")
+
+
+ split = layout.split()
+ sub = split.column()
+ sub.itemR(curve, "path_length", text="Frames")
+ sub.itemR(curve, "follow")
+
+ sub = split.column()
+ sub.itemR(curve, "stretch")
+ sub.itemR(curve, "offset_path_distance", text="Offset Children")
+
+
+class DATA_PT_current_curve(DataButtonsPanel):
+ __idname__ = "DATA_PT_current_curve"
+ __label__ = "Current Curve"
+
+ def draw(self, context):
+ currentcurve = context.main.curves[0].curves[0]
+ layout = self.layout
+
+ if not currentcurve:
+ return
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemL(text="Cyclic:")
+ sub.itemR(currentcurve, "cyclic_u", text="U")
+ sub.itemR(currentcurve, "cyclic_v", text="V")
+ sub.itemL(text="Order:")
+ sub.itemR(currentcurve, "order_u", text="U")
+ sub.itemR(currentcurve, "order_v", text="V")
+ sub.itemL(text="Point Count:")
+ sub.itemR(currentcurve, "point_count_u", text="U")
+ sub.itemR(currentcurve, "point_count_v", text="V")
+ sub.itemL(text="Endpoints:")
+ sub.itemR(currentcurve, "endpoint_u", text="U")
+ sub.itemR(currentcurve, "endpoint_v", text="V")
+ sub = split.column()
+ sub.itemL(text="Bezier:")
+ sub.itemR(currentcurve, "bezier_u", text="U")
+ sub.itemR(currentcurve, "bezier_v", text="V")
+ sub.itemL(text="Resolution:")
+ sub.itemR(currentcurve, "resolution_u", text="U")
+ sub.itemR(currentcurve, "resolution_v", text="V")
+ sub.itemL(text="Interpolation:")
+ sub.itemR(currentcurve, "tilt_interpolation", text="Tilt")
+ sub.itemR(currentcurve, "radius_interpolation", text="Tilt")
+ sub.itemR(currentcurve, "smooth")
+
+bpy.types.register(DATA_PT_shape_curve)
+bpy.types.register(DATA_PT_geometry)
+bpy.types.register(DATA_PT_pathanim)
+bpy.types.register(DATA_PT_current_curve)
diff --git a/release/ui/buttons_data_modifier.py b/release/ui/buttons_data_modifier.py
index b93f0d6f218..a28a978080d 100644
--- a/release/ui/buttons_data_modifier.py
+++ b/release/ui/buttons_data_modifier.py
@@ -4,7 +4,7 @@ import bpy
class DataButtonsPanel(bpy.types.Panel):
__space_type__ = "BUTTONS_WINDOW"
__region_type__ = "WINDOW"
- __context__ = "data"
+ __context__ = "modifier"
def poll(self, context):
ob = context.active_object
diff --git a/release/ui/buttons_data_text.py b/release/ui/buttons_data_text.py
new file mode 100644
index 00000000000..8fbcf083c98
--- /dev/null
+++ b/release/ui/buttons_data_text.py
@@ -0,0 +1,135 @@
+
+import bpy
+
+class DataButtonsPanel(bpy.types.Panel):
+ __space_type__ = "BUTTONS_WINDOW"
+ __region_type__ = "WINDOW"
+ __context__ = "data"
+
+ def poll(self, context):
+ ob = context.active_object
+ return (ob and ob.type == 'TEXT')
+
+class DATA_PT_shape_text(DataButtonsPanel):
+ __idname__ = "DATA_PT_shape_text"
+ __label__ = "Shape"
+
+ def draw(self, context):
+ curve = context.main.curves[0]
+ layout = self.layout
+
+ if not curve:
+ return
+ row = layout.row()
+ row.itemR(curve, "curve_2d")
+
+ split = layout.split()
+
+ sub = split.column()
+ sub.itemL(text="Caps:")
+ sub.itemR(curve, "front")
+ sub.itemR(curve, "back")
+
+ sub.itemL(text="Textures:")
+ sub.itemR(curve, "uv_orco")
+ sub.itemR(curve, "autotexspace")
+
+ sub = split.column()
+ sub.itemL(text="Resolution:")
+ sub.itemR(curve, "resolution_u", text="Preview U")
+ sub.itemR(curve, "resolution_v", text="Preview V")
+ sub.itemR(curve, "render_resolution_u", text="Render U")
+ sub.itemR(curve, "render_resolution_v", text="Render V")
+
+ sub.itemL(text="Display:")
+ sub.itemR(curve, "fast")
+
+
+class DATA_PT_font(DataButtonsPanel):
+ __idname__ = "DATA_PT_font"
+ __label__ = "Font"
+
+ def draw(self, context):
+ text = context.main.curves[0]
+ layout = self.layout
+
+ if not text:
+ return
+
+ layout.row()
+ layout.itemR(text, "font")
+
+ split = layout.split()
+
+ sub = split.column()
+
+ # sub.itemR(text, "style")
+ sub.itemR(text, "bold")
+ sub.itemR(text, "italic")
+ sub.itemR(text, "underline")
+ sub.itemR(text, "text_size")
+ sub.itemR(text, "shear")
+
+ sub = split.column()
+
+ sub.itemR(text, "text_on_curve")
+ sub.itemR(text, "family")
+ sub.itemL(text="Underline:")
+ sub.itemR(text, "ul_position", text="Position")
+ sub.itemR(text, "ul_height", text="Height")
+
+ # sub.itemR(text, "edit_format")
+
+
+
+
+
+class DATA_PT_paragraph(DataButtonsPanel):
+ __idname__ = "DATA_PT_paragraph"
+ __label__ = "Paragraph"
+
+ def draw(self, context):
+ text = context.main.curves[0]
+ layout = self.layout
+
+ if not text:
+ return
+
+ row = layout.row()
+ row.itemL(text="Align:")
+ row = layout.row()
+ row.itemR(text, "spacemode", expand=True)
+
+ split = layout.split()
+
+ sub = split.column()
+
+ sub.itemL(text="Spacing:")
+ sub.itemR(text, "spacing", text="Character")
+ sub.itemR(text, "word_spacing", text="Word")
+ sub.itemR(text, "line_dist", text="Line")
+
+ sub = split.column()
+ sub.itemL(text="Offset:")
+ sub.itemR(text, "x_offset", text="X")
+ sub.itemR(text, "y_offset", text="Y")
+ sub.itemR(text, "wrap")
+
+class DATA_PT_textboxes(DataButtonsPanel):
+ __idname__ = "DATA_PT_textboxes"
+ __label__ = "Text Boxes"
+
+ def draw(self, context):
+ text = context.main.curves[0]
+ layout = self.layout
+
+ if not text:
+ return
+
+
+
+bpy.types.register(DATA_PT_shape_text)
+bpy.types.register(DATA_PT_font)
+bpy.types.register(DATA_PT_paragraph)
+bpy.types.register(DATA_PT_textboxes)
+
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c
index 09f11f9129d..91b88ad5b1b 100644
--- a/source/blender/editors/space_buttons/buttons_header.c
+++ b/source/blender/editors/space_buttons/buttons_header.c
@@ -153,7 +153,7 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
xco+=XIC+xmax;
}
-
+ // DATA Icons
if(ob) {
switch(ob->type) {
case OB_EMPTY: dataicon= ICON_EMPTY_DATA; break;
@@ -185,24 +185,30 @@ void buttons_header_buttons(const bContext *C, ARegion *ar)
if((ob && (ob->type != OB_ARMATURE)) && (sbuts->mainb == (float)BCONTEXT_BONE))
sbuts->mainb = (float)BCONTEXT_DATA;
+ if(!ob && !ELEM(sbuts->mainb, (float)BCONTEXT_SCENE, (float)BCONTEXT_WORLD))
+ sbuts->mainb = (float)BCONTEXT_WORLD;
+
uiBlockBeginAlign(block);
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_SCENE, xco, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_SCENE, 0, 0, "Scene");
uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_WORLD, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_WORLD, 0, 0, "World");
- uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object");
- uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, dataicon, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data");
- if(ob && ELEM5(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT))
- uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_MATERIAL, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material");
- if(ob && ELEM6(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT, OB_LAMP))
- uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture");
- if(ob && ELEM5(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT))
- uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles");
-
- if(ob && ELEM6(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT, OB_EMPTY))
- uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics");
-
- if(ob && (ob->type == OB_ARMATURE))
- uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone");
-
+ if(ob) {
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_OBJECT_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_OBJECT, 0, 0, "Object");
+
+ if(ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE))
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_MODIFIER, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MODIFIER, 0, 0, "Modifier");
+
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, dataicon, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_DATA, 0, 0, "Object Data");
+ if((ob->type == OB_ARMATURE))
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_BONE_DATA, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_BONE, 0, 0, "Bone");
+ if(ELEM5(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT))
+ uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_MATERIAL, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_MATERIAL, 0, 0, "Material");
+ if(ELEM6(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT, OB_LAMP))
+ uiDefIconButS(block, ROW, B_BUTSPREVIEW, ICON_TEXTURE, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_TEXTURE, 0, 0, "Texture");
+ if(ELEM5(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT))
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PARTICLES, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PARTICLE, 0, 0, "Particles");
+ if(ELEM6(ob->type, OB_MESH, OB_SURF, OB_MBALL, OB_CURVE, OB_FONT, OB_EMPTY))
+ uiDefIconButS(block, ROW, B_CONTEXT_SWITCH, ICON_PHYSICS, xco+=XIC, yco, XIC, YIC, &(sbuts->mainb), 0.0, (float)BCONTEXT_PHYSICS, 0, 0, "Physics");
+ }
xco+= XIC;
uiBlockEndAlign(block);
diff --git a/source/blender/editors/space_buttons/buttons_intern.h b/source/blender/editors/space_buttons/buttons_intern.h
index cc8591f1368..6050b4f0562 100644
--- a/source/blender/editors/space_buttons/buttons_intern.h
+++ b/source/blender/editors/space_buttons/buttons_intern.h
@@ -44,6 +44,7 @@ struct bContext;
#define BCONTEXT_PHYSICS 7
#define BCONTEXT_GAME 8
#define BCONTEXT_BONE 9
+#define BCONTEXT_MODIFIER 10
/* buts->scaflag */
#define BUTS_SENS_SEL 1
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index b0a9fb68ddf..785f0d0b89b 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -187,6 +187,8 @@ static void buttons_main_area_draw(const bContext *C, ARegion *ar)
ED_region_panels(C, ar, vertical, "physics");
else if(sbuts->mainb == BCONTEXT_BONE)
ED_region_panels(C, ar, vertical, "bone");
+ else if(sbuts->mainb == BCONTEXT_MODIFIER)
+ ED_region_panels(C, ar, vertical, "modifier");
sbuts->re_align= 0;
sbuts->mainbo= sbuts->mainb;
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 9c0cffb547a..2fd453c9ff7 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -4760,7 +4760,7 @@ static char *view3d_modeselect_pup(Scene *scene)
if(ob)
str += sprintf(str, formatstr, "Object Mode", V3D_OBJECTMODE_SEL, ICON_OBJECT_DATA);
else
- str += sprintf(str, formatstr, " ", V3D_OBJECTMODE_SEL, ICON_OBJECT_DATA);
+ str += sprintf(str, formatstr, "Object Mode", V3D_OBJECTMODE_SEL, ICON_OBJECT_DATA);
if(ob==NULL) return string;
diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c
index 284f966bedd..c7f7b8cfebc 100644
--- a/source/blender/makesrna/intern/rna_armature.c
+++ b/source/blender/makesrna/intern/rna_armature.c
@@ -165,8 +165,8 @@ static void rna_def_bone(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Active", "Bone was the last bone clicked on (most operations are applied to only this bone)");
prop= RNA_def_property(srna, "hinge", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_HINGE);
- RNA_def_property_ui_text(prop, "Hinge", "Bone doesn't inherit rotation or scale from parent bone.");
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", BONE_HINGE);
+ RNA_def_property_ui_text(prop, "Inherit Rotation", "Bone doesn't inherit rotation or scale from parent bone.");
prop= RNA_def_property(srna, "editmode_hidden", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_HIDDEN_A);
@@ -182,7 +182,7 @@ static void rna_def_bone(BlenderRNA *brna)
prop= RNA_def_property(srna, "inherit_scale", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", BONE_NO_SCALE);
- RNA_def_property_ui_text(prop, "Inherit scale", "Bone inherits scaling from parent bone.");
+ RNA_def_property_ui_text(prop, "Inherit Scale", "Bone inherits scaling from parent bone.");
prop= RNA_def_property(srna, "draw_wire", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", BONE_DRAWWIRE);
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index 275a11377e2..718f7d935f9 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -292,9 +292,9 @@ static void rna_def_font(BlenderRNA *brna, StructRNA *srna)
PropertyRNA *prop;
static EnumPropertyItem prop_align_items[] = {
- {CU_LEFT, "LEFT", "Left Align", "Align text to the left"},
- {CU_MIDDLE, "CENTRAL", "Central Align", "Center text"},
- {CU_RIGHT, "RIGHT", "Right Align", "Align text to the right"},
+ {CU_LEFT, "LEFT", "Left", "Align text to the left"},
+ {CU_MIDDLE, "CENTRAL", "Center", "Center text"},
+ {CU_RIGHT, "RIGHT", "Right", "Align text to the right"},
{CU_JUSTIFY, "JUSTIFY", "Justify", "Align to the left and the right"},
{CU_FLUSH, "FLUSH", "Flush", "Align to the left and the right, with equal character spacing"},
{0, NULL, NULL, NULL}};