Changeset 622

Show
Ignore:
Timestamp:
07/14/03 17:01:29 (5 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/SVGSkinObject.py

    r615 r622  
    2626import logging 
    2727from RBSkinning.SkinObject import SkinObject 
    28 from SVGRendering import SVGRenderContext 
     28from RenderItems import Common 
    2929 
    3030#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3737    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3838 
    39     log = logging.getLogger('SVG.SVGSkin.SVGSkinObject') 
    40     RenderContextFactory = SVGRenderContext 
     39    log = logging.getLogger('SVG.SVGSkin') 
     40    RenderContextFactory = Common.RenderContext 
     41    RenderItemFactory = lambda self: None#Common.RenderItemBase 
    4142 
    4243    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    4849        SkinObject.__init__(self, builder, parent, node, settings, namespacemap) 
    4950 
     51    def SkinInitialize(self): 
     52        SkinObject.SkinInitialize(self) 
     53 
     54        self.object = self.RenderItemFactory() 
     55 
     56        if self.object is not None: 
     57            self.object.InterpretSettings(self.settings) 
     58 
     59        try:  
     60            idname = self.settings['id'] 
     61            idmapping = self.context.idmapping 
     62        except (KeyError, AttributeError), e:  
     63            pass # ignore 
     64        else:  
     65            idmapping[idname] = self.object 
     66 
    5067    def SkinFinalize(self): 
    5168        SkinObject.SkinFinalize(self) 
     
    5370            self.object.AddChildRenderItems(self.Elements()) 
    5471 
    55     def SkinComplete(self): 
    56         SkinObject.SkinComplete(self) 
    57  
    58         try: idname = self.settings['id'] 
    59         except KeyError: pass 
    60         else: self.context.idmapping[idname] = self.object 
    61  
    6272    def DisplayOn(self, renderer, rendercontext=None): 
    6373        if self.object is None: 
    64             self.log.warning("SVGRenderItem is not set for element %r", self.node[1]) 
     74            self.log.warning("RenderItem is not set for element %r", self.node[1]) 
    6575        else: 
    6676            if rendercontext is None: 
     
    6878            self.object.DisplayOn(renderer, rendercontext) 
    6979 
     80#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     81 
     82class SVGSkinContentObject(SVGSkinObject): 
     83    def SkinFinalize(self): 
     84        SVGSkinObject.SkinFinalize(self) 
     85        if self.object is not None: 
     86            content = self.Content() 
     87            if content: 
     88                content = type(content[0])().join(content) 
     89                self.object.AddContent(content) 
     90 
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/circle.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from SVGSkinObject import SVGSkinObject 
     27from RenderItems.Shapes import ShapeRenderItem 
    2728 
    2829#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3031#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3132 
    32 class CircleRenderItem(SVGShapeRenderItem): 
     33class CircleRenderItem(ShapeRenderItem): 
    3334    def DisplayOn(self, renderer, rendercontext): 
    3435        renderer.DisplayCircle(self, rendercontext) 
     36 
     37    def InterpretSettings(self, settings): 
     38        ShapeRenderItem.InterpretSettings(self, settings) 
     39        self.cx = settings.get('cx', 0.) 
     40        self.cy = settings.get('cy', 0.) 
     41        self.r = settings.get('r', 0.) 
     42 
     43    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3544 
    3645    def GetCX(self): 
     
    5766#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    5867 
    59 class circle(SVGShapeSkinObject): 
    60     def SkinInitialize(self): 
    61         self.object = CircleRenderItem() 
    62         SVGShapeSkinObject.SkinInitialize(self) 
    63         self.object.cx = self.settings.get('cx', 0.) 
    64         self.object.cy = self.settings.get('cy', 0.) 
    65         self.object.r = self.settings.get('r', 0.) 
     68class circle(SVGSkinObject): 
     69    RenderItemFactory = CircleRenderItem 
    6670 
    67         self.SetStyleSettings() 
    68  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/desc.py

    r620 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGSkinObject import SVGSkinObject 
    27 from SVGRendering import SVGRenderItemBase 
     26from RenderItems.Common import RenderItemBase 
     27from SVGSkinObject import SVGSkinContentObject 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class DescriptionRenderItem(SVGRenderItemBase): 
     33class DescriptionRenderItem(RenderItemBase): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplayDescription(self, rendercontext) 
    3636 
     37    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     38 
     39    def AddContent(self, content): 
     40        self.content += content 
     41 
     42    def GetContent(self): 
     43        try: 
     44            return self._content 
     45        except AttributeError: 
     46            self._content = '' 
     47            return self._content 
     48    def SetContent(self, content): 
     49        self._content = content or '' 
     50    content = property(GetContent, SetContent) 
     51 
    3752#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3853 
    39 class desc(SVGSkinObject): 
    40     def SkinInitialize(self): 
    41         self.object = DescriptionRenderItem() 
    42         SVGSkinObject.SkinInitialize(self) 
     54class desc(SVGSkinContentObject): 
     55    RenderItemFactory = DescriptionRenderItem 
    4356 
    44     def SkinFinalize(self): 
    45         SVGSkinObject.SkinFinalize(self) 
    46         content = self.Content() 
    47         if content: 
    48             content = type(content[0])().join(content) 
    49             self.object.value = content 
    50         else: 
    51             self.object.value = None 
    52  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/ellipse.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from SVGSkinObject import SVGSkinObject 
     27from RenderItems.Shapes import ShapeRenderItem 
    2728 
    2829#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3031#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3132 
    32 class EllipseRenderItem(SVGShapeRenderItem): 
     33class EllipseRenderItem(ShapeRenderItem): 
    3334    def DisplayOn(self, renderer, rendercontext): 
    3435        renderer.DisplayEllipse(self, rendercontext) 
     36 
     37    def InterpretSettings(self, settings): 
     38        ShapeRenderItem.InterpretSettings(self, settings) 
     39        self.cx = settings.get('cx', 0.) 
     40        self.cy = settings.get('cy', 0.) 
     41        self.rx = settings.get('rx', 0.) 
     42        self.ry = settings.get('ry', 0.) 
     43 
     44    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3545 
    3646    def GetCX(self): 
     
    8191#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    8292 
    83 class ellipse(SVGShapeSkinObject): 
    84     def SkinInitialize(self): 
    85         self.object = EllipseRenderItem() 
    86         SVGShapeSkinObject.SkinInitialize(self) 
    87         self.object.cx = self.settings.get('cx', 0.) 
    88         self.object.cy = self.settings.get('cy', 0.) 
    89         self.object.rx = self.settings.get('rx', 0.) 
    90         self.object.ry = self.settings.get('ry', 0.) 
     93class ellipse(SVGSkinObject): 
     94    RenderItemFactory = EllipseRenderItem 
    9195 
    92         self.SetStyleSettings() 
    93  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/g.py

    r615 r622  
    2525 
    2626from SVGSkinObject import SVGSkinObject 
    27 from SVGRendering import SVGContainerRenderItem 
     27from RenderItems import Groups 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class GroupRenderItem(SVGContainerRenderItem): 
     33class GroupRenderItem(Groups.GroupRenderItem): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplayGroup(self, rendercontext) 
    36         SVGContainerRenderItem.DisplayOn(self, renderer, rendercontext) 
     36        Groups.GroupRenderItem.DisplayOn(self, renderer, rendercontext) 
    3737 
    3838#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3939 
    4040class g(SVGSkinObject): 
    41     def SkinInitialize(self): 
    42         self.object = GroupRenderItem() 
    43         SVGSkinObject.SkinInitialize(self) 
     41    RenderItemFactory = GroupRenderItem 
    4442 
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/image.py

    r616 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 import warnings 
    2726from SVGSkinObject import SVGSkinObject 
    28 from SVGRendering import SVGTransformableRenderItem 
     27from RenderItems.Common import TransformableRenderItem 
    2928 
    3029#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3231#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3332 
    34 class ImageRenderItem(SVGTransformableRenderItem): 
     33class ImageRenderItem(TransformableRenderItem): 
    3534    def DisplayOn(self, renderer, rendercontext): 
    3635        renderer.DisplayImage(self, rendercontext) 
     36 
     37    def InterpretSettings(self, settings): 
     38        TransformableRenderItem.InterpretSettings(self, settings) 
     39 
     40        self.width = settings.get('width', '100%') 
     41        self.height = settings.get('height', '100%') 
     42 
     43        xlink = settings[('http://www.w3.org/1999/xlink', 'href')] 
     44        self.imagereference = xlink 
     45 
     46    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3747 
    3848    def GetWidth(self): 
     
    5464    height = property(GetHeight, SetHeight) 
    5565 
    56  
    5766#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    5867 
    5968class image(SVGSkinObject): 
    60     def SkinInitialize(self): 
    61         SVGSkinObject.SkinInitialize(self) 
    62         self.object = ImageRenderItem() 
    63         self.object.x = self.settings.get('x', 0.) 
    64         self.object.y = self.settings.get('y', 0.) 
    65         self.object.width = self.settings.get('width', '100%') 
    66         self.object.height = self.settings.get('height', '100%') 
     69    RenderItemFactory = ImageRenderItem 
    6770 
    68     def SkinFinalize(self): 
    69         SVGSkinObject.SkinFinalize(self) 
    70  
    71         xlink = self.settings[('http://www.w3.org/1999/xlink', 'href')] 
    72         self.object.imagereference = xlink 
    73  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/line.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from SVGSkinObject import SVGSkinObject 
     27from RenderItems.Shapes import ShapeRenderItem 
    2728 
    2829#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3031#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3132 
    32 class LineRenderItem(SVGShapeRenderItem): 
     33class LineRenderItem(ShapeRenderItem): 
    3334    def DisplayOn(self, renderer, rendercontext): 
    3435        renderer.DisplayLine(self, rendercontext) 
     36 
     37    def InterpretSettings(self, settings): 
     38        ShapeRenderItem.InterpretSettings(self, settings) 
     39        self.x1 = settings['x1'] 
     40        self.y1 = settings['y1'] 
     41        self.x2 = settings['x2'] 
     42        self.y2 = settings['y2'] 
     43 
     44    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3545 
    3646    def GetX1(self): 
     
    6070#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    6171 
    62 class line(SVGShapeSkinObject): 
    63     def SkinInitialize(self): 
    64         self.object = LineRenderItem() 
    65         SVGShapeSkinObject.SkinInitialize(self) 
    66         self.object.x1 = self.settings['x1'] 
    67         self.object.y1 = self.settings['y1'] 
    68         self.object.x2 = self.settings['x2'] 
    69         self.object.y2 = self.settings['y2'] 
     72class line(SVGSkinObject): 
     73    RenderItemFactory = LineRenderItem 
    7074 
    71         self.SetStyleSettings() 
    72  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/path.py

    r617 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 import warnings 
    27 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
    28 from SVGPathBuilder import * 
     26from RenderItems import PathBuilder 
     27from RenderItems.Shapes import ShapeRenderItem 
     28from SVGSkinObject import SVGSkinObject 
    2929 
    3030#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3232#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3333 
    34 class PathFactory(PathFactoryAbstract): 
    35     def BeginPath(self, pathstr):  
    36         warnings.warn("TODO: implement path command 'BeginPath'") 
    37     def EndPath(self, pathstr):  
    38         warnings.warn("TODO: implement path command 'EndPath'") 
    39     def MoveTo(self, relative, x, y):  
    40         warnings.warn("TODO: implement path command 'MoveTo'") 
    41     def ClosePath(self, relative):  
    42         warnings.warn("TODO: implement path command 'ClosePath'") 
    43     def LineTo(self, relative, x, y):  
    44         warnings.warn("TODO: implement path command 'LineTo'") 
    45     def HLineTo(self, relative, x):  
    46         warnings.warn("TODO: implement path command 'HLineTo'") 
    47     def VLineTo(self, relative, y):  
    48         warnings.warn("TODO: implement path command 'VLineTo'") 
    49     def CubicBezierTo(self, relative, x1, y1, x2, y2, x, y):  
    50         warnings.warn("TODO: implement path command 'CubicBezierTo'") 
    51     def SmoothCurveTo(self, relative, x2, y2, x, y):  
    52         warnings.warn("TODO: implement path command 'SmoothCurveTo'") 
    53     def QuadraticBezierTo(self, relative, x1, y1, x, y):  
    54         warnings.warn("TODO: implement path command 'QuadraticBezierTo'") 
    55     def SmoothQuadraticBezierTo(self, relative, x, y):  
    56         warnings.warn("TODO: implement path command 'SmoothQuadraticBezierTo'") 
    57     def EllipticArcTo(self, relative, rx, ry, xrotation, largeArcFlag, sweepFlag, x, y):  
    58         warnings.warn("TODO: implement path command 'EllipticArcTo'") 
    59  
    60 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    61  
    62 class PathRenderItem(SVGShapeRenderItem): 
    63     pathbuilder = PathCommandBuilder() 
     34class PathRenderItem(ShapeRenderItem): 
     35    pathbuilder = PathBuilder.PathCommandBuilder() 
     36    pathfactoryfactory = PathBuilder.SavePathFactory 
    6437 
    6538    def DisplayOn(self, renderer, rendercontext): 
    6639        renderer.DisplayPath(self, rendercontext) 
     40 
     41    def InterpretSettings(self, settings): 
     42        ShapeRenderItem.InterpretSettings(self, settings) 
     43        self.d = settings['d'] 
     44 
     45    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    6746 
    6847    def GetPath(self): 
     
    7049    def SetPath(self, value): 
    7150        self._path = self._asPath(value) 
    72     p = property(GetPath, SetPath) 
     51    d = path = property(GetPath, SetPath) 
    7352 
    7453    def _asPath(self, path): 
    75         return self.pathbuilder.Build(path, PathFactory()) 
     54        if isinstance(path, (str, unicode)): 
     55            return self.pathbuilder.Build(path, self.pathfactoryfactory()) 
     56        else: 
     57            return path 
    7658 
    7759#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    7860 
    79 class path(SVGShapeSkinObject): 
    80     def SkinInitialize(self): 
    81         self.object = PathRenderItem() 
    82         SVGShapeSkinObject.SkinInitialize(self) 
    83         self.object.p = self.settings['d'] 
     61class path(SVGSkinObject): 
     62    RenderItemFactory = PathRenderItem 
    8463 
    85         self.SetStyleSettings() 
    86  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/polygon.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from polyline import PolylineRenderItem 
    27 from SVGShapeSkinObject import SVGShapeSkinObject 
     26from RenderItems.Shapes import PolyShapeRenderItem 
     27from SVGSkinObject import SVGSkinObject 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class PolygonRenderItem(PolylineRenderItem): 
     33class PolygonRenderItem(PolyShapeRenderItem): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplayPolygon(self, rendercontext) 
     
    3737#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3838 
    39 class polygon(SVGShapeSkinObject): 
    40     def SkinInitialize(self): 
    41         self.object = PolygonRenderItem() 
    42         SVGShapeSkinObject.SkinInitialize(self) 
    43         self.object.points = self.settings['points'] 
     39class polygon(SVGSkinObject): 
     40    RenderItemFactory = PolygonRenderItem 
    4441 
    45         self.SetStyleSettings() 
    46  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/polyline.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from RenderItems.Shapes import PolyShapeRenderItem 
     27from SVGSkinObject import SVGSkinObject 
    2728 
    2829#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3031#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3132 
    32 class PolylineRenderItem(SVGShapeRenderItem): 
     33class PolylineRenderItem(PolyShapeRenderItem): 
    3334    def DisplayOn(self, renderer, rendercontext): 
    3435        renderer.DisplayPolyline(self, rendercontext) 
    3536 
    36     def GetPoints(self): 
    37         return self._points 
    38     def SetPoints(self, value): 
    39         self._points = self._asPointList(value) 
    40     points = property(GetPoints, SetPoints) 
    41  
    42     def _asPointList(self, pointlist): 
    43         if not isinstance(pointlist, list): 
    44             pointlist = pointlist.replace(',', ' ') 
    45             pointlist = pointlist.split() 
    46         else: 
    47             pointlist = list(pointlist) 
    48  
    49         if not isinstance(pointlist[0], tuple): 
    50             # so much easier in python2.3 
    51             ##pointlist = zip(pointlist[0::2], pointlist[1::2]) 
    52             # but alas, we're still developing for python 2.2.3 
    53             pointlist = [self._asCoordTuple(pointlist[i:i+2]) for i in xrange(0, len(pointlist), 2)] 
    54         else: 
    55             pointlist = [self._asCoordTuple(entry) for entry in pointlist] 
    56  
    57         return pointlist 
    58  
    5937#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    6038 
    61 class polyline(SVGShapeSkinObject): 
    62     def SkinInitialize(self): 
    63         self.object = PolylineRenderItem() 
    64         SVGShapeSkinObject.SkinInitialize(self) 
    65         self.object.points = self.settings['points'] 
    66  
    67         self.SetStyleSettings() 
     39class polyline(SVGSkinObject): 
     40    RenderItemFactory = PolylineRenderItem 
    6841  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/rect.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from RenderItems.Shapes import ShapeRenderItem 
     27from SVGSkinObject import SVGSkinObject 
    2728 
    2829#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3031#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3132 
    32 class RectRenderItem(SVGShapeRenderItem): 
     33class RectRenderItem(ShapeRenderItem): 
    3334    def DisplayOn(self, renderer, rendercontext): 
    3435        renderer.DisplayRect(self, rendercontext) 
    3536 
     37    def InterpretSettings(self, settings): 
     38        ShapeRenderItem.InterpretSettings(self, settings) 
     39        self.width = settings('width', 1.0) 
     40        self.height = settings.get('height', 1.0) 
     41        self.rx = settings.get('rx', 0.) 
     42        self.ry = settings.get('ry', 0.) 
     43 
    3644    #~ rect attributes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3745     
    38     def GetX(self): 
    39         return self._x 
    40     def SetX(self, value): 
    41         self._x = self._asCoord(value) 
    42     x = property(GetX, SetX) 
    43  
    44     def GetY(self): 
    45         return self._y 
    46     def SetY(self, value): 
    47         self._y = self._asCoord(value) 
    48     y = property(GetY, SetY) 
    49  
    5046    def GetWidth(self): 
    51         return self._width 
     47        try: 
     48            return self._width 
     49        except AttributeError: 
     50            return 1.0 
    5251    def SetWidth(self, value): 
    5352        width = self._asCoord(value) 
     
    5857 
    5958    def GetHeight(self): 
    60         return self._height 
     59        try: 
     60            return self._height 
     61        except AttributeError: 
     62            return 1.0 
    6163    def SetHeight(self, value): 
    6264        height = self._asCoord(value) 
     
    7072    def GetRX(self, useRYifempty=True): 
    7173        try: 
    72             return min(self._rx, self.height/2
     74            return min(self._rx, self.height*0.5
    7375        except AttributeError: 
    7476            if useRYifempty: 
     
    8385    def GetRY(self, useRXifempty=True): 
    8486        try: 
    85             return min(self._ry, self.height/2
     87            return min(self._ry, self.height*0.5
    8688        except AttributeError: 
    8789            if useRXifempty: 
     
    9698#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    9799 
    98 class rect(SVGShapeSkinObject): 
    99     def SkinInitialize(self): 
    100         self.object = RectRenderItem() 
    101         SVGShapeSkinObject.SkinInitialize(self) 
    102         self.object.x = self.settings.get('x', 0.) 
    103         self.object.y = self.settings.get('y', 0.) 
    104         self.object.width = self.settings['width'] 
    105         self.object.height = self.settings['height'] 
     100class rect(SVGSkinObject): 
     101    RenderItemFactory = RectRenderItem 
    106102 
    107         try: rx = self.settings['rx'] 
    108         except LookupError: pass 
    109         else: self.object.rx = rx 
    110  
    111         try: ry = self.settings['ry'] 
    112         except LookupError: pass 
    113         else: self.object.ry = ry 
    114  
    115         self.SetStyleSettings() 
    116  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/svg.py

    r621 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 import warnings 
    2726from SVGSkinObject import SVGSkinObject 
    28 from SVGRendering import SVGContainerRenderItem 
     27from RenderItems.Groups import ContainerRenderItem 
    2928 
    3029#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3231#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3332 
    34 class SVGRenderItem(SVGContainerRenderItem): 
     33class SVGRenderItem(ContainerRenderItem): 
    3534    def __init__(self): 
    36         SVGContainerRenderItem.__init__(self) 
     35        ContainerRenderItem.__init__(self) 
    3736        self.renderingOptions = {} 
     37        self.idmapping = {} 
    3838 
    3939    def DisplayOn(self, renderer, rendercontext): 
    4040        renderer.DisplaySVG(self, rendercontext) 
    41         SVGContainerRenderItem.DisplayOn(self, renderer, rendercontext) 
     41        ContainerRenderItem.DisplayOn(self, renderer, rendercontext) 
     42 
     43    def InterpretSettings(self, settings): 
     44        ContainerRenderItem.InterpretSettings(self, settings) 
     45 
     46        self.renderingOptions['text'] = settings.get('text-rendering') 
     47        self.renderingOptions['shape'] = settings.get('shape-rendering') 
     48        self.renderingOptions['image'] = settings.get('image-rendering') 
    4249 
    4350#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    4451 
    4552class svg(SVGSkinObject): 
     53    RenderItemFactory = SVGRenderItem 
     54 
    4655    def SkinInitialize(self): 
    47         self.object = SVGRenderItem() 
    4856        SVGSkinObject.SkinInitialize(self) 
    49         self.object.x = self.settings.get('x', 0.
    50         self.object.y = self.settings.get('y', 0.) 
     57        self.PushContext(
     58        self.context.idmapping = self.object.idmapping 
    5159 
    52         try: width = self.settings['width'] 
    53         except LookupError: pass 
    54         else: self.object.width = width  
    55  
    56         try: height = self.settings['height'] 
    57         except LookupError: pass 
    58         else: self.object.height = height  
    59  
    60         try: viewBox = self.settings['viewBox'] 
    61         except LookupError: pass 
    62         else: self.object.viewBox = viewBox  
    63  
    64         try: preserveAspectRatio = self.settings['preserveAspectRatio'] 
    65         except LookupError: pass 
    66         else: self.object.preserveAspectRatio = preserveAspectRatio  
    67  
    68         self.object.renderingOptions['text'] = self.settings.get('text-rendering') 
    69         self.object.renderingOptions['shape'] = self.settings.get('shape-rendering') 
    70         self.object.renderingOptions['image'] = self.settings.get('image-rendering') 
    71  
    72         self.PushContext() 
    73         self.context.idmapping = self.object.idmapping = {} 
    74  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/symbol.py

    r615 r622  
    2525 
    2626from SVGSkinObject import SVGSkinObject 
    27 from SVGRendering import SVGContainerRenderItem 
     27from RenderItems.Groups import ContainerRenderItem 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class SymbolRenderItem(SVGContainerRenderItem): 
     33class SymbolRenderItem(ContainerRenderItem): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplaySymbol(self, rendercontext) 
    36         SVGContainerRenderItem.DisplayOn(self, renderer, rendercontext) 
     36        ContainerRenderItem.DisplayOn(self, renderer, rendercontext) 
    3737 
    3838#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3939 
    4040class symbol(SVGSkinObject): 
    41     def SkinInitialize(self): 
    42         self.object = SymbolRenderItem() 
    43         SVGSkinObject.SkinInitialize(self) 
     41    RenderItemFactory = SymbolRenderItem 
    4442 
    45         try: viewBox = self.settings['viewBox'] 
    46         except LookupError: pass 
    47         else: self.object.viewBox = viewBox  
    48  
    49         try: preserveAspectRatio = self.settings['preserveAspectRatio'] 
    50         except LookupError: pass 
    51         else: self.object.preserveAspectRatio = preserveAspectRatio  
    52  
    53     def DisplayOn(self, renderer, context): 
    54         pass # symbols are not displayed 
    55  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/text.py

    r615 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 import warnings 
    27 from SVGShapeSkinObject import SVGShapeSkinObject, SVGShapeRenderItem 
     26from RenderItems.Styled import StyledRenderItem 
     27from SVGSkinObject import SVGSkinContentObject 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class TextRenderItem(SVGShapeRenderItem): 
     33class TextRenderItem(StyledRenderItem): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplayText(self, rendercontext) 
    3636 
     37    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     38 
     39    def AddContent(self, content): 
     40        self.content += content 
     41 
     42    def GetContent(self): 
     43        try: 
     44            return self._content 
     45        except AttributeError: 
     46            self._content = '' 
     47            return self._content 
     48    def SetContent(self, content): 
     49        self._content = content or '' 
     50    content = property(GetContent, SetContent) 
     51 
    3752#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3853 
    39 class text(SVGShapeSkinObject): 
    40     def SkinInitialize(self): 
    41         self.object = TextRenderItem() 
    42         SVGShapeSkinObject.SkinInitialize(self) 
     54class text(SVGSkinContentObject): 
     55    RenderItemFactory = TextRenderItem 
    4356 
    44         self.SetStyleSettings() 
    45  
    46     def SkinFinalize(self): 
    47         SVGShapeSkinObject.SkinFinalize(self) 
    48         content = self.Content() 
    49         if content: 
    50             content = type(content[0])().join(content) 
    51             self.object.value = content 
    52         else: 
    53             self.object.value = None 
    54  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/title.py

    r620 r622  
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2525 
    26 from SVGSkinObject import SVGSkinObject 
    27 from SVGRendering import SVGRenderItemBase 
     26from SVGSkinObject import SVGSkinContentObject 
     27from RenderItems.Common import RenderItemBase 
    2828 
    2929#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3131#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3232 
    33 class TitleRenderItem(SVGRenderItemBase): 
     33class TitleRenderItem(RenderItemBase): 
    3434    def DisplayOn(self, renderer, rendercontext): 
    3535        renderer.DisplayTitle(self, rendercontext) 
    3636 
     37    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     38 
     39    def AddContent(self, content): 
     40        self.content += content 
     41 
     42    def GetContent(self): 
     43        try: 
     44            return self._content 
     45        except AttributeError: 
     46            self._content = '' 
     47            return self._content 
     48    def SetContent(self, content): 
     49        self._content = content or '' 
     50    content = property(GetContent, SetContent) 
     51 
    3752#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3853 
    39 class title(SVGSkinObject): 
    40     def SkinInitialize(self): 
    41         self.object = TitleRenderItem() 
    42         SVGSkinObject.SkinInitialize(self) 
     54class title(SVGSkinContentObject): 
     55    RenderItemFactory = TitleRenderItem 
    4356 
    44     def SkinFinalize(self): 
    45         SVGSkinObject.SkinFinalize(self) 
    46         content = self.Content() 
    47         if content: 
    48             content = type(content[0])().join(content) 
    49             self.object.value = content 
    50         else: 
    51             self.object.value = None 
    52  
  • trunk/RBRapier/RBRapier/Formats/Attic/SVG.old/SVGSkin/use.py

    r615 r622  
    2626import warnings 
    2727from SVGSkinObject import SVGSkinObject 
    28 from SVGRendering import SVGTransformableRenderItem 
     28from RenderItems.Common import TransformableRenderItem 
    2929 
    3030#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     
    3232#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    3333 
    34 class UseRenderItem(SVGTransformableRenderItem): 
     34class UseRenderItem(TransformableRenderItem): 
    3535    def DisplayOn(self, renderer, rendercontext): 
    36         rendercontext.push(self) 
     36        item = rendercontext.resolve(self.usereference) 
     37        if item is not None: 
     38            rendercontext.push(self) 
     39            try: 
     40                item.DisplayOn(renderer, rendercontext) 
     41            finally: 
     42                rendercontext.pop(self) 
     43 
     44    def InterpretSettings(self, settings): 
     45        TransformableRenderItem.InterpretSettings(self, settings) 
     46 
     47        xlink = settings[('http://www.w3.org/1999/xlink', 'href')] 
    3748        try: 
    38             self.usereference.DisplayOn(renderer, rendercontext) 
    39         finally: 
    40             rendercontext.pop(self) 
     49            xlinkbase, xlinktag = xlink.split('#', 1) 
     50        except ValueError: 
     51            xlinkbase, xlinktag = xlink, None 
     52 
     53        if xlinkbase or not xlinktag: 
     54            warnings.warn('All xlinks must be document relative for now, but xlink contained %r' % xlink) 
     55        self.usereference = xlinktag 
    4156 
    4257#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    4358 
    4459class use(SVGSkinObject): 
    45     def SkinInitialize(self): 
    46         SVGSkinObject.SkinInitialize(self) 
    47         self.object = UseRenderItem() 
     60    RenderItemFactory = UseRenderItem 
    4861 
    49     def SkinFinalize(self): 
    50         SVGSkinObject.SkinFinalize(self) 
    51  
    52         xlink = self.settings[('http://www.w3.org/1999/xlink', 'href')] 
    53         xlinkbase, xlinktag = xlink.split('#', 1) 
    54         assert not xlinkbase, 'All xlinks must be document relative for now' 
    55         self.object.usereference = self.context.idmapping[xlinktag] 
    56