mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-07-23 13:41:07 +02:00
233 lines
6.8 KiB
Python
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()
|