;ò ¬3Ac@sYdkZdkiiZdkZdeifd„ƒYZdeifd„ƒYZdeifd„ƒYZ dei fd„ƒYZ d ei fd „ƒYZ d ei fd „ƒYZ d ei fd„ƒYZdeifd„ƒYZd„ZdZedjoPdkZdkZdkZeideiieidƒgeidƒndS(Ns DrawnShapecBstZd„ZRS(NcCsÆtii|ƒ|itiƒ|itiƒ|i ddfddfddfƒ|iti dƒƒ|i ddfddfƒ|iti dƒƒ|i dd d d fdƒ|iti d ƒƒ|i dd d dfƒ|itiƒ|itidtititiƒƒ|idddfƒ|itiƒ|iddfddfddfddfgƒ|itiƒ|iddfd dfd dfddfgƒ|iƒdS(Niiöÿÿÿiiâÿÿÿs#ff8030is#00ee10iìÿÿÿi i(s#9090f0ii<iisDrawTextiæÿÿÿiiœÿÿÿiÓÿÿÿiÝÿÿÿi-(sogls DrawnShapes__init__sselfs SetDrawnBrushswxs WHITE_BRUSHs SetDrawnPens BLACK_PENsDrawArcsPensDrawLinesDrawRoundedRectangles DrawEllipsesSetDrawnTextColoursBLACKs SetDrawnFontsFontsSWISSsNORMALsDrawTexts GREEN_BRUSHs DrawPolygons DrawLiness CalculateSize(sself((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__s$%(11(s__name__s __module__s__init__(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys DrawnShapess DiamondShapecBstZddd„ZRS(Nf0.0cCs‹tii|ƒ|djo d}n|djo d}nd| df|ddfd|df| ddfg}|i|ƒdS(Nf0.0f60.0f2.0(sogls PolygonShapes__init__sselfswshspointssCreate(sselfswshspoints((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__8s    <(s__name__s __module__s__init__(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys DiamondShape7ssRoundedRectangleShapecBstZddd„ZRS(Nf0.0cCs(tii|||ƒ|id ƒdS(Nf0.29999999999999999(soglsRectangleShapes__init__sselfswshsSetCornerRadius(sselfswsh((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__Ks(s__name__s __module__s__init__(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysRoundedRectangleShapeJssCompositeDivisionShapecBstZd„ZRS(NcCsåtii|ƒ|i|ƒ|iƒtiddƒ}|i ƒdi |ƒ|i ƒdi t i ƒtidƒ}|it iƒ|i ƒdi |ƒ|i|i ƒdiƒƒx!|i ƒD]}|idƒqÊWdS(Ni(i<ii(soglsCompositeShapes__init__sselfs SetCanvasscanvass MakeContainersRectangleShapesshape2s GetDivisionssAddChildsDivideswxs HORIZONTALs CircleShapesshape3sSetBrushs CYAN_BRUSHsSetXsGetXsdivisionsSetSensitivityFilter(sselfscanvassdivisionsshape2sshape3((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__Ss   (s__name__s __module__s__init__(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysCompositeDivisionShapeRssCompositeShapecBstZd„ZRS(NcCstii|ƒ|i|ƒtiddƒ}tidƒ}tiddƒ}|i t i ƒ|i t iƒ|i|ƒ|i|ƒ|i|ƒtiti|||gƒ}|i|ƒ|iƒ|itƒ|itƒ|itƒ|idƒdS(Nixidi2iPii(soglsCompositeShapes__init__sselfs SetCanvasscanvassRectangleShapesconstraining_shapes CircleShapesconstrained_shape1sconstrained_shape2sSetBrushswxs BLUE_BRUSHs RED_BRUSHsAddChilds ConstraintsCONSTRAINT_MIDALIGNED_BOTTOMs constraints AddConstraints Recomputes SetDraggablesFalsesSetSensitivityFilter(sselfscanvass constraintsconstrained_shape1sconstrained_shape2sconstraining_shape((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__os"         (s__name__s __module__s__init__(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysCompositeShapenss DividedShapecBs&tZd„Zed„Zd„ZRS(NcCs tii|||ƒtiƒ}|idƒ|i ddƒ|i ti ƒ|i |ƒtiƒ}|idƒ|i ddƒ|i ti tiBƒ|i |ƒtiƒ}|idƒ|i ddƒ|i tiƒ|i |ƒ|iƒ|i|ƒdS(Ns DividedShapef0.0f0.20000000000000001sThis is Region number two.f0.29999999999999999s"Region 3 with embedded line breaksf0.5(sogls DividedShapes__init__sselfswidthsheights ShapeRegionsregion1sSetTextsSetProportionss SetFormatModesFORMAT_CENTRE_HORIZs AddRegionsregion2sFORMAT_CENTRE_VERTsregion3s FORMAT_NONEsSetRegionSizessReformatRegionsscanvas(sselfswidthsheightscanvassregion3sregion1sregion2((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__s$          cCsvd}|tjo|iƒ}nti|ƒ}x=|iƒD]/}|i ƒ}|i |||ƒ|d7}q?WdS(Nii( srnumscanvassNonesselfs GetCanvasswxsClientDCsdcs GetRegionssregionsGetTextstexts FormatText(sselfscanvasstextsdcsregionsrnum((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysReformatRegions©s   cCsPdG|GHtii||||||ƒ|i ƒ|i ƒ|i ƒi ƒdS(Ns***( sselfsogls DividedShapesOnSizingEndDragLeftsptsxsyskeyssattchsSetRegionSizessReformatRegionss GetCanvassRefresh(sselfsptsxsyskeyssattch((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysOnSizingEndDragLeft·s    (s__name__s __module__s__init__sNonesReformatRegionssOnSizingEndDragLeft(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys DividedShapes  s MyEvtHandlercBsStZd„Zd„Zddd„Zddd„Zd„Zd„Zd„ZRS( NcCs&tii|ƒ||_||_dS(N(soglsShapeEvtHandlers__init__sselfslogsframes statbarFrame(sselfslogsframe((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__Âs cCsT|iƒ|iƒf\}}|iƒ\}}|i i d||||fƒdS(NsPos: (%d, %d) Size: (%d, %d)( sshapesGetXsGetYsxsysGetBoundingBoxMaxswidthsheightsselfs statbarFrames SetStatusText(sselfsshapesheightswidthsysx((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysUpdateStatusBarÇsic Cs |iƒ} | iƒ}ti|ƒ}|i|ƒ| i ƒo!| i t |ƒ|i |ƒn—t } |iƒiƒ} g}x,| D]$}|i ƒo|i|ƒq‡q‡W| i t|ƒ|o2x|D]}|i t |ƒqÍW|i |ƒn|i| ƒdS(N(sselfsGetShapesshapes GetCanvasscanvasswxsClientDCsdcs PrepareDCsSelectedsSelectsFalsesRedrawsredraws GetDiagrams GetShapeLists shapeLists toUnselectsssappendsTruesUpdateStatusBar( sselfsxsyskeyss attachmentscanvassssdcs toUnselectsshapesredraws shapeList((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys OnLeftClickÎs*     cCsa|iƒ}tii|||||ƒ|i ƒ o|i ||||ƒn|i |ƒdS(N( sselfsGetShapesshapesoglsShapeEvtHandlers OnEndDragLeftsxsyskeyss attachmentsSelecteds OnLeftClicksUpdateStatusBar(sselfsxsyskeyss attachmentsshape((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys OnEndDragLeftîs  cCs6tii||||||ƒ|i |i ƒƒdS(N( soglsShapeEvtHandlersOnSizingEndDragLeftsselfsptsxsyskeyssattchsUpdateStatusBarsGetShape(sselfsptsxsyskeyssattch((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysOnSizingEndDragLeftøscCs9tii|||||||ƒ|i |i ƒƒdS(N( soglsShapeEvtHandlers OnMovePostsselfsdcsxsysoldXsoldYsdisplaysUpdateStatusBarsGetShape(sselfsdcsxsysoldXsoldYsdisplay((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys OnMovePostýs"cGs|iid|iƒƒdS(Ns%s (sselfslogs WriteTextsGetShape(sselfsdontcare((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys OnRightClicks( s__name__s __module__s__init__sUpdateStatusBars OnLeftClicks OnEndDragLeftsOnSizingEndDragLefts OnMovePosts OnRightClick(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys MyEvtHandlerÁs     s TestWindowcBs,tZd„Zd„Zd„Zd„ZRS(NcCsÜtii||ƒd}d}|idd|d|dƒ||_||_ |i dƒti ƒ|_ |i |i ƒ|i i|ƒg|_g|_tidtiƒ}tidtiƒ}|it|ƒddtitidƒ|it|ƒd d titid ƒ|itid ƒd dtitidƒtidƒ|iti ddƒddti!ti"dƒ|iti#ddƒddtiti"dƒ|it$ƒdd titi%dƒ|it&dd|ƒdd ti|d!ƒ} |it(d"d"ƒd#d titidti)ƒtid$ƒ|it*d%d&ƒd'd(titi+d)ƒ|d*ƒt,i-ƒ}ti/|tiƒ} |i1| ƒti2ƒ}|i4|ƒ|i|d+d,t5t5d-ƒti6|ƒ}|i8|ƒxét9t:|iƒƒD]Ò} |i| } | d.t:|iƒjo|id/}n|i| d.}ti>ƒ} | i|ƒ| i@tiƒ| iAti%ƒ| iBtiCƒ| iDd)ƒ| iE| |ƒ|i iF| ƒ| iGtHƒqWdS(0Nièis LIGHT BLUEsMEDIUM TURQUOISEsWHEATii6sDivisionidis CompositeiPiKinisCircleixi-i i#sOGL is now a pure Python lib!iUi2i1i<s Rectangleiôs DrawnShapeiŒi–ii siZicsPolygoni_iFiYi‘is Rounded Rectiái‚sBitmapii(Isogls ShapeCanvass__init__sselfsparentsmaxWidths maxHeights SetScrollbarsslogsframesSetBackgroundColoursDiagramsdiagrams SetDiagrams SetCanvassshapesssave_gdiswxsBrushsSOLIDs rRectBrushsdsBrushs MyAddShapesCompositeDivisionShapes BLACK_PENs BLUE_BRUSHsCompositeShapes RED_BRUSHs CircleShapesPensBLUEs GREEN_BRUSHs TextShapes GREEN_PENsLIGHT_GREY_BRUSHsRectangleShapes DrawnShapes BLACK_BRUSHs DividedShapesdss DiamondShapesDOTsRoundedRectangleShapesREDsimagessgetTest2BitmapsbmpsMasksmasksSetMasks BitmapShapesss SetBitmapsNonesClientDCsdcs PrepareDCsrangeslensxs fromShapestoShapes LineShapeslinesSetPensSetBrushsAddArrows ARROW_ARROWsMakeLineControlPointssAddLinesAddShapesShowsTrue(sselfsparentslogsframesmaxWidthstoShapes rRectBrushsdcsbmpsxslinesdss fromShapesmasks maxHeightsssdsBrush((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys__init__ sn     % +"         c CsVt|tiƒo3ti|ƒ}|i|ƒ|i |||ƒn|i t t ƒ|i|ƒ|i|ƒ|i|ƒ|o|i|ƒn|o|i|ƒn|o+x(|idƒD]} |i| ƒqÄWn|ii|ƒ|it ƒt|i|iƒ}|i |ƒ|i!|i"ƒƒ|i#|ƒ|i$i%|ƒ|SdS(Ns (&s isinstancesshapesoglsCompositeShapeswxsClientDCsselfsdcs PrepareDCsMovesxsys SetDraggablesTrues SetCanvassSetXsSetYspensSetPensbrushsSetBrushstextssplitslinesAddTextsdiagramsAddShapesShows MyEvtHandlerslogsframes evthandlersSetShapesSetPreviousHandlersGetEventHandlersSetEventHandlersshapessappend( sselfsshapesxsyspensbrushstexts evthandlersdcsline((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys MyAddShapefs0       cCs!|iid|||fƒdS(NsOnBeginDragLeft: %s, %s, %s (sselfslogswritesxsyskeys(sselfsxsyskeys((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysOnBeginDragLeftƒscCs!|iid|||fƒdS(NsOnEndDragLeft: %s, %s, %s (sselfslogswritesxsyskeys(sselfsxsyskeys((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys OnEndDragLeft†s(s__name__s __module__s__init__s MyAddShapesOnBeginDragLefts OnEndDragLeft(((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys TestWindows ]  cCs$tiƒt|||ƒ}|SdS(N(sogls OGLInitializes TestWindowsnbslogsframeswin(sframesnbslogswin((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pysrunTestŒs s‚

Object Graphics Library

The Object Graphics Library is a library supporting the creation and manipulation of simple and complex graphic images on a canvas.

The OGL library was originally written in C++ and provided to wxPython via an extension module wrapper as is most of the rest of wxPython. The code has now been ported to Python (with many thanks to Pierre Hjälm!) in order to make it be more easily maintainable and less likely to get rusty because nobody cares about the C++ lib any more.

The Python version should be mostly drop-in compatible with the wrapped C++ version, except for the location of the package (wx.lib.ogl instead of wx.ogl) and that the base class methods are called the normal Python way (superclass.Method(self, ...)) instead of the hacky way that had to be done to support overloaded methods with the old SWIG (self.base_Method(...)) s__main__sii(swxs wx.lib.oglslibsoglsimagess DrawnShapes PolygonShapes DiamondShapesRectangleShapesRoundedRectangleShapesCompositeShapesCompositeDivisionShapes DividedShapesShapeEvtHandlers MyEvtHandlers ShapeCanvass TestWindowsrunTestsoverviews__name__ssyssossrunsmainspathsbasenamesargv(ssyssrunsossRoundedRectangleShapesoverviewsCompositeShapes MyEvtHandlersrunTestsogls TestWindowsCompositeDivisionShapes DiamondShapesimagess DrawnShapes DividedShapeswx((sc/mnt/gmirror/ports/x11-toolkits/py-wxPython26-common/work/wxPython-src-2.6.3.3/wxPython/demo/OGL.pys?s   !2G„