more ui api changes.
[blender.git] / release / scripts / ui / space_outliner.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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18
19 # <pep8 compliant>
20 import bpy
21
22
23 class OUTLINER_HT_header(bpy.types.Header):
24     bl_space_type = 'OUTLINER'
25
26     def draw(self, context):
27         layout = self.layout
28
29         space = context.space_data
30         scene = context.scene
31         ks = context.scene.active_keying_set
32
33         row = layout.row(align=True)
34         row.template_header()
35
36         if context.area.show_menus:
37             sub = row.row(align=True)
38             sub.menu("OUTLINER_MT_view")
39             if space.display_mode == 'DATABLOCKS':
40                 sub.menu("OUTLINER_MT_edit_datablocks")
41
42         layout.prop(space, "display_mode", text="")
43
44         layout.separator()
45
46         if space.display_mode == 'DATABLOCKS':
47             row = layout.row(align=True)
48             row.operator("outliner.keyingset_add_selected", icon='ICON_ZOOMIN', text="")
49             row.operator("outliner.keyingset_remove_selected", icon='ICON_ZOOMOUT', text="")
50
51             if ks:
52                 row = layout.row(align=False)
53                 row.prop_object(scene, "active_keying_set", scene, "keying_sets", text="")
54
55                 row = layout.row(align=True)
56                 row.operator("anim.insert_keyframe", text="", icon='ICON_KEY_HLT')
57                 row.operator("anim.delete_keyframe", text="", icon='ICON_KEY_DEHLT')
58             else:
59                 row = layout.row(align=False)
60                 row.label(text="No Keying Set active")
61
62
63 class OUTLINER_MT_view(bpy.types.Menu):
64     bl_label = "View"
65
66     def draw(self, context):
67         layout = self.layout
68
69         space = context.space_data
70
71         col = layout.column()
72         if space.display_mode not in ('DATABLOCKS', 'USER_PREFERENCES', 'KEYMAPS'):
73             col.prop(space, "show_restriction_columns")
74             col.separator()
75             col.operator("outliner.show_active")
76
77         col.operator("outliner.show_one_level")
78         col.operator("outliner.show_hierarchy")
79
80
81 class OUTLINER_MT_edit_datablocks(bpy.types.Menu):
82     bl_label = "Edit"
83
84     def draw(self, context):
85         layout = self.layout
86
87         col = layout.column()
88
89         col.operator("outliner.keyingset_add_selected")
90         col.operator("outliner.keyingset_remove_selected")
91
92         col.separator()
93
94         col.operator("outliner.drivers_add_selected")
95         col.operator("outliner.drivers_delete_selected")
96
97 bpy.types.register(OUTLINER_HT_header)
98 bpy.types.register(OUTLINER_MT_view)
99 bpy.types.register(OUTLINER_MT_edit_datablocks)