225 lines
6.1 KiB
Python
225 lines
6.1 KiB
Python
# Blender.Text module and the Text PyType object
|
|
|
|
"""
|
|
The Blender.Text submodule.
|
|
|
|
Text Objects
|
|
============
|
|
|
|
This module provides access to B{Text} objects in Blender.
|
|
|
|
Example::
|
|
import Blender
|
|
from Blender import Text
|
|
#
|
|
txt = Text.New("MyText") # create a new Text object
|
|
print Text.Get() # current list of Texts in Blender
|
|
txt.write("Appending some ") # appending text
|
|
txt.write("text to my\\n") # '\\n' inserts new-line markers
|
|
txt.write("text buffer.")
|
|
print txt.asLines() # retrieving the buffer as a list of lines
|
|
Text.unlink(txt) # removing a Text object
|
|
"""
|
|
|
|
def New (name = None, follow_cursor = 0):
|
|
"""
|
|
Create a new Text object.
|
|
@type name: string
|
|
@param name: The Text name.
|
|
@type follow_cursor: int
|
|
@param follow_cursor: The text follow flag: if 1, the text display always
|
|
follows the cursor.
|
|
@rtype: Blender Text
|
|
@return: The created Text Data object.
|
|
"""
|
|
|
|
def Get (name = None):
|
|
"""
|
|
Get the Text object(s) from Blender.
|
|
@type name: string
|
|
@param name: The name of the Text object.
|
|
@rtype: Blender Text or a list of Blender Texts
|
|
@return: It depends on the 'name' parameter:
|
|
- (name): The Text object with the given name;
|
|
- (): A list with all Text objects in the current scene.
|
|
"""
|
|
|
|
def Load (filename):
|
|
"""
|
|
Load a file into a Blender Text object.
|
|
@type filename: string
|
|
@param filename: The name of the file to load.
|
|
@rtype: Blender Text
|
|
@return: A Text object with the contents of the loaded file.
|
|
"""
|
|
|
|
def unlink(textobj):
|
|
"""
|
|
Unlink (remove) the given Text object from Blender.
|
|
@type textobj: Blender Text
|
|
@param textobj: The Text object to be deleted.
|
|
"""
|
|
|
|
class Text:
|
|
"""
|
|
The Text object
|
|
===============
|
|
This object gives access to Texts in Blender.
|
|
@ivar filename: The filename of the file loaded into this Text.
|
|
@ivar mode: The follow_mode flag: if 1 it is 'on'; if 0, 'off'.
|
|
@ivar nlines: The number of lines in this Text.
|
|
"""
|
|
|
|
def getName():
|
|
"""
|
|
Get the name of this Text object.
|
|
@rtype: string
|
|
"""
|
|
|
|
def setName(name):
|
|
"""
|
|
Set the name of this Text object.
|
|
@type name: string
|
|
@param name: The new name.
|
|
"""
|
|
|
|
def getFilename():
|
|
"""
|
|
Get the filename of the file loaded into this Text object.
|
|
@rtype: string
|
|
"""
|
|
|
|
def getNLines():
|
|
"""
|
|
Get the number of lines in this Text buffer.
|
|
@rtype: int
|
|
"""
|
|
|
|
def clear():
|
|
"""
|
|
Clear this Text object: its buffer becomes empty.
|
|
"""
|
|
|
|
def reset():
|
|
"""
|
|
Reset the read IO pointer to the start of the buffer.
|
|
"""
|
|
|
|
def readline():
|
|
"""
|
|
Reads a line of text from the buffer from the current IO pointer
|
|
position to the end of the line. If the text has changed since the last
|
|
read, reset() *must* be called.
|
|
@rtype: string
|
|
"""
|
|
|
|
def set(attribute, value):
|
|
"""
|
|
Set this Text's attributes.
|
|
@type attribute: string
|
|
@param attribute: The attribute to change:
|
|
currently, 'follow_cursor' is the only one available. It can be
|
|
turned 'on' with value = 1 and 'off' with value = 0.
|
|
@type value: int
|
|
@param value: The new attribute value.
|
|
"""
|
|
|
|
def write(data):
|
|
"""
|
|
Append a string to this Text buffer.
|
|
@type data: string
|
|
@param data: The string to append to the text buffer.
|
|
"""
|
|
|
|
def insert(data):
|
|
"""
|
|
Inserts a string into this Text buffer at the cursor.
|
|
@type data: string
|
|
@param data: The string to insert into the text buffer.
|
|
"""
|
|
|
|
def asLines(start=0, end=-1):
|
|
"""
|
|
Retrieve the contents of this Text buffer as a list of strings between
|
|
the start and end lines specified. If end < 0 all lines from start will
|
|
be included.
|
|
@type start: int
|
|
@param start: Optional index of first line of the span to return
|
|
@type end int
|
|
@param end: Optional index of the line to which the span is taken or
|
|
-1 to include all lines from start
|
|
@rtype: list of strings
|
|
@return: A list of strings, one for each line in the buffer between
|
|
start and end.
|
|
"""
|
|
|
|
def getCursorPos():
|
|
"""
|
|
Retrieve the position of the cursor in this Text buffer.
|
|
@rtype: (int, int)
|
|
@return: A pair (row, col) indexing the line and character of the
|
|
cursor.
|
|
"""
|
|
|
|
def setCursorPos(row, col):
|
|
"""
|
|
Set the position of the cursor in this Text buffer. Any selection will
|
|
be cleared. Use setSelectPos to extend a selection from the point
|
|
specified here.
|
|
@type row: int
|
|
@param row: The index of the line in which to position the cursor.
|
|
@type col: int
|
|
@param col: The index of the character within the line to position the
|
|
cursor.
|
|
"""
|
|
|
|
def getSelectPos():
|
|
"""
|
|
Retrieve the position of the selection cursor in this Text buffer.
|
|
@rtype: (int, int)
|
|
@return: A pair (row, col) indexing the line and character of the
|
|
selection cursor.
|
|
"""
|
|
|
|
def setSelectPos(row, col):
|
|
"""
|
|
Set the position of the selection cursor in this Text buffer. This
|
|
method should be called after setCursorPos to extend the selection to
|
|
the specified point.
|
|
@type row: int
|
|
@param row: The index of the line in which to position the cursor.
|
|
@type col: int
|
|
@param col: The index of the character within the line to position the
|
|
cursor.
|
|
"""
|
|
|
|
def suggest(list, prefix=''):
|
|
"""
|
|
Suggest a list of names. If list is a list of tuples (name, type) the
|
|
list will be formatted to syntax-highlight each entry type. Types must
|
|
be strings in the list ['m', 'f', 'v', 'k', '?']. It is recommended that
|
|
the list be sorted, case-insensitively by name.
|
|
|
|
@type list: list of tuples or strings
|
|
@param list: List of pair-tuples of the form (name, type) where name is
|
|
the suggested name and type is one of 'm' (module or class), 'f'
|
|
(function or method), 'v' (variable), 'k' (keyword), '?' (other).
|
|
Lists of plain strings are also accepted where the type is always
|
|
'?'.
|
|
@type prefix: string
|
|
@param prefix: The optional prefix used to limit what is suggested from
|
|
the list. This is usually whatever precedes the cursor so that
|
|
backspace will update it.
|
|
"""
|
|
|
|
def showDocs(docs):
|
|
"""
|
|
Displays a word-wrapped message box containing the specified
|
|
documentation when this Text object is visible.
|
|
@type docs: string
|
|
@param docs: The documentation string to display.
|
|
"""
|
|
|
|
import id_generics
|
|
Text.__doc__ += id_generics.attributes
|