diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-03-21 15:35:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-03-21 15:35:49 +0300 |
commit | 2e6a02438e997f1024f3ba6c332314f09f01a3b4 (patch) | |
tree | 7b9427c972858a2b0950b0328bb500f11294161b /release/scripts/startup/bl_ui/space_text.py | |
parent | 28d39473fc65543cbf3adc44964d4a9703d3076a (diff) |
move script directories for internal blender scripts.
ui/ --> startup/bl_ui
op/ --> startup/bl_operators
scripts/startup/ is now the only auto-loading script dir which gives some speedup for blender loading too.
~/.blender/2.56/scripts/startup works for auto-loading scripts too.
Diffstat (limited to 'release/scripts/startup/bl_ui/space_text.py')
-rw-r--r-- | release/scripts/startup/bl_ui/space_text.py | 299 |
1 files changed, 299 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_ui/space_text.py b/release/scripts/startup/bl_ui/space_text.py new file mode 100644 index 00000000000..d21d6952023 --- /dev/null +++ b/release/scripts/startup/bl_ui/space_text.py @@ -0,0 +1,299 @@ +# ##### 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +# <pep8 compliant> +import bpy + + +class TEXT_HT_header(bpy.types.Header): + bl_space_type = 'TEXT_EDITOR' + + def draw(self, context): + layout = self.layout + + st = context.space_data + text = st.text + + row = layout.row(align=True) + row.template_header() + + if context.area.show_menus: + sub = row.row(align=True) + sub.menu("TEXT_MT_view") + sub.menu("TEXT_MT_text") + if text: + sub.menu("TEXT_MT_edit") + sub.menu("TEXT_MT_format") + + if text and text.is_modified: + row = layout.row() + # row.color(redalert) + row.operator("text.resolve_conflict", text="", icon='HELP') + + layout.template_ID(st, "text", new="text.new", unlink="text.unlink") + + row = layout.row(align=True) + row.prop(st, "show_line_numbers", text="") + row.prop(st, "show_word_wrap", text="") + row.prop(st, "show_syntax_highlight", text="") + + if text: + row = layout.row() + row.operator("text.run_script") + + row = layout.row() + row.active = text.name.endswith(".py") + row.prop(text, "use_module") + + row = layout.row() + if text.filepath: + if text.is_dirty: + row.label(text="File: *%s (unsaved)" % text.filepath) + else: + row.label(text="File: %s" % text.filepath) + else: + row.label(text="Text: External" if text.library else "Text: Internal") + + +class TEXT_PT_properties(bpy.types.Panel): + bl_space_type = 'TEXT_EDITOR' + bl_region_type = 'UI' + bl_label = "Properties" + + def draw(self, context): + layout = self.layout + + st = context.space_data + + flow = layout.column_flow() + flow.prop(st, "show_line_numbers") + flow.prop(st, "show_word_wrap") + flow.prop(st, "show_syntax_highlight") + flow.prop(st, "show_line_highlight") + flow.prop(st, "use_live_edit") + + flow = layout.column_flow() + flow.prop(st, "font_size") + flow.prop(st, "tab_width") + + text = st.text + if text: + flow.prop(text, "use_tabs_as_spaces") + + flow.prop(st, "show_margin") + col = flow.column() + col.active = st.show_margin + col.prop(st, "margin_column") + + +class TEXT_PT_find(bpy.types.Panel): + bl_space_type = 'TEXT_EDITOR' + bl_region_type = 'UI' + bl_label = "Find" + + def draw(self, context): + layout = self.layout + + st = context.space_data + + # find + col = layout.column(align=True) + row = col.row() + row.prop(st, "find_text", text="") + row.operator("text.find_set_selected", text="", icon='TEXT') + col.operator("text.find") + + # replace + col = layout.column(align=True) + row = col.row() + row.prop(st, "replace_text", text="") + row.operator("text.replace_set_selected", text="", icon='TEXT') + col.operator("text.replace") + + # mark + layout.operator("text.mark_all") + + # settings + row = layout.row() + row.prop(st, "use_find_wrap", text="Wrap") + row.prop(st, "use_find_all", text="All") + + +class TEXT_MT_view(bpy.types.Menu): + bl_label = "View" + + def draw(self, context): + layout = self.layout + + layout.operator("text.properties", icon='MENU_PANEL') + + layout.separator() + + layout.operator("screen.area_dupli") + layout.operator("screen.screen_full_area") + + layout.separator() + + layout.operator("text.move", text="Top of File").type = 'FILE_TOP' + layout.operator("text.move", text="Bottom of File").type = 'FILE_BOTTOM' + + +class TEXT_MT_text(bpy.types.Menu): + bl_label = "Text" + + def draw(self, context): + layout = self.layout + + st = context.space_data + text = st.text + + layout.column() + layout.operator("text.new") + layout.operator("text.open") + + if text: + layout.operator("text.reload") + + layout.column() + layout.operator("text.save") + layout.operator("text.save_as") + + if text.filepath: + layout.operator("text.make_internal") + + layout.column() + layout.operator("text.run_script") + + #ifdef WITH_PYTHON + # XXX if(BPY_is_pyconstraint(text)) + # XXX uiMenuItemO(head, 0, "text.refresh_pyconstraints"); + #endif + + layout.separator() + + layout.menu("TEXT_MT_templates") + + +class TEXT_MT_templates(bpy.types.Menu): + ''' + Creates the menu items by scanning scripts/templates + ''' + bl_label = "Script Templates" + + def draw(self, context): + self.path_menu(bpy.utils.script_paths("templates"), "text.open", {"internal": True}) + + +class TEXT_MT_edit_select(bpy.types.Menu): + bl_label = "Select" + + def draw(self, context): + layout = self.layout + + layout.operator("text.select_all") + layout.operator("text.select_line") + + +class TEXT_MT_edit_markers(bpy.types.Menu): + bl_label = "Markers" + + def draw(self, context): + layout = self.layout + + layout.operator("text.markers_clear") + layout.operator("text.next_marker") + layout.operator("text.previous_marker") + + +class TEXT_MT_format(bpy.types.Menu): + bl_label = "Format" + + def draw(self, context): + layout = self.layout + + layout.operator("text.indent") + layout.operator("text.unindent") + + layout.separator() + + layout.operator("text.comment") + layout.operator("text.uncomment") + + layout.separator() + + layout.operator_menu_enum("text.convert_whitespace", "type") + + +class TEXT_MT_edit_to3d(bpy.types.Menu): + bl_label = "Text To 3D Object" + + def draw(self, context): + layout = self.layout + + layout.operator("text.to_3d_object", text="One Object").split_lines = False + layout.operator("text.to_3d_object", text="One Object Per Line").split_lines = True + + +class TEXT_MT_edit(bpy.types.Menu): + bl_label = "Edit" + + @classmethod + def poll(cls, context): + return (context.space_data.text) + + def draw(self, context): + layout = self.layout + + layout.operator("ed.undo") + layout.operator("ed.redo") + + layout.separator() + + layout.operator("text.cut") + layout.operator("text.copy") + layout.operator("text.paste") + + layout.separator() + + layout.menu("TEXT_MT_edit_select") + layout.menu("TEXT_MT_edit_markers") + + layout.separator() + + layout.operator("text.jump") + layout.operator("text.properties", text="Find...") + + layout.separator() + + layout.menu("TEXT_MT_edit_to3d") + + +class TEXT_MT_toolbox(bpy.types.Menu): + bl_label = "" + + def draw(self, context): + layout = self.layout + layout.operator_context = 'INVOKE_DEFAULT' + + layout.operator("text.cut") + layout.operator("text.copy") + layout.operator("text.paste") + + layout.separator() + + layout.operator("text.run_script") |