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 'release/scripts/widgetwizard.py')
-rw-r--r--release/scripts/widgetwizard.py917
1 files changed, 0 insertions, 917 deletions
diff --git a/release/scripts/widgetwizard.py b/release/scripts/widgetwizard.py
deleted file mode 100644
index a7ddd68268a..00000000000
--- a/release/scripts/widgetwizard.py
+++ /dev/null
@@ -1,917 +0,0 @@
-#!BPY
-
-"""
-Name: 'Shape Widget Wizard'
-Blender: 238
-Group: 'Animation'
-Tip: 'Adds Widgets for Driven Shapes'
-"""
-
-__author__ = ["Johnny Matthews (guitargeek)"]
-__url__ = ("blender", "blenderartists.org")
-__version__ = "0.0.9 12/15/05"
-
-__bpydoc__ = """\
-"Shape Widget Wizard" creates objects that drive shape channels.
-
-Explanation:
-
-Shapes define morph targets and sometimes it is helpful to animate with a GUI
-control panel of widgets. This script lets you define several different types
-of controls that (depending on the type) control 1 to 4 shapes with a single
-controller.
-
-Usage:
-
-1. Click where you want the widget to go<br>
-2. Highlight the object that has shapes<br>
-3. Run the script<br>
-4. Choose the type of widget (there are next and back buttons if you pick the wrong kind)<br>
-5. Click next and choose what shapes go where on the widget<br>
-6. Choose a display name for the widget<br>
-7. Click finish
-
-The widget is added and you are returned to the first screen for adding another widget.
-
-"""
-
-###################################################################
-# #
-# Shape Widget Wizard #
-# #
-# all versions (C) December 2005 Johnny Matthews (guitargeek) #
-# #
-# Released under the GPL #
-# #
-# Works in Blender 2.4 and higher #
-# #
-# This script can be found online at: #
-# http://guitargeek.superihost.com/widgetmaker #
-# #
-# email: johnny.matthews@gmail.com #
-###################################################################
-# History #
-# 0.9 #
-# Added Name Objects #
-# 0.81 #
-# Added Single Shape Toggle #
-# #
-# 0.8 #
-# Controller is Transform Locked and can only move #
-# in appropriate directions #
-# #
-# 0.7 #
-# Controller is named the same as the range + ".ctrl" #
-# #
-###################################################################
-
-import Blender
-import bpy
-from Blender import Mesh,Object,Material,Window,IpoCurve,Ipo,Text3d
-from Blender.BGL import *
-from Blender.Draw import *
-print "----------------------"
-
-SHAPE1_ONE_MONE = 1
-SHAPE1_ONE_ZERO = 2
-SHAPE1_ZERO_MONE = 3
-SHAPE1_TOGGLE = 12
-SHAPE2_EXCLUSIVE = 4
-SHAPE2_V = 5
-SHAPE2_T = 6
-SHAPE2_INVT = 7
-SHAPE2_PLUS = 8
-SHAPE3_T = 9
-SHAPE3_INVT = 10
-SHAPE4_X = 11
-
-
-stage = 1
-numshapes = Create(1)
-widmenu = Create(1)
-rangename = Create("Range")
-shapes = [Create(0),Create(0),Create(0),Create(0)]
-drawtype = 0
-
-
-#get rid of an ipo curve by deleting all its points
-def delCurve(ipo):
- while len(ipo.bezierPoints) > 0:
- ipo.delBezier(0)
- ipo.recalc()
-
-#if a given ipocurve is not there create it, otherwise get it
-def verifyIpocurve(ky,index):
- ipo = ky.ipo
- if ipo == None:
- nip = bpy.data.ipos.new("keyipo", "Key")
- ky.ipo = nip
- ipo = ky.ipo
- if index == 0:
- idx = "Basis"
- else:
- idx = "Key " + str(index)
- crv = ipo[idx]
- if crv == None:
- # print idx
- crv = ipo.addCurve(idx)
- crv.interpolation = IpoCurve.InterpTypes.LINEAR
- return crv
-
-# Add the Drivers and Curves
-def setupDrivers(ob,ctrl,type):
- global shapes
- me = ob.getData(mesh=1)
- ky = me.key
-
- # Should we add an error here??
- if not ky:
- return
-
- if type in [SHAPE1_ONE_MONE,SHAPE1_ONE_ZERO,SHAPE1_ZERO_MONE]:
- ctrl.protectFlags = int("111111011",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
-
- delCurve(ipo)
- if type == 1:
- ipo.append((-1,-1))
- ipo.append((0,0))
- ipo.append((1,1))
- if type == 2:
- ipo.append((0,0))
- ipo.append((1,1))
- if type == 3:
- ipo.append((-1,-1))
- ipo.append((0,0))
- ipo.recalc()
-
- if type == SHAPE1_TOGGLE:
- ctrl.protectFlags = int("111111011",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((0.5,0))
- ipo.append((0.500001,1))
- ipo.append((1,1))
- ipo.recalc()
-
- if type == SHAPE2_EXCLUSIVE:
- ctrl.protectFlags = int("111111011",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_Z
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,1))
- ipo2.append((0,0))
- ipo2.recalc()
-
- if type == SHAPE2_T:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((-1,-1))
- ipo.append((0,0))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,-1))
- ipo2.append((1,1))
- ipo2.recalc()
-
- if type == SHAPE2_INVT:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,-1))
- ipo2.append((1,1))
- ipo2.recalc()
-
- if type == SHAPE2_PLUS:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((-1,-1))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,-1))
- ipo2.append((1,1))
- ipo2.recalc()
-
- if type == SHAPE2_V: # 2 Shape Mix
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- delCurve(ipo2)
- ipo2.append((0,0))
- ipo2.append((1,1))
- ipo2.recalc()
-
-
- if type == SHAPE3_INVT:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,1))
- ipo2.append((0,0))
- ipo2.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[2].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((0,0))
- ipo2.append((1,1))
- ipo2.recalc()
-
- if type == SHAPE3_T:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- ipo.recalc()
- delCurve(ipo)
- ipo.append((-1,-1))
- ipo.append((0,0))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((-1,1))
- ipo2.append((0,0))
- ipo2.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[2].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- ipo2.recalc()
- delCurve(ipo2)
- ipo2.append((0,0))
- ipo2.append((1,1))
- ipo2.recalc()
-
- if type == SHAPE4_X:
- ctrl.protectFlags = int("111111010",2)
- ipo = verifyIpocurve(ky,shapes[0].val)
- ipo.driver = 1
- ipo.driverObject = ctrl
- ipo.driverChannel = IpoCurve.LOC_Z
- delCurve(ipo)
- ipo.append((0,0))
- ipo.append((1,1))
- ipo.recalc()
-
- ipo2 = verifyIpocurve(ky,shapes[1].val)
- ipo2.driver = 1
- ipo2.driverObject = ctrl
- ipo2.driverChannel = IpoCurve.LOC_X
- delCurve(ipo2)
- ipo2.append((0,0))
- ipo2.append((1,1))
- ipo2.recalc()
-
- ipo3 = verifyIpocurve(ky,shapes[2].val)
- ipo3.driver = 1
- ipo3.driverObject = ctrl
- ipo3.driverChannel = IpoCurve.LOC_X
- delCurve(ipo3)
- ipo3.append((-1,1))
- ipo3.append((0,0))
- ipo3.recalc()
-
- ipo4 = verifyIpocurve(ky,shapes[3].val)
- ipo4.driver = 1
- ipo4.driverObject = ctrl
- ipo4.driverChannel = IpoCurve.LOC_Z
- delCurve(ipo4)
- ipo4.append((-1,1))
- ipo4.append((0,0))
- ipo4.recalc()
-
-#The Main Call to Build the Widget
-
-def build(type):
- global shapes,widmenu,rangename
- sce = bpy.data.scenes.active
- ob = sce.objects.active
-
- try:
- ob.getData(mesh=1).key
- except:
- Blender.Draw.PupMenu('Aborting%t|Object has no keys')
- return
-
- loc = Window.GetCursorPos()
- range = makeRange(sce, type,rangename.val)
- controller = makeController(sce, rangename.val)
- text = makeText(sce, rangename.val)
-
- range.restrictRender = True
- controller.restrictRender = True
- text.restrictRender = True
-
- range.setLocation(loc)
- controller.setLocation(loc)
- text.setLocation(loc)
-
- range.makeParent([controller],1)
- range.makeParent([text],0)
-
- sce.update()
-
- setupDrivers(ob,controller,widmenu.val)
-
-#Create the text
-
-def makeText(sce, name):
- txt = bpy.data.curves.new(name+'.name', 'Text3d')
-
- txt.setDrawMode(Text3d.DRAW3D)
- txt.setAlignment(Text3d.MIDDLE)
- txt.setText(name)
- ob = sce.objects.new(txt)
- ob.setEuler((3.14159/2,0,0))
- return ob
-
-
-#Create the mesh controller
-
-def makeController(sce, name):
- me = bpy.data.meshes.new(name+".ctrl")
- ob = sce.objects.new(me)
- me.verts.extend([\
- (-0.15,0, 0),\
- ( 0,0, 0.15),\
- ( 0.15,0, 0),\
- ( 0,0,-0.15)])
-
- me.edges.extend([(0,1,2,3)])
- return ob
-
-#Create the mesh range
-
-def makeRange(sce,type,name):
- #ob.setDrawMode(8) # Draw Name
- me = bpy.data.meshes.new(name)
- ob = sce.objects.new(me)
-
- if type == SHAPE1_ONE_ZERO:
- me.verts.extend([\
- (-0.15,0,0),\
- ( 0.15,0,0),\
- (-0.15,0,1),\
- ( 0.15,0,1),\
- (-0.25,0,.1),\
- (-0.25,0,-.10),\
- (0.25,0,.1),\
- (0.25,0,-0.10)])
-
- me.edges.extend([(0,1,3,2),(4,5,0),(6,7,1)])
-
- elif type == SHAPE1_TOGGLE:
- me.verts.extend([\
- (-0.15,0,-0.5),\
- ( 0.15,0,-0.5),\
- ( 0.15,0, 0.5),\
- (-0.15,0, 0.5),\
- (-0.15,0, 1.5),\
- ( 0.15,0, 1.5)])
-
- me.edges.extend([(0,1,2,3),(3,4,5,2)])
-
- elif type == SHAPE1_ZERO_MONE:
- me.verts.extend([\
- (-0.15,0,0),\
- ( 0.15,0,0),\
- (-0.15,0,-1),\
- ( 0.15,0,-1),\
- (-0.25,0,.1),\
- (-0.25,0,-.10),\
- (0.25,0,.1),\
- (0.25,0,-0.10)])
-
- me.edges.extend([(0,1,3,2),(4,5,0),(6,7,1)])
-
- elif type in [SHAPE1_ONE_MONE,SHAPE2_EXCLUSIVE]:
- me.verts.extend([\
- (-0.15,0,-1),\
- ( 0.15,0,-1),\
- (-0.15,0,1),\
- ( 0.15,0,1),\
- (-0.25,0,.1),\
- (-0.25,0,-.10),\
- (0.25,0,.1),\
- (0.25,0,-0.10),\
- (-0.15,0,0),\
- ( 0.15,0,0)])
-
- l = [(0,1,3,2),(4,5,8),(6,7,9)]
- me.edges.extend(l)
-
- elif type == SHAPE2_T:
- me.verts.extend([\
- (-1,0,0),\
- ( 1,0,0),\
- ( 1,0,-1),\
- (-1,0,-1)])
-
- me.edges.extend([(0,1,2,3)])
-
- elif type == SHAPE2_INVT:
- me.verts.extend([\
- (-1,0,0),\
- ( 1,0,0),\
- ( 1,0,1),\
- (-1,0,1)])
-
- me.edges.extend([(0,1,2,3)])
-
- elif type == SHAPE2_PLUS:
- me.verts.extend([\
- (-1,0,-1),\
- ( 1,0,-1),\
- ( 1,0,1),\
- (-1,0,1)])
- me.edges.extend([(0,1,2,3)])
-
- elif type == SHAPE2_V:
- me.verts.extend([\
- (0,0,0),\
- (1,0,0),\
- (1,0,1),\
- (0,0,1)])
-
- me.edges.extend([(0,1,2,3)])
- ob.setEuler((0,-0.78539,0))
-
- elif type == SHAPE3_INVT:
- me.verts.extend([\
- (-1,0,0),\
- ( 1,0,0),\
- ( 1,0,1),\
- (-1,0,1)])
-
- me.edges.extend([(0,1,2,3)])
-
- elif type == SHAPE3_T:
- me.verts.extend([\
- (-1,0,0),\
- ( 1,0,0),\
- ( 1,0,-1),\
- (-1,0,-1)])
-
- me.edges.extend([(0,1,2,3)])
-
-
- elif type == SHAPE4_X:
- me.verts.extend([\
- (0,0,-1),\
- (1,0,-1),\
- (1,0,0),\
- (1,0,1),\
- (0,0,1),\
- (-1,0,1),\
- (-1,0,0),\
- (-1,0,-1)])
-
- me.edges.extend([(0,1),(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,0)])
- ob.setEuler((0,-0.78539,0))
-
- return ob
-
-
-def create():
- main()
-
-####################### gui ######################
-
-
-EVENT_NONE = 1
-EVENT_EXIT = 100
-EVENT_WIDGET_MENU = 101
-EVENT_NEXT = 102
-EVENT_BACK = 103
-
-#get the list of shapes from the selected object
-
-def shapeMenuText():
- ob = bpy.data.scenes.active.objects.active
- if not ob:
- return ""
-
- me = ob.getData(mesh=1)
- try: key= me.key
- except: key = None
-
- if key == None:
- return ""
-
- blocks = key.blocks
- menu = "Choose Shape %t|"
- for i, block in enumerate(blocks):
- menu = menu + block.name + " %x" + str(i) + "|"
- return menu
-
-
-#draw the widget for the gui
-
-def drawWidget(type):
- glColor3f(0.0,0.0,0.0)
- global shapes
- if type == SHAPE1_ONE_MONE:# 1 to -1 Single Shape
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(170,50)
- glVertex2i(170,150)
- glVertex2i(150,150)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,100)
- glVertex2i(190,100)
- glEnd()
- glRasterPos2d(180,140)
- Text("1","normal")
- glRasterPos2d(180,60)
- Text("-1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 190, 100, 100, 18, shapes[0].val, "Choose Shape.")
- elif type == SHAPE1_TOGGLE:# Toggle Single Shape
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(170,50)
- glVertex2i(170,100)
- glVertex2i(150,100)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(170,100)
- glVertex2i(170,150)
- glVertex2i(150,150)
- glVertex2i(150,100)
- glEnd()
- glRasterPos2d(180,140)
- Text("On","normal")
- glRasterPos2d(180,60)
- Text("Off","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 190, 100, 100, 18, shapes[0].val, "Choose Shape.")
- elif type == SHAPE1_ONE_ZERO: # 1 to 0 Single Shape
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(170,50)
- glVertex2i(170,150)
- glVertex2i(150,150)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,50)
- glVertex2i(190,50)
- glEnd()
- glRasterPos2d(180,140)
- Text("1","normal")
- glRasterPos2d(180,60)
- Text("0","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 190, 100, 100, 18, shapes[0].val, "Choose Shape.")
- elif type == SHAPE1_ZERO_MONE:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(170,50)
- glVertex2i(170,150)
- glVertex2i(150,150)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,150)
- glVertex2i(190,150)
- glEnd()
- glRasterPos2d(180,140)
- Text("0","normal")
- glRasterPos2d(180,60)
- Text("-1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 190, 100, 100, 18, shapes[0].val, "Choose Shape.")
- elif type == SHAPE2_EXCLUSIVE:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(170,50)
- glVertex2i(170,150)
- glVertex2i(150,150)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,100)
- glVertex2i(190,100)
- glEnd()
- glRasterPos2d(180,140)
- Text("1","normal")
- glRasterPos2d(180,60)
- Text("1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 195, 135, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 195, 52, 100, 18, shapes[1].val, "Choose Shape 2.")
- elif type == SHAPE2_T:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,75)
- glVertex2i(250,75)
- glVertex2i(250,125)
- glVertex2i(150,125)
- glVertex2i(150,75)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,125)
- glVertex2i(260,125)
- glEnd()
- glRasterPos2d(200,140)
- Text("0","normal")
- glRasterPos2d(200,60)
- Text("-1","normal")
- glRasterPos2d(250,140)
- Text("1","normal")
- glRasterPos2d(150,140)
- Text("-1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 220, 52, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 260, 135, 100, 18, shapes[1].val, "Choose Shape 2.")
- elif type == SHAPE2_INVT:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,75)
- glVertex2i(250,75)
- glVertex2i(250,125)
- glVertex2i(150,125)
- glVertex2i(150,75)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,75)
- glVertex2i(260,75)
- glEnd()
- glRasterPos2d(200,60)
- Text("0","normal")
- glRasterPos2d(200,140)
- Text("1","normal")
- glRasterPos2d(250,60)
- Text("1","normal")
- glRasterPos2d(150,60)
- Text("-1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 220, 135, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 260, 52, 100, 18, shapes[1].val, "Choose Shape 2.")
- elif type == SHAPE2_PLUS:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,50)
- glVertex2i(250,50)
- glVertex2i(250,150)
- glVertex2i(150,150)
- glVertex2i(150,50)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,100)
- glVertex2i(260,100)
- glEnd()
- glRasterPos2d(200,105)
- Text("0","normal")
- glRasterPos2d(200,140)
- Text("1","normal")
- glRasterPos2d(200,55)
- Text("-1","normal")
- glRasterPos2d(250,105)
- Text("1","normal")
- glRasterPos2d(150,105)
- Text("-1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 220, 155, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 260, 100, 100, 18, shapes[1].val, "Choose Shape 2.")
- elif type == SHAPE2_V:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,70)
- glVertex2i(185,105)
- glVertex2i(150,141)
- glVertex2i(115,105)
- glVertex2i(150,70)
- glEnd()
- glRasterPos2d(110,105)
- Text("1","normal")
- glRasterPos2d(190,105)
- Text("1","normal")
- glRasterPos2d(150,80)
- Text("0","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 20, 125, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 195, 125, 100, 18, shapes[1].val, "Choose Shape 2.")
-
-
-
- elif type == SHAPE3_T:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,75)
- glVertex2i(250,75)
- glVertex2i(250,125)
- glVertex2i(150,125)
- glVertex2i(150,75)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,125)
- glVertex2i(260,125)
- glEnd()
- glRasterPos2d(200,140)
- Text("0","normal")
- glRasterPos2d(200,60)
- Text("-1","normal")
- glRasterPos2d(250,140)
- Text("1","normal")
- glRasterPos2d(150,140)
- Text("1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 220, 52, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 45, 135, 100, 18, shapes[1].val, "Choose Shape 2.")
- shapes[2] = Menu(shapeMenuText(), EVENT_NONE, 260, 135, 100, 18, shapes[2].val, "Choose Shape 3.")
- elif type == SHAPE3_INVT:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,75)
- glVertex2i(250,75)
- glVertex2i(250,125)
- glVertex2i(150,125)
- glVertex2i(150,75)
- glEnd()
- glBegin(GL_LINE_STRIP)
- glVertex2i(140,75)
- glVertex2i(260,75)
- glEnd()
- glRasterPos2d(200,60)
- Text("0","normal")
- glRasterPos2d(200,140)
- Text("1","normal")
- glRasterPos2d(250,60)
- Text("1","normal")
- glRasterPos2d(150,60)
- Text("1","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 220, 135, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 45, 52, 100, 18, shapes[1].val, "Choose Shape 2.")
- shapes[2] = Menu(shapeMenuText(), EVENT_NONE, 260, 52, 100, 18, shapes[2].val, "Choose Shape 3.")
-
-
- elif type == SHAPE4_X:
- glBegin(GL_LINE_STRIP)
- glVertex2i(150,70)
- glVertex2i(185,105)
- glVertex2i(150,141)
- glVertex2i(115,105)
- glVertex2i(150,70)
- glEnd()
- glRasterPos2d(120,125)
- Text("1","normal")
- glRasterPos2d(180,125)
- Text("1","normal")
- glRasterPos2d(120,80)
- Text("1","normal")
- glRasterPos2d(180,80)
- Text("1","normal")
-
- glRasterPos2d(145,105)
- Text("0","normal")
- shapes[0] = Menu(shapeMenuText(), EVENT_NONE, 10, 125, 100, 18, shapes[0].val, "Choose Shape 1.")
- shapes[1] = Menu(shapeMenuText(), EVENT_NONE, 195, 125, 100, 18, shapes[1].val, "Choose Shape 2.")
- shapes[2] = Menu(shapeMenuText(), EVENT_NONE, 10, 60, 100, 18, shapes[2].val, "Choose Shape 3.")
- shapes[3] = Menu(shapeMenuText(), EVENT_NONE, 195, 60, 100, 18, shapes[3].val, "Choose Shape 4.")
-
-#the gui callback
-
-def draw():
- global widmenu,numshapes,stage,type, shapes,rangename
- #glRasterPos2d(5,200)
- #Text("Shape Widget Wizard","large")
- Label("Shape Widget Wizard", 5,200, 200, 12)
-
- PushButton("Quit", EVENT_EXIT, 5, 5, 50, 18)
-
- if stage == 1:
- name = "Choose Widget Type %t|\
-1 Shape: 1 / -1 %x" +str(SHAPE1_ONE_MONE) +"|\
-1 Shape: 1,0 %x" +str(SHAPE1_ONE_ZERO) +"|\
-1 Shape: 0,-1 %x" +str(SHAPE1_ZERO_MONE)+"|\
-1 Shape: Toggle %x" +str(SHAPE1_TOGGLE) +"|\
-2 Shape Exclusive %x"+str(SHAPE2_EXCLUSIVE)+"|\
-2 Shape - V %x" +str(SHAPE2_V) +"|\
-2 Shape - T %x" +str(SHAPE2_T) +"|\
-2 Shape - Inv T %x" +str(SHAPE2_INVT) +"|\
-2 Shape - + %x" +str(SHAPE2_PLUS) +"|\
-3 Shape - T %x" +str(SHAPE3_T) +"|\
-3 Shape - Inv T%x" +str(SHAPE3_INVT) +"|\
-4 Shape - Mix %x" +str(SHAPE4_X)
- widmenu = Menu(name, EVENT_NONE, 5, 120, 200, 40, widmenu.val, "Choose Widget Type.")
- PushButton("Next", EVENT_NEXT, 5, 25, 50, 18)
-
- elif stage == 2:
- glRasterPos2d(60,140)
- rangename = String("Name: ", EVENT_NONE, 5, 170, 200, 18, rangename.val, 50, "Name for Range Object")
- drawWidget(widmenu.val)
- BeginAlign()
- PushButton("Back", EVENT_BACK, 5, 25, 50, 18, "Choose another shape type")
- PushButton("Finish", EVENT_NEXT, 55, 25, 50, 18, "Add Objects at the cursor location")
- EndAlign()
- return
-
-
-
-def event(evt, val):
- if (evt == QKEY and not val):
- Exit()
-
-
-def bevent(evt):
- global widmenu,stage,drawtype
- ######### Manages GUI events
- if evt==EVENT_EXIT:
- Exit()
- elif evt==EVENT_BACK:
- if stage == 2:
- stage = 1
- Redraw()
- elif evt==EVENT_NEXT:
- if stage == 1:
- stage = 2
- Redraw()
- elif stage == 2:
- build(widmenu.val)
- stage = 1
- Window.RedrawAll()
-
-
-Register(draw, event, bevent)