4 class INFO_HT_header(bpy.types.Header):
5 __space_type__ = "INFO"
7 def draw(self, context):
10 st = context.space_data
12 rd = scene.render_data
14 row = layout.row(align=True)
17 if context.area.show_menus:
18 sub = row.row(align=True)
19 sub.itemM("INFO_MT_file")
20 sub.itemM("INFO_MT_add")
21 if rd.use_game_engine:
22 sub.itemM("INFO_MT_game")
24 sub.itemM("INFO_MT_render")
25 sub.itemM("INFO_MT_help")
27 layout.template_ID(context.window, "screen", new="screen.new", unlink="screen.delete")
28 layout.template_ID(context.screen, "scene", new="scene.new", unlink="scene.delete")
30 if rd.multiple_engines:
31 layout.itemR(rd, "engine", text="")
35 layout.template_operator_search()
36 layout.template_running_jobs()
38 layout.itemL(text=scene.statistics())
40 class INFO_MT_file(bpy.types.Menu):
41 __space_type__ = "INFO"
44 def draw(self, context):
47 layout.operator_context = "EXEC_AREA"
48 layout.itemO("wm.read_homefile", text="New")
49 layout.operator_context = "INVOKE_AREA"
50 layout.itemO("wm.open_mainfile", text="Open...")
51 layout.item_menu_enumO("wm.open_recentfile", "file", text="Open Recent")
52 layout.itemO("wm.recover_last_session")
56 layout.operator_context = "EXEC_AREA"
57 layout.itemO("wm.save_mainfile", text="Save")
58 layout.operator_context = "INVOKE_AREA"
59 layout.itemO("wm.save_as_mainfile", text="Save As...")
60 layout.itemO("screen.userpref_show", text="User Preferences...")
64 layout.itemM("INFO_MT_file_import")
65 layout.itemM("INFO_MT_file_export")
69 layout.itemM("INFO_MT_file_external_data")
73 layout.operator_context = "EXEC_AREA"
74 layout.itemO("wm.exit_blender", text="Quit")
76 class INFO_MT_file_import(bpy.types.Menu):
77 __space_type__ = "INFO"
80 def draw(self, context):
83 class INFO_MT_file_export(bpy.types.Menu):
84 __space_type__ = "INFO"
87 def draw(self, context):
90 layout.itemO("export.ply", text="PLY")
92 class INFO_MT_file_external_data(bpy.types.Menu):
93 __space_type__ = "INFO"
94 __label__ = "External Data"
96 def draw(self, context):
99 layout.itemO("file.pack_all", text="Pack into .blend file")
100 layout.itemO("file.unpack_all", text="Unpack into Files...")
104 layout.itemO("file.make_paths_relative")
105 layout.itemO("file.make_paths_absolute")
106 layout.itemO("file.report_missing_files")
107 layout.itemO("file.find_missing_files")
109 class INFO_MT_add(bpy.types.Menu):
110 __space_type__ = "INFO"
113 def draw(self, context):
116 layout.operator_context = "EXEC_SCREEN"
118 layout.item_menu_enumO( "OBJECT_OT_mesh_add", "type", text="Mesh", icon='ICON_OUTLINER_OB_MESH')
119 layout.item_menu_enumO( "OBJECT_OT_curve_add", "type", text="Curve", icon='ICON_OUTLINER_OB_CURVE')
120 layout.item_menu_enumO( "OBJECT_OT_surface_add", "type", text="Surface", icon='ICON_OUTLINER_OB_SURFACE')
121 layout.item_menu_enumO( "OBJECT_OT_metaball_add", "type", 'META', icon='ICON_OUTLINER_OB_META')
122 layout.itemO("OBJECT_OT_text_add", text="Text", icon='ICON_OUTLINER_OB_FONT')
126 layout.itemO("OBJECT_OT_armature_add", text="Armature", icon='ICON_OUTLINER_OB_ARMATURE')
127 layout.item_enumO("OBJECT_OT_object_add", "type", 'LATTICE', icon='ICON_OUTLINER_OB_LATTICE')
128 layout.item_enumO("OBJECT_OT_object_add", "type", 'EMPTY', icon='ICON_OUTLINER_OB_EMPTY')
132 layout.item_enumO("OBJECT_OT_object_add", "type", 'CAMERA', icon='ICON_OUTLINER_OB_CAMERA')
133 layout.item_enumO("OBJECT_OT_object_add", "type", 'LAMP', icon='ICON_OUTLINER_OB_LAMP')
135 class INFO_MT_game(bpy.types.Menu):
136 __space_type__ = "INFO"
139 def draw(self, context):
142 gs = context.scene.game_data
144 layout.itemO("view3d.game_start")
148 layout.itemR(gs, "show_debug_properties")
149 layout.itemR(gs, "show_framerate_profile")
150 layout.itemR(gs, "show_physics_visualization")
151 layout.itemR(gs, "deprecation_warnings")
153 class INFO_MT_render(bpy.types.Menu):
154 __space_type__ = "INFO"
157 def draw(self, context):
160 rd = context.scene.render_data
162 layout.itemO("screen.render", text="Render Image")
163 layout.item_booleanO("screen.render", "animation", True, text="Render Animation")
167 layout.itemO("screen.render_view_show")
169 class INFO_MT_help(bpy.types.Menu):
170 __space_type__ = "INFO"
173 def draw(self, context):
176 layout.itemO("help.manual")
177 layout.itemO("help.release_logs")
181 layout.itemO("help.blender_website")
182 layout.itemO("help.blender_eshop")
183 layout.itemO("help.developer_community")
184 layout.itemO("help.user_community")
186 bpy.types.register(INFO_HT_header)
187 bpy.types.register(INFO_MT_file)
188 bpy.types.register(INFO_MT_file_import)
189 bpy.types.register(INFO_MT_file_export)
190 bpy.types.register(INFO_MT_file_external_data)
191 bpy.types.register(INFO_MT_add)
192 bpy.types.register(INFO_MT_game)
193 bpy.types.register(INFO_MT_render)
194 bpy.types.register(INFO_MT_help)
198 import bpy_ops # XXX - should not need to do this
201 class HelpOperator(bpy.types.Operator):
202 def execute(self, context):
203 try: import webbrowser
204 except: webbrowser = None
207 webbrowser.open(self.__URL__)
209 raise Exception("Operator requires a full Python installation")
213 class HELP_OT_manual(HelpOperator):
214 __idname__ = "help.manual"
216 __URL__ = 'http://wiki.blender.org/index.php/Manual'
218 class HELP_OT_release_logs(HelpOperator):
219 __idname__ = "help.release_logs"
220 __label__ = "Release Logs"
221 __URL__ = 'http://www.blender.org/development/release-logs/'
223 class HELP_OT_blender_website(HelpOperator):
224 __idname__ = "help.blender_website"
225 __label__ = "Blender Website"
226 __URL__ = 'http://www.blender.org/'
228 class HELP_OT_blender_eshop(HelpOperator):
229 __idname__ = "help.blender_eshop"
230 __label__ = "Blender e-Shop"
231 __URL__ = 'http://www.blender3d.org/e-shop'
233 class HELP_OT_developer_community(HelpOperator):
234 __idname__ = "help.developer_community"
235 __label__ = "Developer Community"
236 __URL__ = 'http://www.blender.org/community/get-involved/'
238 class HELP_OT_user_community(HelpOperator):
239 __idname__ = "help.user_community"
240 __label__ = "User Community"
241 __URL__ = 'http://www.blender.org/community/user-community/'
243 bpy.ops.add(HELP_OT_manual)
244 bpy.ops.add(HELP_OT_release_logs)
245 bpy.ops.add(HELP_OT_blender_website)
246 bpy.ops.add(HELP_OT_blender_eshop)
247 bpy.ops.add(HELP_OT_developer_community)
248 bpy.ops.add(HELP_OT_user_community)