Files
Phoenix/unittests/test_lib_ogl.py

233 lines
6.8 KiB
Python

import unittest
from unittests import wtc
import wx
import wx.lib.ogl as ogl
class lib_ogl_Tests(wtc.WidgetTestCase):
def test_lib_oglCtor(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.RectangleShape(w=50, h=50)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
def test_lib_oglRectangle(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.RectangleShape(w=50, h=50)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
def test_lib_oglPolygonShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.PolygonShape()
w, h = 60, 60
points = [(0.0, -h/2.0),
(w/2.0, 0.0),
(0.0, h/2.0),
(-w/2.0, 0.0),
]
aShape.Create(points)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
def test_lib_oglCircle(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.CircleShape(50)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
def test_lib_oglEllipseShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.EllipseShape(50, 50)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
def test_lib_oglTextShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.TextShape(50, 50)
aShape.SetCanvas(osc)
aShape.AddText("Some nice text here")
self.diagram.AddShape(aShape)
def test_lib_oglLineShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
fromShape = ogl.RectangleShape(w=50, h=50)
fromShape.SetCanvas(osc)
self.diagram.AddShape(fromShape)
toShape = ogl.RectangleShape(w=50, h=50)
toShape.SetCanvas(osc)
self.diagram.AddShape(toShape)
lShape = ogl.LineShape()
lShape.SetCanvas(osc)
lShape.MakeLineControlPoints(2)
fromShape.AddLine(lShape, toShape)
self.diagram.AddShape(lShape)
lShape.Show(True)
def test_lib_oglShapeRegion(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.RectangleShape(w=50, h=50)
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
region1 = ogl.ShapeRegion()
region1.SetText('DividedShape')
region1.SetProportions(0.0, 0.2)
region1.SetFormatMode(ogl.FORMAT_CENTRE_HORIZ)
aShape.AddRegion(region1)
def test_lib_oglDivisonShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.CompositeShape()
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
# create a division in the composite
aShape.MakeContainer()
# add a shape to the original division
shape2 = ogl.RectangleShape(40, 60)
aShape.GetDivisions()[0].AddChild(shape2)
def test_lib_oglCompositeShape(self):
ogl.OGLInitialize()
osc = ogl.ShapeCanvas(self.frame)
self.diagram = ogl.Diagram()
osc.SetDiagram(self.diagram)
self.diagram.SetCanvas(osc)
aShape = ogl.CompositeShape()
aShape.SetCanvas(osc)
self.diagram.AddShape(aShape)
constraining_shape = ogl.RectangleShape(120, 100)
constrained_shape1 = ogl.CircleShape(50)
constrained_shape2 = ogl.RectangleShape(80, 20)
aShape.AddChild(constraining_shape)
aShape.AddChild(constrained_shape1)
aShape.AddChild(constrained_shape2)
constraint = ogl.Constraint(ogl.CONSTRAINT_MIDALIGNED_BOTTOM,
constraining_shape,
[constrained_shape1, constrained_shape2])
aShape.AddConstraint(constraint)
aShape.Recompute()
def test_lib_ogl_Constants(self):
ogl.CONSTRAINT_CENTRED_VERTICALLY
ogl.CONSTRAINT_CENTRED_HORIZONTALLY
ogl.CONSTRAINT_CENTRED_BOTH
ogl.CONSTRAINT_LEFT_OF
ogl.CONSTRAINT_RIGHT_OF
ogl.CONSTRAINT_ABOVE
ogl.CONSTRAINT_BELOW
ogl.CONSTRAINT_ALIGNED_TOP
ogl.CONSTRAINT_ALIGNED_BOTTOM
ogl.CONSTRAINT_ALIGNED_LEFT
ogl.CONSTRAINT_ALIGNED_RIGHT
# Like aligned, but with the objects centred on the respective edge
# of the reference object.
ogl.CONSTRAINT_MIDALIGNED_TOP
ogl.CONSTRAINT_MIDALIGNED_BOTTOM
ogl.CONSTRAINT_MIDALIGNED_LEFT
ogl.CONSTRAINT_MIDALIGNED_RIGHT
# from _drawn
ogl.METAFLAGS_OUTLINE
ogl.METAFLAGS_ATTACHMENTS
ogl.DRAWN_ANGLE_0
ogl.DRAWN_ANGLE_90
ogl.DRAWN_ANGLE_180
ogl.DRAWN_ANGLE_270
# Drawing operations
ogl.DRAWOP_SET_PEN
ogl.DRAWOP_SET_BRUSH
ogl.DRAWOP_SET_FONT
ogl.DRAWOP_SET_TEXT_COLOUR
ogl.DRAWOP_SET_BK_COLOUR
ogl.DRAWOP_SET_BK_MODE
ogl.DRAWOP_SET_CLIPPING_RECT
ogl.DRAWOP_DESTROY_CLIPPING_RECT
ogl.DRAWOP_DRAW_LINE
ogl.DRAWOP_DRAW_POLYLINE
ogl.DRAWOP_DRAW_POLYGON
ogl.DRAWOP_DRAW_RECT
ogl.DRAWOP_DRAW_ROUNDED_RECT
ogl.DRAWOP_DRAW_ELLIPSE
ogl.DRAWOP_DRAW_POINT
ogl.DRAWOP_DRAW_ARC
ogl.DRAWOP_DRAW_TEXT
ogl.DRAWOP_DRAW_SPLINE
ogl.DRAWOP_DRAW_ELLIPTIC_ARC
# Line alignment flags
# Vertical by default
ogl.LINE_ALIGNMENT_HORIZ
ogl.LINE_ALIGNMENT_VERT
ogl.LINE_ALIGNMENT_TO_NEXT_HANDLE
ogl.LINE_ALIGNMENT_NONE
# keys
ogl.KEY_SHIFT
ogl.KEY_CTRL
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()