blender/release/ui/buttons_data_mesh.py
William Reynish bd628d9c0c UI
Added cursor location to the view panel in 3D view. 

Removed the Shade Smooth/Flat buttons from mesh data for two reasons:  

These kinds of tools are more appropriate in the tools area, and the context would not always match the selected datablock, if you have multiple objects selected, or if you're viewing the mesh data tab in 'pinned' mode.
The shade smooth/flat buttons are in the edit mode tools area now.
2009-07-24 11:48:45 +00:00

197 lines
5.0 KiB
Python

import bpy
class DataButtonsPanel(bpy.types.Panel):
__space_type__ = "BUTTONS_WINDOW"
__region_type__ = "WINDOW"
__context__ = "data"
def poll(self, context):
return (context.mesh != None)
class DATA_PT_context_mesh(DataButtonsPanel):
__idname__ = "DATA_PT_context_mesh"
__no_header__ = True
def draw(self, context):
layout = self.layout
ob = context.object
mesh = context.mesh
space = context.space_data
split = layout.split(percentage=0.65)
if ob:
split.template_ID(ob, "data")
split.itemS()
elif mesh:
split.template_ID(space, "pin_id")
split.itemS()
class DATA_PT_normals(DataButtonsPanel):
__idname__ = "DATA_PT_normals"
__label__ = "Normals"
def draw(self, context):
layout = self.layout
mesh = context.mesh
split = layout.split()
col = split.column()
col.itemR(mesh, "autosmooth")
colsub = col.column()
colsub.active = mesh.autosmooth
colsub.itemR(mesh, "autosmooth_angle", text="Angle")
sub = split.column()
sub.itemR(mesh, "vertex_normal_flip")
sub.itemR(mesh, "double_sided")
class DATA_PT_vertex_groups(DataButtonsPanel):
__idname__ = "DATA_PT_vertex_groups"
__label__ = "Vertex Groups"
def poll(self, context):
return (context.object and context.object.type in ('MESH', 'LATTICE'))
def draw(self, context):
layout = self.layout
ob = context.object
row = layout.row()
row.template_list(ob, "vertex_groups", ob, "active_vertex_group_index")
col = row.column(align=True)
col.itemO("object.vertex_group_add", icon="ICON_ZOOMIN", text="")
col.itemO("object.vertex_group_remove", icon="ICON_ZOOMOUT", text="")
col.itemO("object.vertex_group_copy", icon="ICON_BLANK1", text="")
if ob.data.users > 1:
col.itemO("object.vertex_group_copy_to_linked", icon="ICON_BLANK1", text="")
group = ob.active_vertex_group
if group:
row = layout.row()
row.itemR(group, "name")
if context.edit_object:
row = layout.row(align=True)
row.itemO("object.vertex_group_assign", text="Assign")
row.itemO("object.vertex_group_remove_from", text="Remove")
row.itemO("object.vertex_group_select", text="Select")
row.itemO("object.vertex_group_deselect", text="Deselect")
layout.itemR(context.tool_settings, "vertex_group_weight", text="Weight")
class DATA_PT_shape_keys(DataButtonsPanel):
__idname__ = "DATA_PT_shape_keys"
__label__ = "Shape Keys"
def poll(self, context):
return (context.object and context.object.type in ('MESH', 'LATTICE'))
def draw(self, context):
layout = self.layout
ob = context.object
key = ob.data.shape_keys
kb = ob.active_shape_key
row = layout.row()
row.template_list(key, "keys", ob, "active_shape_key_index")
col = row.column()
subcol = col.column(align=True)
subcol.itemO("object.shape_key_add", icon="ICON_ZOOMIN", text="")
subcol.itemO("object.shape_key_remove", icon="ICON_ZOOMOUT", text="")
if kb:
col.itemS()
subcol = col.column(align=True)
subcol.itemR(ob, "shape_key_lock", icon="ICON_UNPINNED", text="")
subcol.itemR(kb, "mute", icon="ICON_MUTE_IPO_ON", text="")
if key.relative:
row = layout.row()
row.itemR(key, "relative")
row.itemL()
row = layout.row()
row.itemR(kb, "name")
if ob.active_shape_key_index != 0:
if not ob.shape_key_lock:
row = layout.row(align=True)
row.itemR(kb, "value", text="")
row.itemR(kb, "slider_min", text="Min")
row.itemR(kb, "slider_max", text="Max")
row = layout.row()
row.item_pointerR(kb, "vertex_group", ob, "vertex_groups", text="")
row.item_pointerR(kb, "relative_key", key, "keys", text="")
else:
row = layout.row()
row.itemR(key, "relative")
row.itemR(key, "slurph")
row = layout.row()
row.itemR(kb, "name")
if context.edit_object:
layout.enabled = False
class DATA_PT_uv_texture(DataButtonsPanel):
__idname__ = "DATA_PT_uv_texture"
__label__ = "UV Texture"
def draw(self, context):
layout = self.layout
me = context.mesh
row = layout.row()
col = row.column()
col.template_list(me, "uv_textures", me, "active_uv_texture_index", rows=2)
col = row.column(align=True)
col.itemO("mesh.uv_texture_add", icon="ICON_ZOOMIN", text="")
col.itemO("mesh.uv_texture_remove", icon="ICON_ZOOMOUT", text="")
lay = me.active_uv_texture
if lay:
layout.itemR(lay, "name")
class DATA_PT_vertex_colors(DataButtonsPanel):
__idname__ = "DATA_PT_vertex_colors"
__label__ = "Vertex Colors"
def draw(self, context):
layout = self.layout
me = context.mesh
row = layout.row()
col = row.column()
col.template_list(me, "vertex_colors", me, "active_vertex_color_index", rows=2)
col = row.column(align=True)
col.itemO("mesh.vertex_color_add", icon="ICON_ZOOMIN", text="")
col.itemO("mesh.vertex_color_remove", icon="ICON_ZOOMOUT", text="")
lay = me.active_vertex_color
if lay:
layout.itemR(lay, "name")
bpy.types.register(DATA_PT_context_mesh)
bpy.types.register(DATA_PT_normals)
bpy.types.register(DATA_PT_vertex_groups)
bpy.types.register(DATA_PT_shape_keys)
bpy.types.register(DATA_PT_uv_texture)
bpy.types.register(DATA_PT_vertex_colors)