X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/utils/wxPython/demo/wxOGL.py?ds=inline diff --git a/utils/wxPython/demo/wxOGL.py b/utils/wxPython/demo/wxOGL.py deleted file mode 100644 index 8012b4873b..0000000000 --- a/utils/wxPython/demo/wxOGL.py +++ /dev/null @@ -1,212 +0,0 @@ - -from wxPython.wx import * -from wxPython.ogl import * - -#---------------------------------------------------------------------- -# This creates some pens and brushes that the OGL library uses. - -wxOGLInitialize() - -#---------------------------------------------------------------------- - -class DiamondShape(wxPolygonShape): - def __init__(self, w=0.0, h=0.0): - wxPolygonShape.__init__(self) - if w == 0.0: - w = 60.0 - if h == 0.0: - h = 60.0 - - ## Either wxRealPoints or 2-tuples of floats works. - - #points = [ wxRealPoint(0.0, -h/2.0), - # wxRealPoint(w/2.0, 0.0), - # wxRealPoint(0.0, h/2.0), - # wxRealPoint(-w/2.0, 0.0), - # ] - points = [ (0.0, -h/2.0), - (w/2.0, 0.0), - (0.0, h/2.0), - (-w/2.0, 0.0), - ] - - self.Create(points) - - -#---------------------------------------------------------------------- - -class RoundedRectangleShape(wxRectangleShape): - def __init__(self, w=0.0, h=0.0): - wxRectangleShape.__init__(self, w, h) - self.SetCornerRadius(-0.3) - - -#---------------------------------------------------------------------- - -class MyEvtHandler(wxShapeEvtHandler): - def __init__(self, log, frame): - wxShapeEvtHandler.__init__(self) - self.log = log - self.statbarFrame = frame - - - def UpdateStatusBar(self, shape): - x,y = shape.GetX(), shape.GetY() - width, height = shape.GetBoundingBoxMax() - self.statbarFrame.SetStatusText("Pos: (%d,%d) Size: (%d, %d)" % - (x, y, width, height)) - - - def OnLeftClick(self, x, y, keys = 0, attachment = 0): - shape = self.GetShape() - canvas = shape.GetCanvas() - dc = wxClientDC(canvas) - canvas.PrepareDC(dc) - - if shape.Selected(): - shape.Select(false, dc) - canvas.Redraw(dc) - else: - redraw = false - shapeList = canvas.GetDiagram().GetShapeList() - toUnselect = [] - for s in shapeList: - if s.Selected(): - # If we unselect it now then some of the objects in - # shapeList will become invalid (the control points are - # shapes too!) and bad things will happen... - toUnselect.append(s) - - shape.Select(true, dc) - - if toUnselect: - for s in toUnselect: - s.Select(false, dc) - canvas.Redraw(dc) - - self.UpdateStatusBar(shape) - - - def OnEndDragLeft(self, x, y, keys = 0, attachment = 0): - shape = self.GetShape() - self.base_OnEndDragLeft(x, y, keys, attachment) - if not shape.Selected(): - self.OnLeftClick(x, y, keys, attachment) - self.UpdateStatusBar(shape) - - - def OnSize(self, x, y): - self.base_OnSize(x, y) - self.UpdateStatusBar(self.GetShape()) - - -# def OnMovePost(self, dc, x, y, oldX, oldY, display): -# self.base_OnMovePost(dc, x, y, oldX, oldY, display) -# self.UpdateStatusBar(self.GetShape()) - - - def OnRightClick(self, *dontcare): - self.log.WriteText("%s\n" % self.GetShape()) - - -#---------------------------------------------------------------------- - -class TestWindow(wxShapeCanvas): - def __init__(self, parent, log, frame): - wxShapeCanvas.__init__(self, parent) - - self.log = log - self.frame = frame - self.SetBackgroundColour(wxWHITE) - self.diagram = wxDiagram() - self.SetDiagram(self.diagram) - self.diagram.SetCanvas(self) - self.shapes = [] - - rRectBrush = wxBrush(wxNamedColour("MEDIUM TURQUOISE"), wxSOLID) - - self.MyAddShape(wxCircleShape(80), 100, 100, wxPen(wxBLUE, 3), wxGREEN_BRUSH, "Circle") - self.MyAddShape(wxRectangleShape(85, 50), 305, 60, wxBLACK_PEN, wxLIGHT_GREY_BRUSH, "Rectangle") - self.MyAddShape(DiamondShape(90, 90), 345, 235, wxPen(wxBLUE, 3, wxDOT), wxRED_BRUSH, "Polygon") - self.MyAddShape(RoundedRectangleShape(95,70), 140, 255, wxPen(wxRED, 1), rRectBrush, "Rounded Rect") - - dc = wxClientDC(self) - self.PrepareDC(dc) - for x in range(len(self.shapes)): - fromShape = self.shapes[x] - if x+1 == len(self.shapes): - toShape = self.shapes[0] - else: - toShape = self.shapes[x+1] - line = wxLineShape() - line.SetCanvas(self) - line.SetPen(wxBLACK_PEN) - line.SetBrush(wxBLACK_BRUSH) - line.AddArrow(ARROW_ARROW) - line.MakeLineControlPoints(2) - fromShape.AddLine(line, toShape) - self.diagram.AddShape(line) - line.Show(true) - - # for some reason, the shapes have to be moved for the line to show up... - fromShape.Move(dc, fromShape.GetX(), fromShape.GetY()) - - - - def MyAddShape(self, shape, x, y, pen, brush, text): - shape.SetDraggable(true) - shape.SetCanvas(self) - shape.SetX(x) - shape.SetY(y) - shape.SetPen(pen) - shape.SetBrush(brush) - shape.AddText(text) - #shape.SetShadowMode(SHADOW_RIGHT) - self.diagram.AddShape(shape) - shape.Show(true) - - evthandler = MyEvtHandler(self.log, self.frame) - evthandler.SetShape(shape) - evthandler.SetPreviousHandler(shape.GetEventHandler()) - shape.SetEventHandler(evthandler) - - self.shapes.append(shape) - - - def __del__(self): - for shape in self.diagram.GetShapeList(): - if shape.GetParent() == None: - shape.SetCanvas(None) - shape.Destroy() - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestWindow(nb, log, frame) - return win - -#---------------------------------------------------------------------- - -class __Cleanup: - cleanup = wxOGLCleanUp - def __del__(self): - self.cleanup() - -# when this module gets cleaned up then wxOGLCleanUp() will get called -__cu = __Cleanup() - - - - - - - - -overview = """\ -The Object Graphics Library is a library supporting the creation and -manipulation of simple and complex graphic images on a canvas. - -""" - -