Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/python/api2_2x/doc/Draw.py')
-rw-r--r--source/blender/python/api2_2x/doc/Draw.py353
1 files changed, 353 insertions, 0 deletions
diff --git a/source/blender/python/api2_2x/doc/Draw.py b/source/blender/python/api2_2x/doc/Draw.py
new file mode 100644
index 00000000000..a0135b1bcfd
--- /dev/null
+++ b/source/blender/python/api2_2x/doc/Draw.py
@@ -0,0 +1,353 @@
+# Blender.Draw module and the Button PyType object
+
+"""
+The Blender.Draw submodule.
+
+Draw
+====
+
+This module provides access to a B{windowing interface} in Blender. Its widgets
+include many kinds of buttons: push, toggle, menu, number, string, slider,
+scrollbar, plus support for text drawing. It also includes keyboard keys and
+mouse button code values in its dictionary (print dir(Blender.Draw)).
+
+Example::
+ import Blender
+ from Blender import Draw, BGL
+ #
+ mystring = ""
+ mymsg = ""
+ toggle = 0
+ #
+ def event(evt, val): # the function to handle input events
+ global mystring, mymsg
+
+ if not val: # val = 0: it's a key/mbutton release
+ if evt in [Draw.LEFTMOUSE, Draw.MIDDLEMOUSE, Draw.RIGHTMOUSE]:
+ mymsg = "You released a mouse button."
+ Draw.Redraw(1)
+ return
+
+ if evt == Draw.ESCKEY:
+ Draw.Exit() # exit when user presses ESC
+ return
+
+ elif Draw.AKEY <= evt <= Draw.ZKEY: mystring += chr(evt)
+ elif evt == Draw.SPACEKEY: mystring += ' '
+ elif evt == Draw.BACKSPACEKEY and len(mystring):
+ mystring = mystring[:-1]
+ else: return # this is important: only re-register if an event was caught
+
+ Draw.Register(gui, event, button_event) # re-register to stay in the loop
+ #
+ def button_event(evt): # the function to handle Draw Button events
+ global mymsg, toggle
+ if evt == 1:
+ mymsg = "You pressed the toggle button."
+ toggle = 1 - toggle
+ Draw.Redraw(1)
+ else:
+ Draw.Register(gui, event, button_event)
+ #
+ def gui(): # the function to draw the screen
+ global mystring, mymsg, toggle
+ if len(mystring) > 90: mystring = ""
+ BGL.glClearColor(0,0,1,1)
+ BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
+ BGL.glColor3f(1,1,1)
+ Draw.Toggle("Toggle", 1, 10, 10, 55, 20, toggle,"A toggle button")
+ BGL.glRasterPos2i(72, 16)
+ if toggle: toggle_state = "down"
+ else: toggle_state = "up"
+ Draw.Text("The toggle button is %s." % toggle_state, "small")
+ BGL.glRasterPos2i(10, 230)
+ Draw.Text("Type letters from a to z, ESC to leave.")
+ BGL.glRasterPos2i(20, 200)
+ Draw.Text(mystring)
+ BGL.glColor3f(1,0.4,0.3)
+ BGL.glRasterPos2i(340, 70)
+ Draw.Text(mymsg, "tiny")
+ #
+ Draw.Register(gui, event, button_event) # registering the 3 callbacks
+@warn: Inside the windowing loop (after Draw.Register() has been executed and
+before Draw.Exit() is called), don't use the redraw functions from other
+modules (Blender and Window). The Draw submodule has its own Draw.Redraw() and
+Draw.Draw() functions that can be used inside the windowing loop.
+"""
+
+def Exit():
+ """
+ Exit the windowing interface.
+ """
+
+def Register(draw = None, event = None, button = None):
+ """
+ Register callbacks for windowing.
+ @type draw: function
+ @type event: function
+ @type button: function
+ @param draw: A function to draw the screen, taking no arguments: f().
+ @param event: A function to handle keyboard and mouse input events, taking
+ two arguments: f(evt, val), where:
+ - 'evt' (int) is the event number;
+ - 'val' (int) is the value modifier. If val = 0, the event refers to a
+ key or mouse button being released. Otherwise it's a key/button press.
+ @param button: A function to handle Draw Button events, taking one argument:
+ f(evt), where:
+ - 'evt' is the button number (see the I{event} parameter in L{Button}).
+ """
+
+def Redraw(after = 0):
+ """
+ Queue a redraw event. Redraw events are buffered so that, regardless of how
+ many events are queued, the window only receives one redraw event.
+ @type after: int
+ @param after: If non-zero, the redraw is processed before other input events.
+ """
+
+def Draw():
+ """
+ Force an immediate redraw. Forced redraws are not buffered. In other words,
+ the window is redrawn once every time this function is called.
+ """
+
+def Create(value):
+ """
+ Create a default Button object.
+ @type value: int, float or string
+ @param value: The value to store in the button.
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def Button(name, event, x, y, width, height, tooltip = None):
+ """
+ Create a new (push) Button object.
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ """
+
+def Menu(name, event, x, y, width, height, default, tooltip = None):
+ """
+ Create a new Menu Button object.
+
+ The menu options are specified through the 'name' of the button. Options are
+ I{followed} by a format code and separated by the '|' (pipe) character. Valid
+ format codes are:
+ - %t - The option should be used as the title;
+ - %xB{N} - The option should set the integer B{N} in the button value.
+
+ Example::
+ name = "The Title %t|First Entry %x1|Second Entry %x2|Third Entry %x3"
+ menu = Draw.Menu(name, 2, 60, 120, 200, 40, 3, "Just a test menu.")
+ # note that, since default = 3, the "Third Entry"
+ # will appear as the default choice in the Menu.
+
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type default: int
+ @param default: The number of the option to be selected by default.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def Toggle(name, event, x, y, width, height, default, tooltip = None):
+ """
+ Create a new Toggle Button object.
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type default: int
+ @param default: The value specifying the default state:
+ (0 for "up", 1 for "down").
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def Slider(name, event, x, y, width, height, initial, min, max, realtime = 1,
+ tooltip = None):
+ """
+ Create a new Toggle Button object.
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type initial: int or float
+ @type min: int or float
+ @type max: int or float
+ @param initial: The initial value.
+ @param min: The minimum value.
+ @param max: The maximum value.
+ @type realtime: int
+ @param realtime: If non-zero (the default), the slider will emit events as
+ it is edited.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def Scrollbar(event, x, y, width, height, initial, min, max, realtime = 1,
+ tooltip = None):
+ """
+ Create a new Scrollbar Button object.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type initial: int or float
+ @type min: int or float
+ @type max: int or float
+ @param initial: The initial value.
+ @param min: The minimum value.
+ @param max: The maximum value.
+ @type realtime: int
+ @param realtime: If non-zero (the default), the slider will emit events as
+ it is edited.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def Number(name, event, x, y, width, height, initial, min, max, realtime = 1,
+ tooltip = None):
+ """
+ Create a new Number Button object.
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type initial: int or float
+ @type min: int or float
+ @type max: int or float
+ @param initial: The initial value.
+ @param min: The minimum value.
+ @param max: The maximum value.
+ @type realtime: int
+ @param realtime: If non-zero (the default), the slider will emit events as
+ it is edited.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+
+def String(name, event, x, y, width, height, initial, length, tooltip = None):
+ """
+ Create a new String Button object.
+ @type name: string
+ @param name: The string to display on the button.
+ @type event: int
+ @param event: The event number to pass to the button event function when
+ activated.
+ @type x: int
+ @type y: int
+ @param x: The lower left x (horizontal) coordinate of the button.
+ @param y: The lower left y (vertical) coordinate of the button.
+ @type width: int
+ @type height: int
+ @param width: The button width.
+ @param height: The button height.
+ @type initial: string
+ @param initial: The string to display initially.
+ @type length: int
+ @param length: The maximum input length.
+ @type tooltip: string
+ @param tooltip: The button's tooltip (the string that appears when the mouse
+ is kept over the button).
+ @rtype: Blender Button
+ @return: The Button created.
+ """
+
+def GetStringWidth(string, fontsize = 'normal'):
+ """
+ Get the width in pixels of a string.
+ @type string: string
+ @param string: A string.
+ @type fontsize: string
+ @param fontsize: The size of the font: 'normal', 'small' or 'tiny'.
+ @rtype: int
+ @return: The width of I{string} with the chosen I{fontsize}.
+ """
+
+def Text(string, fontsize = 'normal'):
+ """
+ Draw a string on the screen.
+ @type string: string
+ @param string: The text string to draw.
+ @type fontsize: string
+ @param fontsize: The size of the font: 'normal', 'small' or 'tiny'.
+ @rtype: int
+ @return: The width of I{string} drawn with the chosen I{fontsize}.
+ """