custom properties panels for most ID types. use subclassing to keep panel UI definitions minimal
This commit is contained in:
@@ -124,6 +124,18 @@ def draw(layout, context, context_member, use_edit=True):
|
|||||||
assign_props(prop, val_draw, key)
|
assign_props(prop, val_draw, key)
|
||||||
|
|
||||||
|
|
||||||
|
class PropertyPanel(bpy.types.Panel):
|
||||||
|
"""
|
||||||
|
The subclass should have its own poll function
|
||||||
|
and the variable '_context_path' MUST be set.
|
||||||
|
"""
|
||||||
|
bl_label = "Custom Properties"
|
||||||
|
bl_default_closed = True
|
||||||
|
|
||||||
|
def draw(self, context):
|
||||||
|
draw(self.layout, context, self._context_path)
|
||||||
|
|
||||||
|
|
||||||
from bpy.props import *
|
from bpy.props import *
|
||||||
|
|
||||||
|
|
||||||
@@ -257,3 +269,4 @@ class WM_OT_properties_remove(bpy.types.Operator):
|
|||||||
item = eval("context.%s" % self.properties.path)
|
item = eval("context.%s" % self.properties.path)
|
||||||
del item[self.properties.property]
|
del item[self.properties.property]
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -55,6 +56,10 @@ class DATA_PT_context_arm(DataButtonsPanel):
|
|||||||
layout.template_ID(ob, "data")
|
layout.template_ID(ob, "data")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_arm(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_skeleton(DataButtonsPanel):
|
class DATA_PT_skeleton(DataButtonsPanel):
|
||||||
bl_label = "Skeleton"
|
bl_label = "Skeleton"
|
||||||
|
|
||||||
@@ -293,16 +298,6 @@ class DATA_PT_iksolver_itasc(DataButtonsPanel):
|
|||||||
row.prop(itasc, "dampeps", text="Eps", slider=True)
|
row.prop(itasc, "dampeps", text="Eps", slider=True)
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_properties(DataButtonsPanel):
|
|
||||||
bl_label = "Properties"
|
|
||||||
bl_default_closed = True
|
|
||||||
|
|
||||||
def draw(self, context):
|
|
||||||
import rna_prop_ui
|
|
||||||
|
|
||||||
rna_prop_ui.draw(self.layout, context, "object.data")
|
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(DATA_PT_context_arm)
|
bpy.types.register(DATA_PT_context_arm)
|
||||||
bpy.types.register(DATA_PT_skeleton)
|
bpy.types.register(DATA_PT_skeleton)
|
||||||
bpy.types.register(DATA_PT_display)
|
bpy.types.register(DATA_PT_display)
|
||||||
@@ -310,4 +305,5 @@ bpy.types.register(DATA_PT_bone_groups)
|
|||||||
bpy.types.register(DATA_PT_paths)
|
bpy.types.register(DATA_PT_paths)
|
||||||
bpy.types.register(DATA_PT_ghost)
|
bpy.types.register(DATA_PT_ghost)
|
||||||
bpy.types.register(DATA_PT_iksolver_itasc)
|
bpy.types.register(DATA_PT_iksolver_itasc)
|
||||||
bpy.types.register(DATA_PT_properties)
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_arm)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -47,6 +48,17 @@ class BONE_PT_context_bone(BoneButtonsPanel):
|
|||||||
row.prop(bone, "name", text="")
|
row.prop(bone, "name", text="")
|
||||||
|
|
||||||
|
|
||||||
|
class BONE_PT_custom_props(BoneButtonsPanel, PropertyPanel):
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _context_path(self):
|
||||||
|
obj = bpy.context.object
|
||||||
|
if obj and obj.mode == 'POSE':
|
||||||
|
return "active_pose_bone"
|
||||||
|
else:
|
||||||
|
return "active_bone"
|
||||||
|
|
||||||
|
|
||||||
class BONE_PT_transform(BoneButtonsPanel):
|
class BONE_PT_transform(BoneButtonsPanel):
|
||||||
bl_label = "Transform"
|
bl_label = "Transform"
|
||||||
|
|
||||||
@@ -376,21 +388,6 @@ class BONE_PT_deform(BoneButtonsPanel):
|
|||||||
col.prop(bone, "cyclic_offset")
|
col.prop(bone, "cyclic_offset")
|
||||||
|
|
||||||
|
|
||||||
class BONE_PT_properties(BoneButtonsPanel):
|
|
||||||
bl_label = "Properties"
|
|
||||||
bl_default_closed = True
|
|
||||||
|
|
||||||
def draw(self, context):
|
|
||||||
import rna_prop_ui
|
|
||||||
# reload(rna_prop_ui)
|
|
||||||
obj = context.object
|
|
||||||
if obj and obj.mode == 'POSE':
|
|
||||||
item = "active_pose_bone"
|
|
||||||
else:
|
|
||||||
item = "active_bone"
|
|
||||||
|
|
||||||
rna_prop_ui.draw(self.layout, context, item)
|
|
||||||
|
|
||||||
bpy.types.register(BONE_PT_context_bone)
|
bpy.types.register(BONE_PT_context_bone)
|
||||||
bpy.types.register(BONE_PT_transform)
|
bpy.types.register(BONE_PT_transform)
|
||||||
bpy.types.register(BONE_PT_transform_locks)
|
bpy.types.register(BONE_PT_transform_locks)
|
||||||
@@ -398,4 +395,5 @@ bpy.types.register(BONE_PT_relations)
|
|||||||
bpy.types.register(BONE_PT_display)
|
bpy.types.register(BONE_PT_display)
|
||||||
bpy.types.register(BONE_PT_inverse_kinematics)
|
bpy.types.register(BONE_PT_inverse_kinematics)
|
||||||
bpy.types.register(BONE_PT_deform)
|
bpy.types.register(BONE_PT_deform)
|
||||||
bpy.types.register(BONE_PT_properties)
|
|
||||||
|
bpy.types.register(BONE_PT_custom_props)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -58,6 +59,10 @@ class DATA_PT_context_camera(DataButtonsPanel):
|
|||||||
layout.template_ID(space, "pin_id")
|
layout.template_ID(space, "pin_id")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_camera(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_camera(DataButtonsPanel):
|
class DATA_PT_camera(DataButtonsPanel):
|
||||||
bl_label = "Lens"
|
bl_label = "Lens"
|
||||||
|
|
||||||
@@ -140,6 +145,9 @@ class DATA_PT_camera_display(DataButtonsPanel):
|
|||||||
sub.active = cam.show_passepartout
|
sub.active = cam.show_passepartout
|
||||||
sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
|
sub.prop(cam, "passepartout_alpha", text="Alpha", slider=True)
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(DATA_PT_context_camera)
|
bpy.types.register(DATA_PT_context_camera)
|
||||||
bpy.types.register(DATA_PT_camera)
|
bpy.types.register(DATA_PT_camera)
|
||||||
bpy.types.register(DATA_PT_camera_display)
|
bpy.types.register(DATA_PT_camera_display)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_camera)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -72,6 +73,10 @@ class DATA_PT_context_curve(DataButtonsPanel):
|
|||||||
layout.template_ID(ob, "data")
|
layout.template_ID(ob, "data")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_curve(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_shape_curve(DataButtonsPanel):
|
class DATA_PT_shape_curve(DataButtonsPanel):
|
||||||
bl_label = "Shape"
|
bl_label = "Shape"
|
||||||
|
|
||||||
@@ -377,6 +382,7 @@ class DATA_PT_textboxes(DataButtonsPanel):
|
|||||||
col.prop(box, "x", text="X")
|
col.prop(box, "x", text="X")
|
||||||
col.prop(box, "y", text="Y")
|
col.prop(box, "y", text="Y")
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(DATA_PT_context_curve)
|
bpy.types.register(DATA_PT_context_curve)
|
||||||
bpy.types.register(DATA_PT_shape_curve)
|
bpy.types.register(DATA_PT_shape_curve)
|
||||||
bpy.types.register(DATA_PT_geometry_curve)
|
bpy.types.register(DATA_PT_geometry_curve)
|
||||||
@@ -385,3 +391,5 @@ bpy.types.register(DATA_PT_active_spline)
|
|||||||
bpy.types.register(DATA_PT_font)
|
bpy.types.register(DATA_PT_font)
|
||||||
bpy.types.register(DATA_PT_paragraph)
|
bpy.types.register(DATA_PT_paragraph)
|
||||||
bpy.types.register(DATA_PT_textboxes)
|
bpy.types.register(DATA_PT_textboxes)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_curve)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -65,6 +66,10 @@ class DATA_PT_context_lamp(DataButtonsPanel):
|
|||||||
layout.template_ID(space, "pin_id")
|
layout.template_ID(space, "pin_id")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_lamp(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_lamp(DataButtonsPanel):
|
class DATA_PT_lamp(DataButtonsPanel):
|
||||||
bl_label = "Lamp"
|
bl_label = "Lamp"
|
||||||
|
|
||||||
@@ -374,6 +379,7 @@ class DATA_PT_falloff_curve(DataButtonsPanel):
|
|||||||
|
|
||||||
self.layout.template_curve_mapping(lamp, "falloff_curve")
|
self.layout.template_curve_mapping(lamp, "falloff_curve")
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(DATA_PT_context_lamp)
|
bpy.types.register(DATA_PT_context_lamp)
|
||||||
bpy.types.register(DATA_PT_preview)
|
bpy.types.register(DATA_PT_preview)
|
||||||
bpy.types.register(DATA_PT_lamp)
|
bpy.types.register(DATA_PT_lamp)
|
||||||
@@ -382,3 +388,5 @@ bpy.types.register(DATA_PT_area)
|
|||||||
bpy.types.register(DATA_PT_spot)
|
bpy.types.register(DATA_PT_spot)
|
||||||
bpy.types.register(DATA_PT_shadow)
|
bpy.types.register(DATA_PT_shadow)
|
||||||
bpy.types.register(DATA_PT_sunsky)
|
bpy.types.register(DATA_PT_sunsky)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_lamp)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -58,6 +59,10 @@ class DATA_PT_context_lattice(DataButtonsPanel):
|
|||||||
layout.template_ID(space, "pin_id")
|
layout.template_ID(space, "pin_id")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_lattice(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_lattice(DataButtonsPanel):
|
class DATA_PT_lattice(DataButtonsPanel):
|
||||||
bl_label = "Lattice"
|
bl_label = "Lattice"
|
||||||
|
|
||||||
@@ -90,5 +95,8 @@ class DATA_PT_lattice(DataButtonsPanel):
|
|||||||
|
|
||||||
layout.prop(lat, "outside")
|
layout.prop(lat, "outside")
|
||||||
|
|
||||||
|
|
||||||
bpy.types.register(DATA_PT_context_lattice)
|
bpy.types.register(DATA_PT_context_lattice)
|
||||||
bpy.types.register(DATA_PT_lattice)
|
bpy.types.register(DATA_PT_lattice)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_lattice)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -58,6 +59,10 @@ class DATA_PT_context_mesh(DataButtonsPanel):
|
|||||||
layout.template_ID(space, "pin_id")
|
layout.template_ID(space, "pin_id")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_mesh(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_normals(DataButtonsPanel):
|
class DATA_PT_normals(DataButtonsPanel):
|
||||||
bl_label = "Normals"
|
bl_label = "Normals"
|
||||||
|
|
||||||
@@ -292,3 +297,6 @@ bpy.types.register(DATA_PT_vertex_groups)
|
|||||||
bpy.types.register(DATA_PT_shape_keys)
|
bpy.types.register(DATA_PT_shape_keys)
|
||||||
bpy.types.register(DATA_PT_uv_texture)
|
bpy.types.register(DATA_PT_uv_texture)
|
||||||
bpy.types.register(DATA_PT_vertex_colors)
|
bpy.types.register(DATA_PT_vertex_colors)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_mesh)
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -58,6 +59,10 @@ class DATA_PT_context_metaball(DataButtonsPanel):
|
|||||||
layout.template_ID(space, "pin_id")
|
layout.template_ID(space, "pin_id")
|
||||||
|
|
||||||
|
|
||||||
|
class DATA_PT_custom_props_metaball(DataButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object.data"
|
||||||
|
|
||||||
|
|
||||||
class DATA_PT_metaball(DataButtonsPanel):
|
class DATA_PT_metaball(DataButtonsPanel):
|
||||||
bl_label = "Metaball"
|
bl_label = "Metaball"
|
||||||
|
|
||||||
@@ -133,3 +138,7 @@ class DATA_PT_metaball_element(DataButtonsPanel):
|
|||||||
bpy.types.register(DATA_PT_context_metaball)
|
bpy.types.register(DATA_PT_context_metaball)
|
||||||
bpy.types.register(DATA_PT_metaball)
|
bpy.types.register(DATA_PT_metaball)
|
||||||
bpy.types.register(DATA_PT_metaball_element)
|
bpy.types.register(DATA_PT_metaball_element)
|
||||||
|
|
||||||
|
bpy.types.register(DATA_PT_custom_props_metaball)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -125,6 +126,11 @@ class MATERIAL_PT_context_material(MaterialButtonsPanel):
|
|||||||
layout.prop(mat, "type", text="")
|
layout.prop(mat, "type", text="")
|
||||||
|
|
||||||
|
|
||||||
|
class MATERIAL_PT_custom_props(MaterialButtonsPanel, PropertyPanel):
|
||||||
|
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||||
|
_context_path = "material"
|
||||||
|
|
||||||
|
|
||||||
class MATERIAL_PT_shading(MaterialButtonsPanel):
|
class MATERIAL_PT_shading(MaterialButtonsPanel):
|
||||||
bl_label = "Shading"
|
bl_label = "Shading"
|
||||||
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'}
|
||||||
@@ -880,3 +886,5 @@ bpy.types.register(MATERIAL_PT_volume_shading)
|
|||||||
bpy.types.register(MATERIAL_PT_volume_lighting)
|
bpy.types.register(MATERIAL_PT_volume_lighting)
|
||||||
bpy.types.register(MATERIAL_PT_volume_transp)
|
bpy.types.register(MATERIAL_PT_volume_transp)
|
||||||
bpy.types.register(MATERIAL_PT_volume_integration)
|
bpy.types.register(MATERIAL_PT_volume_integration)
|
||||||
|
|
||||||
|
bpy.types.register(MATERIAL_PT_custom_props)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -42,6 +43,10 @@ class OBJECT_PT_context_object(ObjectButtonsPanel):
|
|||||||
row.prop(ob, "name", text="")
|
row.prop(ob, "name", text="")
|
||||||
|
|
||||||
|
|
||||||
|
class OBJECT_PT_custom_props(ObjectButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "object"
|
||||||
|
|
||||||
|
|
||||||
class OBJECT_PT_transform(ObjectButtonsPanel):
|
class OBJECT_PT_transform(ObjectButtonsPanel):
|
||||||
bl_label = "Transform"
|
bl_label = "Transform"
|
||||||
|
|
||||||
@@ -300,16 +305,6 @@ class OBJECT_PT_animation(ObjectButtonsPanel):
|
|||||||
row.active = (ob.parent is not None)
|
row.active = (ob.parent is not None)
|
||||||
|
|
||||||
|
|
||||||
class OBJECT_PT_properties(ObjectButtonsPanel):
|
|
||||||
bl_label = "Properties"
|
|
||||||
bl_default_closed = True
|
|
||||||
|
|
||||||
def draw(self, context):
|
|
||||||
import rna_prop_ui
|
|
||||||
# reload(rna_prop_ui)
|
|
||||||
|
|
||||||
rna_prop_ui.draw(self.layout, context, "object")
|
|
||||||
|
|
||||||
bpy.types.register(OBJECT_PT_context_object)
|
bpy.types.register(OBJECT_PT_context_object)
|
||||||
bpy.types.register(OBJECT_PT_transform)
|
bpy.types.register(OBJECT_PT_transform)
|
||||||
bpy.types.register(OBJECT_PT_transform_locks)
|
bpy.types.register(OBJECT_PT_transform_locks)
|
||||||
@@ -318,4 +313,5 @@ bpy.types.register(OBJECT_PT_groups)
|
|||||||
bpy.types.register(OBJECT_PT_display)
|
bpy.types.register(OBJECT_PT_display)
|
||||||
bpy.types.register(OBJECT_PT_duplication)
|
bpy.types.register(OBJECT_PT_duplication)
|
||||||
bpy.types.register(OBJECT_PT_animation)
|
bpy.types.register(OBJECT_PT_animation)
|
||||||
bpy.types.register(OBJECT_PT_properties)
|
|
||||||
|
bpy.types.register(OBJECT_PT_custom_props)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
from properties_physics_common import point_cache_ui
|
from properties_physics_common import point_cache_ui
|
||||||
from properties_physics_common import effector_weights_ui
|
from properties_physics_common import effector_weights_ui
|
||||||
@@ -47,7 +48,7 @@ class ParticleButtonsPanel(bpy.types.Panel):
|
|||||||
return particle_panel_poll(context)
|
return particle_panel_poll(context)
|
||||||
|
|
||||||
|
|
||||||
class PARTICLE_PT_particles(ParticleButtonsPanel):
|
class PARTICLE_PT_context_particles(ParticleButtonsPanel):
|
||||||
bl_label = ""
|
bl_label = ""
|
||||||
bl_show_header = False
|
bl_show_header = False
|
||||||
|
|
||||||
@@ -130,6 +131,10 @@ class PARTICLE_PT_particles(ParticleButtonsPanel):
|
|||||||
split.prop(psys, "reactor_target_particle_system", text="Particle System")
|
split.prop(psys, "reactor_target_particle_system", text="Particle System")
|
||||||
|
|
||||||
|
|
||||||
|
class PARTICLE_PT_custom_props(ParticleButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "particle_system.settings"
|
||||||
|
|
||||||
|
|
||||||
class PARTICLE_PT_emission(ParticleButtonsPanel):
|
class PARTICLE_PT_emission(ParticleButtonsPanel):
|
||||||
bl_label = "Emission"
|
bl_label = "Emission"
|
||||||
|
|
||||||
@@ -992,7 +997,7 @@ class PARTICLE_PT_vertexgroups(ParticleButtonsPanel):
|
|||||||
row.prop_object(psys, "vertex_group_field", ob, "vertex_groups", text="Field")
|
row.prop_object(psys, "vertex_group_field", ob, "vertex_groups", text="Field")
|
||||||
row.prop(psys, "vertex_group_field_negate", text="")
|
row.prop(psys, "vertex_group_field_negate", text="")
|
||||||
|
|
||||||
bpy.types.register(PARTICLE_PT_particles)
|
bpy.types.register(PARTICLE_PT_context_particles)
|
||||||
bpy.types.register(PARTICLE_PT_hair_dynamics)
|
bpy.types.register(PARTICLE_PT_hair_dynamics)
|
||||||
bpy.types.register(PARTICLE_PT_cache)
|
bpy.types.register(PARTICLE_PT_cache)
|
||||||
bpy.types.register(PARTICLE_PT_emission)
|
bpy.types.register(PARTICLE_PT_emission)
|
||||||
@@ -1006,3 +1011,5 @@ bpy.types.register(PARTICLE_PT_children)
|
|||||||
bpy.types.register(PARTICLE_PT_field_weights)
|
bpy.types.register(PARTICLE_PT_field_weights)
|
||||||
bpy.types.register(PARTICLE_PT_force_fields)
|
bpy.types.register(PARTICLE_PT_force_fields)
|
||||||
bpy.types.register(PARTICLE_PT_vertexgroups)
|
bpy.types.register(PARTICLE_PT_vertexgroups)
|
||||||
|
|
||||||
|
bpy.types.register(PARTICLE_PT_custom_props)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -48,6 +49,10 @@ class SCENE_PT_scene(SceneButtonsPanel):
|
|||||||
layout.prop(scene, "set", text="")
|
layout.prop(scene, "set", text="")
|
||||||
|
|
||||||
|
|
||||||
|
class SCENE_PT_custom_props(SceneButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "scene"
|
||||||
|
|
||||||
|
|
||||||
class SCENE_PT_unit(SceneButtonsPanel):
|
class SCENE_PT_unit(SceneButtonsPanel):
|
||||||
bl_label = "Units"
|
bl_label = "Units"
|
||||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||||
@@ -178,3 +183,6 @@ bpy.types.register(SCENE_PT_unit)
|
|||||||
bpy.types.register(SCENE_PT_keying_sets)
|
bpy.types.register(SCENE_PT_keying_sets)
|
||||||
bpy.types.register(SCENE_PT_keying_set_paths)
|
bpy.types.register(SCENE_PT_keying_set_paths)
|
||||||
bpy.types.register(SCENE_PT_physics)
|
bpy.types.register(SCENE_PT_physics)
|
||||||
|
|
||||||
|
bpy.types.register(SCENE_PT_custom_props)
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -149,6 +150,13 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel):
|
|||||||
layout.prop(tex, "type", text="")
|
layout.prop(tex, "type", text="")
|
||||||
|
|
||||||
|
|
||||||
|
class TEXTURE_PT_custom_props(TextureButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "texture"
|
||||||
|
|
||||||
|
def poll(self, context): # use alternate poll since NONE texture type is ok
|
||||||
|
return context.texture
|
||||||
|
|
||||||
|
|
||||||
class TEXTURE_PT_colors(TextureButtonsPanel):
|
class TEXTURE_PT_colors(TextureButtonsPanel):
|
||||||
bl_label = "Colors"
|
bl_label = "Colors"
|
||||||
bl_default_closed = True
|
bl_default_closed = True
|
||||||
@@ -976,3 +984,5 @@ bpy.types.register(TEXTURE_PT_pointdensity_turbulence)
|
|||||||
bpy.types.register(TEXTURE_PT_colors)
|
bpy.types.register(TEXTURE_PT_colors)
|
||||||
bpy.types.register(TEXTURE_PT_mapping)
|
bpy.types.register(TEXTURE_PT_mapping)
|
||||||
bpy.types.register(TEXTURE_PT_influence)
|
bpy.types.register(TEXTURE_PT_influence)
|
||||||
|
|
||||||
|
bpy.types.register(TEXTURE_PT_custom_props)
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
# <pep8 compliant>
|
# <pep8 compliant>
|
||||||
import bpy
|
import bpy
|
||||||
|
from rna_prop_ui import PropertyPanel
|
||||||
|
|
||||||
narrowui = 180
|
narrowui = 180
|
||||||
|
|
||||||
@@ -69,6 +70,10 @@ class WORLD_PT_context_world(WorldButtonsPanel):
|
|||||||
layout.template_ID(scene, "world", new="world.new")
|
layout.template_ID(scene, "world", new="world.new")
|
||||||
|
|
||||||
|
|
||||||
|
class WORLD_PT_custom_props(WorldButtonsPanel, PropertyPanel):
|
||||||
|
_context_path = "world"
|
||||||
|
|
||||||
|
|
||||||
class WORLD_PT_world(WorldButtonsPanel):
|
class WORLD_PT_world(WorldButtonsPanel):
|
||||||
bl_label = "World"
|
bl_label = "World"
|
||||||
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
COMPAT_ENGINES = {'BLENDER_RENDER'}
|
||||||
@@ -232,3 +237,5 @@ bpy.types.register(WORLD_PT_world)
|
|||||||
bpy.types.register(WORLD_PT_ambient_occlusion)
|
bpy.types.register(WORLD_PT_ambient_occlusion)
|
||||||
bpy.types.register(WORLD_PT_mist)
|
bpy.types.register(WORLD_PT_mist)
|
||||||
bpy.types.register(WORLD_PT_stars)
|
bpy.types.register(WORLD_PT_stars)
|
||||||
|
|
||||||
|
bpy.types.register(WORLD_PT_custom_props)
|
||||||
|
|||||||
Reference in New Issue
Block a user