| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | # ##### BEGIN GPL LICENSE BLOCK ##### | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  | #  modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  | #  as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  | #  of the License, or (at your option) any later version. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | #  but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | #  GNU General Public License for more details. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | #  along with this program; if not, write to the Free Software Foundation, | 
					
						
							|  |  |  | #  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # ##### END GPL LICENSE BLOCK ##### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import bpy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_HT_header(bpy.types.Header): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_space_type = 'DOPESHEET_EDITOR' | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         st = context.space_data | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         row = layout.row(align=True) | 
					
						
							|  |  |  |         row.template_header() | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         if context.area.show_menus: | 
					
						
							|  |  |  |             sub = row.row(align=True) | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |             sub.menu("DOPESHEET_MT_view") | 
					
						
							|  |  |  |             sub.menu("DOPESHEET_MT_select") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |             if st.mode == 'DOPESHEET' or (st.mode == 'ACTION' and st.action != None): | 
					
						
							|  |  |  |                 sub.menu("DOPESHEET_MT_channel") | 
					
						
							|  |  |  |             elif st.mode == 'GPENCIL': | 
					
						
							|  |  |  |                 # gpencil Channel menu | 
					
						
							|  |  |  |                 pass | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |             if st.mode != 'GPENCIL': | 
					
						
							|  |  |  |                 sub.menu("DOPESHEET_MT_key") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.prop(st, "mode", text="") | 
					
						
							|  |  |  |         layout.prop(st.dopesheet, "display_summary", text="Summary") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         if st.mode == 'DOPESHEET': | 
					
						
							|  |  |  |             layout.template_dopesheet_filter(st.dopesheet) | 
					
						
							|  |  |  |         elif st.mode == 'ACTION': | 
					
						
							|  |  |  |             layout.template_ID(st, "action", new="action.new") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         if st.mode != 'GPENCIL': | 
					
						
							|  |  |  |             layout.prop(st, "autosnap", text="") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         row = layout.row(align=True) | 
					
						
							| 
									
										
										
										
											2009-12-10 10:23:53 +00:00
										 |  |  |         row.operator("action.copy", text="", icon='COPYDOWN') | 
					
						
							|  |  |  |         row.operator("action.paste", text="", icon='PASTEDOWN') | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_MT_view(bpy.types.Menu): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_label = "View" | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         st = context.space_data | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.column() | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.prop(st, "show_cframe_indicator") | 
					
						
							|  |  |  |         layout.prop(st, "show_sliders") | 
					
						
							|  |  |  |         layout.prop(st, "automerge_keyframes") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         if st.show_seconds: | 
					
						
							|  |  |  |             layout.operator("anim.time_toggle", text="Show Frames") | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             layout.operator("anim.time_toggle", text="Show Seconds") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.previewrange_set") | 
					
						
							|  |  |  |         layout.operator("anim.previewrange_clear") | 
					
						
							|  |  |  |         layout.operator("action.previewrange_set") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.frame_jump") | 
					
						
							|  |  |  |         layout.operator("action.view_all") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("screen.area_dupli") | 
					
						
							|  |  |  |         layout.operator("screen.screen_full_area") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_MT_select(bpy.types.Menu): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_label = "Select" | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.column() | 
					
						
							|  |  |  |         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None | 
					
						
							|  |  |  |         layout.operator("action.select_all_toggle") | 
					
						
							|  |  |  |         layout.operator("action.select_all_toggle", text="Invert Selection").invert = True | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.select_border") | 
					
						
							|  |  |  |         layout.operator("action.select_border", text="Border Axis Range").axis_range = True | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.select_column", text="Columns on Selected Keys").mode = 'KEYS' | 
					
						
							|  |  |  |         layout.operator("action.select_column", text="Column on Current Frame").mode = 'CFRA' | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.operator("action.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN' | 
					
						
							|  |  |  |         layout.operator("action.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN' | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_MT_channel(bpy.types.Menu): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_label = "Channel" | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_toggle") | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_enable") | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_disable") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.channels_editable_toggle") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.channels_expand") | 
					
						
							|  |  |  |         layout.operator("anim.channels_collapse") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_MT_key(bpy.types.Menu): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_label = "Key" | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.menu("DOPESHEET_MT_key_transform", text="Transform") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.operator_menu_enum("action.snap", property="type", text="Snap") | 
					
						
							|  |  |  |         layout.operator_menu_enum("action.mirror", property="type", text="Mirror") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         # Inconsistent naming? act/action | 
					
						
							|  |  |  |         layout.operator("act.keyframe_insert") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.duplicate") | 
					
						
							|  |  |  |         layout.operator("action.delete") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator_menu_enum("action.keyframe_type", property="type", text="Keyframe Type") | 
					
						
							|  |  |  |         layout.operator_menu_enum("action.handle_type", property="type", text="Handle Type") | 
					
						
							|  |  |  |         layout.operator_menu_enum("action.interpolation_type", property="type", text="Interpolation Mode") | 
					
						
							|  |  |  |         layout.operator_menu_enum("action.extrapolation_type", property="type", text="Extrapolation Mode") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.clean") | 
					
						
							|  |  |  |         layout.operator("action.sample") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("action.copy") | 
					
						
							|  |  |  |         layout.operator("action.paste") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class DOPESHEET_MT_key_transform(bpy.types.Menu): | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     bl_label = "Transform" | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-08 07:11:43 +00:00
										 |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.operator("tfm.translate", text="Grab/Move") | 
					
						
							|  |  |  |         layout.operator("tfm.transform", text="Extend").mode = 'TIME_EXTEND' | 
					
						
							|  |  |  |         layout.operator("tfm.resize", text="Scale") | 
					
						
							| 
									
										
										
										
											2009-12-07 21:51:44 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_HT_header) # header/menu classes | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_MT_view) | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_MT_select) | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_MT_channel) | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_MT_key) | 
					
						
							|  |  |  | bpy.types.register(DOPESHEET_MT_key_transform) |