Removed UI for point cache users.
[blender.git] / release / scripts / startup / bl_ui / space_console.py
index da6c102100b4e8c0c4286af3d7dbcebb17c4f066..327fb94cb95b3bc5908584396faf72bf8bb07a2e 100644 (file)
 
 # <pep8 compliant>
 import bpy
-from bpy.props import StringProperty
+from bpy.types import Header, Menu
 
 
-class CONSOLE_HT_header(bpy.types.Header):
+class CONSOLE_HT_header(Header):
     bl_space_type = 'CONSOLE'
 
     def draw(self, context):
-        layout = self.layout
+        layout = self.layout.row()
+
+        layout.template_header()
+
+        CONSOLE_MT_editor_menus.draw_collapsible(context, layout)
 
-        row = layout.row(align=True)
-        row.template_header()
+        layout.operator("console.autocomplete", text="Autocomplete")
 
-        if context.area.show_menus:
-            sub = row.row(align=True)
-            sub.menu("CONSOLE_MT_console")
 
-        row = layout.row(align=True)
-        row.operator("console.autocomplete", text="Autocomplete")
+class CONSOLE_MT_editor_menus(Menu):
+    bl_idname = "CONSOLE_MT_editor_menus"
+    bl_label = ""
+
+    def draw(self, context):
+        self.draw_menus(self.layout, context)
 
+    @staticmethod
+    def draw_menus(layout, context):
+        layout.menu("CONSOLE_MT_console")
 
-class CONSOLE_MT_console(bpy.types.Menu):
+
+class CONSOLE_MT_console(Menu):
     bl_label = "Console"
 
     def draw(self, context):
         layout = self.layout
-        layout.column()
+
+        layout.operator("console.indent")
+        layout.operator("console.unindent")
+
+        layout.separator()
+
         layout.operator("console.clear")
+        layout.operator("console.clear_line")
+
+        layout.separator()
+
+        layout.operator("console.copy_as_script")
         layout.operator("console.copy")
         layout.operator("console.paste")
         layout.menu("CONSOLE_MT_language")
@@ -52,10 +70,11 @@ class CONSOLE_MT_console(bpy.types.Menu):
         layout.separator()
 
         layout.operator("screen.area_dupli")
-        layout.operator("screen.screen_full_area")
+        layout.operator("screen.screen_full_area", text="Toggle Maximize Area")
+        layout.operator("screen.screen_full_area").use_hide_panels = True
 
 
-class CONSOLE_MT_language(bpy.types.Menu):
+class CONSOLE_MT_language(Menu):
     bl_label = "Languages..."
 
     def draw(self, context):
@@ -68,96 +87,20 @@ class CONSOLE_MT_language(bpy.types.Menu):
         languages = []
         for modname, mod in sys.modules.items():
             if modname.startswith("console_") and hasattr(mod, "execute"):
-                languages.append(modname.split('_', 1)[-1])
+                languages.append(modname.split("_", 1)[-1])
 
         languages.sort()
 
         for language in languages:
-            layout.operator("console.language", text=language[0].upper() + language[1:]).language = language
+            layout.operator("console.language",
+                            text=language.title(),
+                            translate=False).language = language
 
 
 def add_scrollback(text, text_type):
-    for l in text.split('\n'):
-        bpy.ops.console.scrollback_append(text=l.replace('\t', '    '),
-            type=text_type)
-
-
-class ConsoleExec(bpy.types.Operator):
-    '''Execute the current console line as a python expression'''
-    bl_idname = "console.execute"
-    bl_label = "Console Execute"
-
-    def execute(self, context):
-        sc = context.space_data
-
-        module = __import__("console_" + sc.language)
-        execute = getattr(module, "execute", None)
-
-        if execute:
-            return execute(context)
-        else:
-            print("Error: bpy.ops.console.execute_" + sc.language + " - not found")
-            return {'FINISHED'}
-
-
-class ConsoleAutocomplete(bpy.types.Operator):
-    '''Evaluate the namespace up until the cursor and give a list of options or complete the name if there is only one'''
-    bl_idname = "console.autocomplete"
-    bl_label = "Console Autocomplete"
-
-    def execute(self, context):
-        sc = context.space_data
-        module = __import__("console_" + sc.language)
-        autocomplete = getattr(module, "autocomplete", None)
-
-        if autocomplete:
-            return autocomplete(context)
-        else:
-            print("Error: bpy.ops.console.autocomplete_" + sc.language + " - not found")
-            return {'FINISHED'}
-
-
-class ConsoleBanner(bpy.types.Operator):
-    '''Print a message whem the terminal initializes'''
-    bl_idname = "console.banner"
-    bl_label = "Console Banner"
-
-    def execute(self, context):
-        sc = context.space_data
-
-        # default to python
-        if not sc.language:
-            sc.language = 'python'
-
-        module = __import__("console_" + sc.language)
-        banner = getattr(module, "banner", None)
-
-        if banner:
-            return banner(context)
-        else:
-            print("Error: bpy.ops.console.banner_" + sc.language + " - not found")
-            return {'FINISHED'}
-
-
-class ConsoleLanguage(bpy.types.Operator):
-    '''Set the current language for this console'''
-    bl_idname = "console.language"
-    bl_label = "Console Language"
-    language = StringProperty(name="Language", maxlen=32, default="")
-
-    def execute(self, context):
-        sc = context.space_data
-
-        # defailt to python
-        sc.language = self.language
-
-        bpy.ops.console.banner()
-
-        # insert a new blank line
-        bpy.ops.console.history_append(text="", current_character=0,
-            remove_duplicates=True)
-
-        return {'FINISHED'}
+    for l in text.split("\n"):
+        bpy.ops.console.scrollback_append(text=l.expandtabs(4),
+                                          type=text_type)
 
 if __name__ == "__main__":  # only for live edit.
     bpy.utils.register_module(__name__)