rna data path names which are more likely to break animations.
[blender-staging.git] / release / scripts / ui / properties_animviz.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7 #
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 # <pep8 compliant>
20 import bpy
21
22
23 # Generic Panels (Independent of DataType)
24
25
26 class MotionPathButtonsPanel():
27     bl_space_type = 'PROPERTIES'
28     bl_region_type = 'WINDOW'
29     bl_label = "Motion Paths"
30     bl_default_closed = True
31
32     def draw_settings(self, context, avs, bones=False):
33         layout = self.layout
34
35         mps = avs.motion_path
36
37         layout.prop(mps, "type", expand=True)
38
39         split = layout.split()
40
41         col = split.column()
42         sub = col.column(align=True)
43         if (mps.type == 'CURRENT_FRAME'):
44             sub.prop(mps, "frame_before", text="Before")
45             sub.prop(mps, "frame_after", text="After")
46         elif (mps.type == 'RANGE'):
47             sub.prop(mps, "frame_start", text="Start")
48             sub.prop(mps, "frame_end", text="End")
49
50         sub.prop(mps, "frame_step", text="Step")
51         if bones:
52             col.row().prop(mps, "bake_location", expand=True)
53
54         col = split.column()
55         col.label(text="Display:")
56         col.prop(mps, "show_frame_numbers", text="Frame Numbers")
57         col.prop(mps, "show_keyframe_highlight", text="Keyframes")
58         if bones:
59             col.prop(mps, "show_keyframe_action_all", text="+ Non-Grouped Keyframes")
60         col.prop(mps, "show_keyframe_numbers", text="Keyframe Numbers")
61
62
63 # FIXME: this panel still needs to be ported so that it will work correctly with animviz
64 class OnionSkinButtonsPanel():
65     bl_space_type = 'PROPERTIES'
66     bl_region_type = 'WINDOW'
67     bl_label = "Onion Skinning"
68     bl_default_closed = True
69
70     def draw(self, context):
71         layout = self.layout
72
73         arm = context.armature
74
75         layout.prop(arm, "ghost_type", expand=True)
76
77         split = layout.split()
78
79         col = split.column()
80
81         sub = col.column(align=True)
82         if arm.ghost_type == 'RANGE':
83             sub.prop(arm, "ghost_frame_start", text="Start")
84             sub.prop(arm, "ghost_frame_end", text="End")
85             sub.prop(arm, "ghost_size", text="Step")
86         elif arm.ghost_type == 'CURRENT_FRAME':
87             sub.prop(arm, "ghost_step", text="Range")
88             sub.prop(arm, "ghost_size", text="Step")
89
90         col = split.column()
91         col.label(text="Display:")
92         col.prop(arm, "show_only_ghost_selected", text="Selected Only")
93
94
95
96 # NOTE:
97 # The specialised panel types are derived in their respective UI modules
98
99
100
101 def register():
102     pass
103
104
105 def unregister():
106     pass
107
108 if __name__ == "__main__":
109     register()