| 
									
										
										
										
											2009-12-07 11:50:05 +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 ##### | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # <pep8 compliant> | 
					
						
							|  |  |  | import bpy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GRAPH_HT_header(bpy.types.Header): | 
					
						
							|  |  |  |     bl_space_type = 'GRAPH_EDITOR' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         st = context.space_data | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         row = layout.row(align=True) | 
					
						
							|  |  |  |         row.template_header() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if context.area.show_menus: | 
					
						
							|  |  |  |             sub = row.row(align=True) | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |             sub.menu("GRAPH_MT_view") | 
					
						
							|  |  |  |             sub.menu("GRAPH_MT_select") | 
					
						
							|  |  |  |             sub.menu("GRAPH_MT_channel") | 
					
						
							|  |  |  |             sub.menu("GRAPH_MT_key") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.prop(st, "mode", text="") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.template_dopesheet_filter(st.dopesheet) | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.prop(st, "autosnap", text="") | 
					
						
							|  |  |  |         layout.prop(st, "pivot_point", text="", icon_only=True) | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         row = layout.row(align=True) | 
					
						
							|  |  |  |         row.operator("graph.copy", text="", icon='ICON_COPYDOWN') | 
					
						
							|  |  |  |         row.operator("graph.paste", text="", icon='ICON_PASTEDOWN') | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         row = layout.row(align=True) | 
					
						
							|  |  |  |         # these likely need new icons | 
					
						
							|  |  |  |         row.operator("graph.ghost_curves_create", text="", icon='ICON_GHOST_ENABLED') | 
					
						
							|  |  |  |         row.operator("graph.ghost_curves_clear", text="", icon='ICON_GHOST_DISABLED') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class GRAPH_MT_view(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "View" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         st = context.space_data | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.column() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.properties") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.prop(st, "show_cframe_indicator") | 
					
						
							|  |  |  |         layout.prop(st, "show_cursor") | 
					
						
							|  |  |  |         layout.prop(st, "show_sliders") | 
					
						
							|  |  |  |         layout.prop(st, "automerge_keyframes") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.handles_view_toggle") | 
					
						
							|  |  |  |         layout.prop(st, "only_selected_curves_handles") | 
					
						
							|  |  |  |         layout.prop(st, "only_selected_keyframe_handles") | 
					
						
							|  |  |  |         layout.operator("anim.time_toggle") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.previewrange_set") | 
					
						
							|  |  |  |         layout.operator("anim.previewrange_clear") | 
					
						
							|  |  |  |         layout.operator("graph.previewrange_set") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.frame_jump") | 
					
						
							|  |  |  |         layout.operator("graph.view_all") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("screen.area_dupli") | 
					
						
							|  |  |  |         layout.operator("screen.screen_full_area") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  | class GRAPH_MT_select(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "Select" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.column() | 
					
						
							|  |  |  |         # This is a bit misleading as the operator's default text is "Select All" while it actually *toggles* All/None | 
					
						
							|  |  |  |         layout.operator("graph.select_all_toggle") | 
					
						
							|  |  |  |         layout.operator("graph.select_all_toggle", text="Invert Selection").invert = True | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.select_border") | 
					
						
							|  |  |  |         layout.operator("graph.select_border", text="Border Axis Range").axis_range = True | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.select_column", text="Columns on Selected Keys").mode = 'KEYS' | 
					
						
							|  |  |  |         layout.operator("graph.select_column", text="Column on Current Frame").mode = 'CFRA' | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.operator("graph.select_column", text="Columns on Selected Markers").mode = 'MARKERS_COLUMN' | 
					
						
							|  |  |  |         layout.operator("graph.select_column", text="Between Selected Markers").mode = 'MARKERS_BETWEEN' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  | class GRAPH_MT_channel(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "Channel" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_toggle") | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_enable") | 
					
						
							|  |  |  |         layout.operator("anim.channels_setting_disable") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.channels_editable_toggle") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("anim.channels_expand") | 
					
						
							|  |  |  |         layout.operator("anim.channels_collapse") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  | class GRAPH_MT_key(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "Key" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.menu("GRAPH_MT_key_transform", text="Transform") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.operator_menu_enum("graph.snap", property="type", text="Snap") | 
					
						
							|  |  |  |         layout.operator_menu_enum("graph.mirror", property="type", text="Mirror") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.keyframe_insert") | 
					
						
							|  |  |  |         layout.operator("graph.fmodifier_add") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.duplicate") | 
					
						
							|  |  |  |         layout.operator("graph.delete") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator_menu_enum("graph.handle_type", property="type", text="Handle Type") | 
					
						
							|  |  |  |         layout.operator_menu_enum("graph.interpolation_type", property="type", text="Interpolation Mode") | 
					
						
							|  |  |  |         layout.operator_menu_enum("graph.extrapolation_type", property="type", text="Extrapolation Mode") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.clean") | 
					
						
							|  |  |  |         layout.operator("graph.sample") | 
					
						
							|  |  |  |         layout.operator("graph.bake") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  |         layout.separator() | 
					
						
							|  |  |  |         layout.operator("graph.copy") | 
					
						
							|  |  |  |         layout.operator("graph.paste") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  | class GRAPH_MT_key_transform(bpy.types.Menu): | 
					
						
							|  |  |  |     bl_label = "Transform" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def draw(self, context): | 
					
						
							|  |  |  |         layout = self.layout | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         layout.column() | 
					
						
							|  |  |  |         layout.operator("tfm.translate", text="Grab/Move") | 
					
						
							|  |  |  |         layout.operator("tfm.transform", text="Extend").mode = 'TIME_EXTEND' | 
					
						
							|  |  |  |         layout.operator("tfm.rotate", text="Rotate") | 
					
						
							|  |  |  |         layout.operator("tfm.resize", text="Scale") | 
					
						
							| 
									
										
										
										
											2009-12-07 12:11:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-12-07 11:50:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | bpy.types.register(GRAPH_HT_header) # header/menu classes | 
					
						
							|  |  |  | bpy.types.register(GRAPH_MT_view) | 
					
						
							|  |  |  | bpy.types.register(GRAPH_MT_select) | 
					
						
							|  |  |  | bpy.types.register(GRAPH_MT_channel) | 
					
						
							|  |  |  | bpy.types.register(GRAPH_MT_key) | 
					
						
							|  |  |  | bpy.types.register(GRAPH_MT_key_transform) |