diff options
Diffstat (limited to 'release/scripts/startup/bl_ui/space_view3d.py')
-rw-r--r-- | release/scripts/startup/bl_ui/space_view3d.py | 264 |
1 files changed, 231 insertions, 33 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index bb0ad001c34..8db6f81ea51 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -118,6 +118,18 @@ class VIEW3D_HT_header(Header): row.operator("pose.paste", text="", icon='PASTEDOWN').flipped = False row.operator("pose.paste", text="", icon='PASTEFLIPDOWN').flipped = True + # GPencil + if context.gpencil_data and context.gpencil_data.use_stroke_edit_mode: + row = layout.row(align=True) + row.operator("gpencil.copy", text="", icon='COPYDOWN') + row.operator("gpencil.paste", text="", icon='PASTEDOWN') + + layout.prop(context.gpencil_data, "use_onion_skinning", text="Onion Skins", icon='PARTICLE_PATH') # XXX: icon + + layout.prop(context.tool_settings.gpencil_sculpt, "use_select_mask") + + + class VIEW3D_MT_editor_menus(Menu): bl_space_type = 'VIEW3D_MT_editor_menus' @@ -131,11 +143,14 @@ class VIEW3D_MT_editor_menus(Menu): obj = context.active_object mode_string = context.mode edit_object = context.edit_object + gp_edit = context.gpencil_data and context.gpencil_data.use_stroke_edit_mode layout.menu("VIEW3D_MT_view") # Select Menu - if mode_string in {'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE'}: + if gp_edit: + layout.menu("VIEW3D_MT_select_gpencil") + elif mode_string in {'PAINT_WEIGHT', 'PAINT_VERTEX', 'PAINT_TEXTURE'}: mesh = obj.data if mesh.use_paint_mask: layout.menu("VIEW3D_MT_select_paint_mask") @@ -144,7 +159,9 @@ class VIEW3D_MT_editor_menus(Menu): elif mode_string != 'SCULPT': layout.menu("VIEW3D_MT_select_%s" % mode_string.lower()) - if mode_string == 'OBJECT': + if gp_edit: + pass + elif mode_string == 'OBJECT': layout.menu("INFO_MT_add", text="Add") elif mode_string == 'EDIT_MESH': layout.menu("INFO_MT_mesh_add", text="Add") @@ -157,7 +174,9 @@ class VIEW3D_MT_editor_menus(Menu): elif mode_string == 'EDIT_ARMATURE': layout.menu("INFO_MT_edit_armature_add", text="Add") - if edit_object: + if gp_edit: + layout.menu("VIEW3D_MT_edit_gpencil") + elif edit_object: layout.menu("VIEW3D_MT_edit_%s" % edit_object.type.lower()) elif obj: if mode_string != 'PAINT_TEXTURE': @@ -419,6 +438,7 @@ class VIEW3D_MT_view(Menu): layout.operator("view3d.clip_border", text="Clipping Border...") layout.operator("view3d.zoom_border", text="Zoom Border...") layout.operator("view3d.render_border", text="Render Border...").camera_only = False + layout.operator("view3d.clear_render_border") layout.separator() @@ -456,8 +476,8 @@ class VIEW3D_MT_view_navigation(Menu): layout.separator() - layout.operator("view3d.view_roll", text="Roll Left").angle = pi / -12.0 - layout.operator("view3d.view_roll", text="Roll Right").angle = pi / 12.0 + layout.operator("view3d.view_roll", text="Roll Left").type = 'LEFT' + layout.operator("view3d.view_roll", text="Roll Right").type = 'RIGHT' layout.separator() @@ -537,8 +557,40 @@ class VIEW3D_MT_view_cameras(Menu): layout.operator("view3d.object_as_camera") layout.operator("view3d.viewnumpad", text="Active Camera").type = 'CAMERA' + # ********** Select menus, suffix from context.mode ********** +class VIEW3D_MT_select_object_more_less(Menu): + bl_label = "Select More/Less" + + def draw(self, context): + layout = self.layout + + layout = self.layout + + layout.operator("object.select_more", text="More") + layout.operator("object.select_less", text="Less") + + layout.separator() + + props = layout.operator("object.select_hierarchy", text="Parent") + props.extend = False + props.direction = 'PARENT' + + props = layout.operator("object.select_hierarchy", text="Child") + props.extend = False + props.direction = 'CHILD' + + layout.separator() + + props = layout.operator("object.select_hierarchy", text="Extend Parent") + props.extend = True + props.direction = 'PARENT' + + props = layout.operator("object.select_hierarchy", text="Extend Child") + props.extend = True + props.direction = 'CHILD' + class VIEW3D_MT_select_object(Menu): bl_label = "Select" @@ -561,29 +613,22 @@ class VIEW3D_MT_select_object(Menu): layout.separator() + layout.menu("VIEW3D_MT_select_object_more_less") + + layout.separator() + layout.operator_menu_enum("object.select_grouped", "type", text="Grouped") layout.operator_menu_enum("object.select_linked", "type", text="Linked") layout.operator("object.select_pattern", text="Select Pattern...") -class VIEW3D_MT_select_pose(Menu): - bl_label = "Select" +class VIEW3D_MT_select_pose_more_less(Menu): + bl_label = "Select More/Less" def draw(self, context): layout = self.layout - layout.operator("view3d.select_border") - layout.operator("view3d.select_circle") - - layout.separator() - - layout.operator("pose.select_all").action = 'TOGGLE' - layout.operator("pose.select_all", text="Inverse").action = 'INVERT' - layout.operator("pose.select_mirror", text="Flip Active") - layout.operator("pose.select_constraint_target", text="Constraint Target") - layout.operator("pose.select_linked", text="Linked") - - layout.separator() + layout = self.layout props = layout.operator("pose.select_hierarchy", text="Parent") props.extend = False @@ -603,6 +648,28 @@ class VIEW3D_MT_select_pose(Menu): props.extend = True props.direction = 'CHILD' + +class VIEW3D_MT_select_pose(Menu): + bl_label = "Select" + + def draw(self, context): + layout = self.layout + + layout.operator("view3d.select_border") + layout.operator("view3d.select_circle") + + layout.separator() + + layout.operator("pose.select_all").action = 'TOGGLE' + layout.operator("pose.select_all", text="Inverse").action = 'INVERT' + layout.operator("pose.select_mirror", text="Flip Active") + layout.operator("pose.select_constraint_target", text="Constraint Target") + layout.operator("pose.select_linked", text="Linked") + + layout.separator() + + layout.menu("VIEW3D_MT_select_pose_more_less") + layout.separator() layout.operator_menu_enum("pose.select_grouped", "type", text="Grouped") @@ -651,6 +718,37 @@ class VIEW3D_MT_edit_mesh_select_similar(Menu): layout.operator("mesh.select_similar_region", text="Face Regions") +class VIEW3D_MT_edit_mesh_select_by_trait(Menu): + bl_label = "Select All by Trait" + + def draw(self, context): + layout = self.layout + if context.scene.tool_settings.mesh_select_mode[2] is False: + layout.operator("mesh.select_non_manifold", text="Non Manifold") + layout.operator("mesh.select_loose", text="Loose Geometry") + layout.operator("mesh.select_interior_faces", text="Interior Faces") + layout.operator("mesh.select_face_by_sides") + + layout.separator() + + layout.operator("mesh.select_ungrouped", text="Ungrouped Verts") + + +class VIEW3D_MT_edit_mesh_select_more_less(Menu): + bl_label = "Select More/Less" + + def draw(self, context): + layout = self.layout + + layout.operator("mesh.select_more", text="More") + layout.operator("mesh.select_less", text="Less") + + layout.separator() + + layout.operator("mesh.select_next_item", text="Next Active") + layout.operator("mesh.select_prev_item", text="Previous Active") + + class VIEW3D_MT_select_edit_mesh(Menu): bl_label = "Select" @@ -680,23 +778,16 @@ class VIEW3D_MT_select_edit_mesh(Menu): layout.separator() - # topology - layout.operator("mesh.select_loose", text="Loose Geometry") - if context.scene.tool_settings.mesh_select_mode[2] is False: - layout.operator("mesh.select_non_manifold", text="Non Manifold") - layout.operator("mesh.select_interior_faces", text="Interior Faces") - layout.operator("mesh.select_face_by_sides") + # other ... + layout.menu("VIEW3D_MT_edit_mesh_select_similar") layout.separator() - # other ... - layout.menu("VIEW3D_MT_edit_mesh_select_similar") - layout.operator("mesh.select_ungrouped", text="Ungrouped Verts") + layout.menu("VIEW3D_MT_edit_mesh_select_by_trait") layout.separator() - layout.operator("mesh.select_more", text="More") - layout.operator("mesh.select_less", text="Less") + layout.menu("VIEW3D_MT_edit_mesh_select_more_less") layout.separator() @@ -788,7 +879,6 @@ class VIEW3D_MT_select_edit_text(Menu): layout.separator() layout.operator("font.text_paste_from_file") - layout.operator("font.text_paste_from_clipboard") layout.separator() @@ -883,6 +973,29 @@ class VIEW3D_MT_select_edit_armature(Menu): layout.operator("object.select_pattern", text="Select Pattern...") +class VIEW3D_MT_select_gpencil(Menu): + bl_label = "Select" + + def draw(self, context): + layout = self.layout + + layout.operator("gpencil.select_border") + layout.operator("gpencil.select_circle") + + layout.separator() + + layout.operator("gpencil.select_all", text="(De)select All").action = 'TOGGLE' + layout.operator("gpencil.select_all", text="Inverse").action = 'INVERT' + layout.operator("gpencil.select_linked", text="Linked") + #layout.operator_menu_enum("gpencil.select_grouped", "type", text="Grouped") + layout.operator("gpencil.select_grouped", text="Grouped") + + layout.separator() + + layout.operator("gpencil.select_more") + layout.operator("gpencil.select_less") + + class VIEW3D_MT_select_paint_mask(Menu): bl_label = "Select" @@ -1114,6 +1227,8 @@ class VIEW3D_MT_object(Menu): def draw(self, context): layout = self.layout + view = context.space_data + is_local_view = (view.local_view is not None) layout.operator("ed.undo") layout.operator("ed.redo") @@ -1165,7 +1280,13 @@ class VIEW3D_MT_object(Menu): layout.separator() - layout.operator("object.move_to_layer", text="Move to Layer...") + if is_local_view: + layout.operator_context = 'EXEC_REGION_WIN' + layout.operator("object.move_to_layer", text="Move out of Local View") + layout.operator_context = 'INVOKE_REGION_WIN' + else: + layout.operator("object.move_to_layer", text="Move to Layer...") + layout.menu("VIEW3D_MT_object_showhide") layout.operator_menu_enum("object.convert", "target") @@ -2380,6 +2501,7 @@ class VIEW3D_MT_edit_mesh_faces(Menu): layout.operator("mesh.bevel").vertex_only = False layout.operator("mesh.solidify") layout.operator("mesh.intersect") + layout.operator("mesh.intersect_boolean") layout.operator("mesh.wireframe") layout.separator() @@ -2806,6 +2928,7 @@ class VIEW3D_MT_edit_armature_roll(Menu): layout.separator() layout.operator("transform.transform", text="Set Roll").mode = 'BONE_ROLL' + layout.operator("armature.roll_clear") class VIEW3D_MT_edit_armature_delete(Menu): @@ -2821,6 +2944,81 @@ class VIEW3D_MT_edit_armature_delete(Menu): layout.operator("armature.dissolve", text="Dissolve") +# ********** GPencil Stroke Edit menu ********** + + +class VIEW3D_MT_edit_gpencil(Menu): + bl_label = "GPencil" + + def draw(self, context): + toolsettings = context.tool_settings + + layout = self.layout + + layout.operator("ed.undo") + layout.operator("ed.redo") + layout.operator("ed.undo_history") + + layout.separator() + + layout.operator("gpencil.brush_paint", text="Sculpt Strokes").wait_for_input = True + layout.prop_menu_enum(toolsettings.gpencil_sculpt, "tool", text="Sculpt Brush") + + layout.separator() + + layout.menu("VIEW3D_MT_edit_gpencil_transform") + layout.operator("transform.mirror", text="Mirror") + layout.menu("GPENCIL_MT_snap") + + layout.separator() + + layout.menu("VIEW3D_MT_object_animation") # NOTE: provides keyingset access... + + layout.separator() + + layout.menu("VIEW3D_MT_edit_gpencil_delete") + layout.operator("gpencil.duplicate_move", text="Duplicate") + + layout.separator() + + layout.operator("gpencil.copy", text="Copy") + layout.operator("gpencil.paste", text="Paste") + + layout.separator() + + layout.prop_menu_enum(toolsettings, "proportional_edit") + layout.prop_menu_enum(toolsettings, "proportional_edit_falloff") + + layout.separator() + + layout.operator("gpencil.reveal") + layout.operator("gpencil.hide", text="Show Active Layer Only").unselected = True + layout.operator("gpencil.hide", text="Hide Active Layer").unselected = False + + layout.separator() + + layout.operator_menu_enum("gpencil.move_to_layer", "layer", text="Move to Layer") + layout.operator_menu_enum("gpencil.convert", "type", text="Convert to Geometry...") + + +class VIEW3D_MT_edit_gpencil_transform(Menu): + bl_label = "Transform" + + def draw(self, context): + layout = self.layout + + layout.operator("transform.translate") + layout.operator("transform.rotate") + layout.operator("transform.resize", text="Scale") + + layout.separator() + + layout.operator("transform.bend", text="Bend") + layout.operator("transform.shear", text="Shear") + layout.operator("transform.tosphere", text="To Sphere") + layout.operator("transform.transform", text="Shrink Fatten").mode = 'GPENCIL_SHRINKFATTEN' + + # ********** Panel ********** @@ -3046,7 +3244,7 @@ class VIEW3D_PT_view3d_shading(Panel): col.prop(view, "use_matcap") if view.use_matcap: col.template_icon_view(view, "matcap_icon") - elif view.viewport_shade == 'TEXTURED': + if view.viewport_shade == 'TEXTURED' or context.mode == 'PAINT_TEXTURE': if scene.render.use_shading_nodes or gs.material_mode != 'GLSL': col.prop(view, "show_textured_shadeless") |