]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/lib/analogclock/helpers.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / wx / lib / analogclock / helpers.py
diff --git a/wxPython/wx/lib/analogclock/helpers.py b/wxPython/wx/lib/analogclock/helpers.py
deleted file mode 100644 (file)
index c459067..0000000
+++ /dev/null
@@ -1,985 +0,0 @@
-# AnalogClock's base classes
-#   E. A. Tacao <e.a.tacao |at| estadao.com.br>
-#   http://j.domaindlx.com/elements28/wxpython/
-#   15 Fev 2006, 22:00 GMT-03:00
-# Distributed under the wxWidgets license.
-
-from time import strftime, localtime
-import math
-import wx
-
-from styles import *
-
-#----------------------------------------------------------------------
-
-_targets = [HOUR, MINUTE, SECOND]
-
-#----------------------------------------------------------------------
-
-class Element:
-    """Base class for face, hands and tick marks."""
-
-    def __init__(self, idx=0, pos=None, size=None, offset=0, clocksize=None,
-                 scale=1, rotate=False, kind=""):
-
-        self.idx = idx
-        self.pos = pos
-        self.size = size
-        self.offset = offset
-        self.clocksize = clocksize
-        self.scale = scale
-        self.rotate = rotate
-        self.kind = kind
-
-        self.text = None
-        self.angfac = [6, 30][self.kind == "hours"]
-
-
-    def _pol2rect(self, m, t):
-        return m * math.cos(math.radians(t)), m * math.sin(math.radians(t))
-
-
-    def _rect2pol(self, x, y):
-        return math.hypot(x, y), math.degrees(math.atan2(y, x))
-
-
-    def DrawRotated(self, dc, offset=0):
-        pass
-
-
-    def DrawStraight(self, dc, offset=0):
-        pass
-
-
-    def Draw(self, dc, offset=0):
-        if self.rotate:
-            self.DrawRotated(dc, offset)
-        else:
-            self.DrawStraight(dc, offset)
-
-
-    def RecalcCoords(self, clocksize, centre, scale):
-        pass
-        
-        
-    def GetSize(self):
-        return self.size
-
-
-    def GetOffset(self):
-        return self.offset
-
-
-    def GetIsRotated(self, rotate):
-        return self.rotate
-
-
-    def GetMaxSize(self, scale=1):
-        return self.size * scale
-        
-        
-    def GetScale(self):
-        return self.scale
-
-
-    def SetIsRotated(self, rotate):
-        self.rotate = rotate
-
-
-    def GetMaxSize(self, scale=1):
-        return self.size * scale
-
-
-    def GetPolygon(self):
-        return self.polygon
-
-
-    def SetPosition(self, pos):
-        self.pos = pos
-
-
-    def SetSize(self, size):
-        self.size = size
-
-
-    def SetOffset(self, offset):
-        self.offset = offset
-
-
-    def SetClockSize(self, clocksize):
-        self.clocksize = clocksize
-
-
-    def SetScale(self, scale):
-        self.scale = scale
-
-
-    def SetIsRotated(self, rotate):
-        self.rotate = rotate
-
-
-    def SetPolygon(self, polygon):
-        self.polygon = polygon
-
-#----------------------------------------------------------------------
-
-class ElementWithDyer(Element):
-    """Base class for clock face and hands."""
-
-    def __init__(self, **kwargs):
-        self.dyer = kwargs.pop("dyer", Dyer())
-        Element.__init__(self, **kwargs)
-
-
-    def GetFillColour(self):
-        return self.dyer.GetFillColour()
-
-
-    def GetBorderColour(self):
-        return self.dyer.GetBorderColour()
-
-
-    def GetBorderWidth(self):
-        return self.dyer.GetBorderWidth()
-
-
-    def GetShadowColour(self):
-        return self.dyer.GetShadowColour()
-
-        
-    def SetFillColour(self, colour):
-        self.dyer.SetFillColour(colour)
-
-
-    def SetBorderColour(self, colour):
-        self.dyer.SetBorderColour(colour)
-
-
-    def SetBorderWidth(self, width):
-        self.dyer.SetBorderWidth(width)
-        
-        
-    def SetShadowColour(self, colour):
-        self.dyer.SetShadowColour(colour)
-
-#----------------------------------------------------------------------
-
-class Face(ElementWithDyer):
-    """Holds info about the clock face."""
-
-    def __init__(self, **kwargs):
-        ElementWithDyer.__init__(self, **kwargs)
-
-
-    def Draw(self, dc):
-        self.dyer.Select(dc)
-        dc.DrawCircle(self.pos.x, self.pos.y, self.radius)
-
-
-    def RecalcCoords(self, clocksize, centre, scale):
-        self.radius = min(clocksize.Get()) / 2. - self.dyer.width / 2.
-        self.pos = centre
-
-#----------------------------------------------------------------------
-
-class Hand(ElementWithDyer):
-    """Holds info about a clock hand."""
-
-    def __init__(self, **kwargs):
-        self.lenfac = kwargs.pop("lenfac")
-        ElementWithDyer.__init__(self, **kwargs)
-
-        self.SetPolygon([[-1, 0], [0, -1], [1, 0], [0, 4]])
-
-
-    def Draw(self, dc, end, offset=0):
-        radius, centre, r = end
-        angle = math.degrees(r)
-        polygon = self.polygon[:]
-        vscale = radius / max([y for x, y in polygon])
-
-        for i, (x, y) in enumerate(polygon):
-            x *= self.scale * self.size
-            y *= vscale * self.lenfac
-            m, t = self._rect2pol(x, y)
-            polygon[i] = self._pol2rect(m, t - angle)
-
-        dc.DrawPolygon(polygon, centre.x + offset, centre.y + offset)
-
-
-    def RecalcCoords(self, clocksize, centre, scale):
-        self.pos = centre
-        self.scale = scale
-
-#----------------------------------------------------------------------
-
-class TickSquare(Element):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        Element.__init__(self, **kwargs)
-
-
-    def Draw(self, dc, offset=0):
-        width = height = self.size * self.scale
-        x = self.pos.x - width / 2.
-        y = self.pos.y - height / 2.
-
-        dc.DrawRectangle(x + offset, y + offset, width, height)
-
-#----------------------------------------------------------------------
-
-class TickCircle(Element):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        Element.__init__(self, **kwargs)
-
-
-    def Draw(self, dc, offset=0):
-        radius = self.size * self.scale / 2.
-        x = self.pos.x
-        y = self.pos.y
-
-        dc.DrawCircle(x + offset, y + offset, radius)
-
-#----------------------------------------------------------------------
-
-class TickPoly(Element):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        Element.__init__(self, **kwargs)
-
-        self.SetPolygon([[0, 1], [1, 0], [2, 1], [1, 5]])
-
-
-    def _calcPolygon(self):
-        width = max([x for x, y in self.polygon])
-        height = max([y for x, y in self.polygon])
-        tscale = self.size / max(width, height) * self.scale
-        polygon = [(x * tscale, y * tscale) for x, y in self.polygon]
-
-        width = max([x for x, y in polygon])
-        height = max([y for x, y in polygon])
-        
-        return polygon, width, height
-
-
-    def DrawStraight(self, dc, offset=0):
-        polygon, width, height = self._calcPolygon()
-
-        x = self.pos.x - width / 2.
-        y = self.pos.y - height / 2.
-
-        dc.DrawPolygon(polygon, x + offset, y + offset)
-
-
-    def DrawRotated(self, dc, offset=0):
-        polygon, width, height = self._calcPolygon()
-
-        angle = 360 - self.angfac * (self.idx + 1)
-        r = math.radians(angle)
-
-        for i in range(len(polygon)):
-            m, t = self._rect2pol(*polygon[i])
-            t -= angle
-            polygon[i] = self._pol2rect(m, t)
-
-        x = self.pos.x - math.cos(r) * width / 2. - math.sin(r) * height / 2.
-        y = self.pos.y - math.cos(r) * height / 2. + math.sin(r) * width / 2.
-
-        dc.DrawPolygon(polygon, x + offset, y + offset)
-
-#----------------------------------------------------------------------
-
-class TickDecimal(Element):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        Element.__init__(self, **kwargs)
-
-        self.text = "%s" % (self.idx + 1)
-
-
-    def DrawStraight(self, dc, offset=0):
-        width, height = dc.GetTextExtent(self.text)
-
-        x = self.pos.x - width / 2.
-        y = self.pos.y - height / 2.
-
-        dc.DrawText(self.text, x + offset, y + offset)
-
-
-    def DrawRotated(self, dc, offset=0):
-        width, height = dc.GetTextExtent(self.text)
-
-        angle = 360 - self.angfac * (self.idx + 1)
-        r = math.radians(angle)
-
-        x = self.pos.x - math.cos(r) * width / 2. - math.sin(r) * height / 2.
-        y = self.pos.y - math.cos(r) * height / 2. + math.sin(r) * width / 2.
-
-        dc.DrawRotatedText(self.text, x + offset, y + offset, angle)
-
-
-#----------------------------------------------------------------------
-
-class TickRoman(TickDecimal):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        TickDecimal.__init__(self, **kwargs)
-
-        self.text = ["I","II","III","IV","V",                 \
-                     "VI","VII","VIII","IX","X",              \
-                     "XI","XII","XIII","XIV","XV",            \
-                     "XVI","XVII","XVIII","XIX","XX",         \
-                     "XXI","XXII","XXIII","XXIV","XXV",       \
-                     "XXVI","XXVII","XXVIII","XXIX","XXX",    \
-                     "XXXI","XXXII","XXXIII","XXXIV","XXXV",  \
-                     "XXXVI","XXXVII","XXXVIII","XXXIX","XL", \
-                     "XLI","XLII","XLIII","XLIV","XLV",       \
-                     "XLVI","XLVII","XLVIII","XLIX","L",      \
-                     "LI","LII","LIII","LIV","LV",            \
-                     "LVI","LVII","LVIII","LIX","LX"][self.idx]
-
-#----------------------------------------------------------------------
-
-class TickBinary(TickDecimal):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        TickDecimal.__init__(self, **kwargs)
-
-        def d2b(n, b=""):
-            while n > 0:
-                b = str(n % 2) + b; n = n >> 1
-            return b.zfill(4)
-
-        self.text = d2b(self.idx + 1)
-
-#----------------------------------------------------------------------
-
-class TickHex(TickDecimal):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        TickDecimal.__init__(self, **kwargs)
-
-        self.text = hex(self.idx + 1)[2:].upper()
-
-#----------------------------------------------------------------------
-
-class TickNone(Element):
-    """Holds info about a tick mark."""
-
-    def __init__(self, **kwargs):
-        Element.__init__(self, **kwargs)
-
-
-    def Draw(self, dc, offset=0):
-        pass
-        
-#----------------------------------------------------------------------
-
-class Dyer:
-    """Stores info about colours and borders of clock Elements."""
-
-    def __init__(self, border=None, width=0, fill=None, shadow=None):
-        """
-        self.border (wx.Colour)  border colour
-        self.width  (int)        border width
-        self.fill   (wx.Colour)  fill colour
-        self.shadow (wx.Colour)  shadow colour
-        """
-
-        self.border = border or \
-                      wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT)
-        self.fill   = fill or \
-                      wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOWTEXT)
-        self.shadow = shadow or \
-                      wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DSHADOW)
-        self.width  = width
-
-
-    def Select(self, dc, shadow=False):
-        """Selects the current settings into the dc."""
-
-        if not shadow:
-            dc.SetPen(wx.Pen(self.border, self.width, wx.SOLID))
-            dc.SetBrush(wx.Brush(self.fill, wx.SOLID))
-            dc.SetTextForeground(self.fill)
-        else:
-            dc.SetPen(wx.Pen(self.shadow, self.width, wx.SOLID))
-            dc.SetBrush(wx.Brush(self.shadow, wx.SOLID))
-            dc.SetTextForeground(self.shadow)
-
-
-    def GetFillColour(self):
-        return self.fill
-
-
-    def GetBorderColour(self):
-        return self.border
-
-
-    def GetBorderWidth(self):
-        return self.width
-
-
-    def GetShadowColour(self):
-        return self.shadow
-
-
-    def SetFillColour(self, colour):
-        self.fill = colour
-
-
-    def SetBorderColour(self, colour):
-        self.border = colour
-
-
-    def SetBorderWidth(self, width):
-        self.width = width
-
-
-    def SetShadowColour(self, colour):
-        self.shadow = colour
-
-#----------------------------------------------------------------------
-
-class HandSet:
-    """Manages the set of hands."""
-
-    def __init__(self, parent, h, m, s):
-        self.parent = parent
-
-        self.hands = [h, m, s]
-        self.radius = 1
-        self.centre = wx.Point(1, 1)
-
-
-    def _draw(self, dc, shadow=False):
-        ends = [int(x) for x in strftime("%I %M %S", localtime()).split()]
-
-        flags = [self.parent.clockStyle & flag \
-                 for flag in self.parent.allHandStyles]
-
-        a_hand = self.hands[0]
-
-        if shadow:
-            offset = self.parent.shadowOffset * a_hand.GetScale()
-        else:
-            offset = 0
-
-        for i, hand in enumerate(self.hands):
-            # Is this hand supposed to be drawn?
-            if flags[i]:
-                idx = ends[i]
-                # Is this the hours hand?
-                if i == 0:
-                    idx = idx * 5 + ends[1] / 12 - 1
-                # else prevent exceptions on leap seconds
-                elif idx <= 0 or idx > 60:
-                    idx = 59
-                # and adjust idx offset for minutes and non-leap seconds 
-                else:
-                    idx = idx - 1
-                angle = math.radians(180 - 6 * (idx + 1))
-
-                hand.dyer.Select(dc, shadow)
-                hand.Draw(dc, (self.radius, self.centre, angle), offset)
-
-
-    def Draw(self, dc):
-        if self.parent.clockStyle & SHOW_SHADOWS:
-            self._draw(dc, True)
-        self._draw(dc)
-
-
-    def RecalcCoords(self, clocksize, centre, scale):
-        self.centre = centre
-        [hand.RecalcCoords(clocksize, centre, scale) for hand in self.hands]
-
-
-    def SetMaxRadius(self, radius):
-        self.radius = radius
-
-
-    def GetSize(self, target):
-        r = []
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                r.append(hand.GetSize())
-        return tuple(r)
-
-
-    def GetFillColour(self, target):
-        r = []
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                r.append(hand.GetFillColour())
-        return tuple(r)
-
-
-    def GetBorderColour(self, target):
-        r = []
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                r.append(hand.GetBorderColour())
-        return tuple(r)
-
-
-    def GetBorderWidth(self, target):
-        r = []
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                r.append(hand.GetBorderWidth())
-        return tuple(r)
-
-
-    def GetShadowColour(self):
-        r = []
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                r.append(hand.GetShadowColour())
-        return tuple(r)
-
-
-    def SetSize(self, size, target):
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                hand.SetSize(size)
-
-
-    def SetFillColour(self, colour, target):
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                hand.SetFillColour(colour)
-
-
-    def SetBorderColour(self, colour, target):
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                hand.SetBorderColour(colour)
-
-
-    def SetBorderWidth(self, width, target):
-        for i, hand in enumerate(self.hands):
-            if _targets[i] & target:
-                hand.SetBorderWidth(width)
-
-
-    def SetShadowColour(self, colour):
-        for i, hand in enumerate(self.hands):
-            hand.SetShadowColour(colour)
-
-#----------------------------------------------------------------------
-
-class TickSet:
-    """Manages a set of tick marks."""
-
-    def __init__(self, parent, **kwargs):
-        self.parent = parent
-        self.dyer = Dyer()
-        self.noe = {"minutes": 60, "hours": 12}[kwargs["kind"]]
-        self.font = wx.SystemSettings.GetFont(wx.SYS_DEFAULT_GUI_FONT)
-
-        style = kwargs.pop("style")
-        self.kwargs = kwargs
-        self.SetStyle(style)
-
-
-    def _draw(self, dc, shadow=False):
-        dc.SetFont(self.font)
-        
-        a_tick = self.ticks[0]
-
-        if shadow:
-            offset = self.parent.shadowOffset * a_tick.GetScale()
-        else:
-            offset = 0
-
-        clockStyle = self.parent.clockStyle
-
-        for idx, tick in self.ticks.items():
-            draw = False
-
-            # Are we a set of hours?
-            if self.noe == 12:
-                # Should we show all hours ticks?
-                if clockStyle & SHOW_HOURS_TICKS:
-                    draw = True
-                # Or is this tick a quarter and should we show only quarters?
-                elif clockStyle & SHOW_QUARTERS_TICKS and not (idx + 1) % 3.:
-                    draw = True
-            # Are we a set of minutes and minutes should be shown?
-            elif self.noe == 60 and clockStyle & SHOW_MINUTES_TICKS:
-                # If this tick occupies the same position of an hour/quarter
-                # tick, should we still draw it anyway?
-                if clockStyle & OVERLAP_TICKS:
-                    draw = True
-                # Right, sir. I promise I won't overlap any tick.
-                else:
-                    # Ensure that this tick won't overlap an hour tick.
-                    if clockStyle & SHOW_HOURS_TICKS:
-                        if (idx + 1) % 5.:
-                            draw = True
-                    # Ensure that this tick won't overlap a quarter tick.
-                    elif clockStyle & SHOW_QUARTERS_TICKS:
-                        if (idx + 1) % 15.:
-                            draw = True
-                    # We're not drawing quarters nor hours, so we can draw all
-                    # minutes ticks.
-                    else:
-                        draw = True
-
-            if draw:
-                tick.Draw(dc, offset)
-
-
-    def Draw(self, dc):
-        if self.parent.clockStyle & SHOW_SHADOWS:
-            self.dyer.Select(dc, True)
-            self._draw(dc, True)
-        self.dyer.Select(dc)
-        self._draw(dc)
-
-
-    def RecalcCoords(self, clocksize, centre, scale):
-        a_tick = self.ticks[0]
-
-        size = a_tick.GetMaxSize(scale)
-        maxsize = size
-
-        # Try to find a 'good' max size for text-based ticks.
-        if a_tick.text is not None:
-            self.font.SetPointSize(size)
-            dc = wx.MemoryDC()
-            dc.SelectObject(wx.EmptyBitmap(*clocksize.Get()))
-            dc.SetFont(self.font)
-            maxsize = size
-            for tick in self.ticks.values():
-                maxsize = max(*(dc.GetTextExtent(tick.text) + (maxsize,)))
-
-        radius = self.radius = min(clocksize.Get()) / 2. - \
-                               self.dyer.width / 2. - \
-                               maxsize / 2. - \
-                               a_tick.GetOffset() * scale - \
-                               self.parent.shadowOffset * scale
-
-        # If we are a set of hours, the number of elements of this tickset is 
-        # 12 and ticks are separated by a distance of 30 degrees;
-        # if we are a set of minutes, the number of elements of this tickset is
-        # 60 and ticks are separated by a distance of 6 degrees.
-        angfac = [6, 30][self.noe == 12]
-
-        for i, tick in self.ticks.items():
-            tick.SetClockSize(clocksize)
-            tick.SetScale(scale)
-
-            deg = 180 - angfac * (i + 1)
-            angle = math.radians(deg)
-
-            x = centre.x + radius * math.sin(angle)
-            y = centre.y + radius * math.cos(angle)
-
-            tick.SetPosition(wx.Point(x, y))
-
-
-    def GetSize(self):
-        return self.kwargs["size"]
-
-
-    def GetFillColour(self):
-        return self.dyer.GetFillColour()
-
-
-    def GetBorderColour(self):
-        return self.dyer.GetBorderColour()
-
-
-    def GetBorderWidth(self):
-        return self.dyer.GetBorderWidth()
-
-
-    def GetPolygon(self):
-        a_tick = self.ticks.values()[0]
-        return a_tick.GetPolygon()
-
-
-    def GetFont(self):
-        return self.font
-
-
-    def GetOffset(self):
-        a_tick = self.ticks[0]
-        return a_tick.GetOffset()
-
-
-    def GetShadowColour(self):
-        return self.dyer.GetShadowColour()
-
-
-    def GetIsRotated(self):
-        a_tick = self.ticks[0]
-        return a_tick.GetIsRotated()
-
-
-    def GetStyle(self):
-        return self.style
-
-
-    def SetSize(self, size):
-        self.kwargs["size"] = size
-        [tick.SetSize(size) for tick in self.ticks.values()]
-
-
-    def SetFillColour(self, colour):
-        self.dyer.SetFillColour(colour)
-
-
-    def SetBorderColour(self, colour):
-        self.dyer.SetBorderColour(colour)
-
-
-    def SetBorderWidth(self, width):
-        self.dyer.SetBorderWidth(width)
-
-
-    def SetPolygon(self, polygon):
-        [tick.SetPolygon(polygon) for tick in self.ticks.values()]
-
-
-    def SetFont(self, font):
-        self.font = font
-
-
-    def SetOffset(self, offset):
-        self.kwargs["offset"] = offset
-        [tick.SetOffset(offset) for tick in self.ticks.values()]
-
-
-    def SetShadowColour(self, colour):
-        self.dyer.SetShadowColour(colour)
-
-
-    def SetIsRotated(self, rotate):
-        self.kwargs["rotate"] = rotate
-        [tick.SetIsRotated(rotate) for tick in self.ticks.values()]
-
-
-    def SetStyle(self, style):
-        self.style = style
-        tickclass = allTickStyles[style]
-        self.kwargs["rotate"] = self.parent.clockStyle & ROTATE_TICKS
-
-        self.ticks = {}
-        for i in range(self.noe):
-            self.kwargs["idx"] = i
-            self.ticks[i] = tickclass(**self.kwargs)
-
-#----------------------------------------------------------------------
-
-class Box:
-    """Gathers info about the clock face and tick sets."""
-
-    def __init__(self, parent, Face, TicksM, TicksH):
-        self.parent = parent
-        self.Face   = Face
-        self.TicksH = TicksH
-        self.TicksM = TicksM
-
-
-    def GetNiceRadiusForHands(self, centre):
-        a_tick = self.TicksM.ticks[0]
-        scale = a_tick.GetScale()
-        bw = max(self.TicksH.dyer.width / 2. * scale,
-                 self.TicksM.dyer.width / 2. * scale)
-
-        mgt = self.TicksM.ticks[59]
-        my = mgt.pos.y + mgt.GetMaxSize(scale) + bw
-
-        hgt = self.TicksH.ticks[11]
-        hy = hgt.pos.y + hgt.GetMaxSize(scale) + bw
-
-        niceradius = centre.y - max(my, hy)
-        return niceradius
-
-
-    def Draw(self, dc):
-        [getattr(self, attr).Draw(dc) \
-         for attr in ["Face", "TicksM", "TicksH"]]
-
-
-    def RecalcCoords(self, size, centre, scale):
-        [getattr(self, attr).RecalcCoords(size, centre, scale) \
-         for attr in ["Face", "TicksH", "TicksM"]]
-
-
-    def GetTickSize(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetSize())
-        return tuple(r)
-
-
-    def GetTickFillColour(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetFillColour())
-        return tuple(r)
-
-
-    def GetTickBorderColour(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetBorderColour())
-        return tuple(r)
-
-
-    def GetTickBorderWidth(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetBorderWidth())
-        return tuple(r)
-
-
-    def GetTickPolygon(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetPolygon())
-        return tuple(r)
-
-
-    def GetTickFont(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetFont())
-        return tuple(r)
-
-
-    def GetIsRotated(self):
-        a_tickset = self.TicksH
-        return a_tickset.GetIsRotated()
-
-
-    def GetTickOffset(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetOffset())
-        return tuple(r)
-
-
-    def GetShadowColour(self):
-        a_tickset = self.TicksH
-        return a_tickset.GetShadowColour()
-
-
-    def GetTickStyle(self, target):
-        r = []
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                r.append(tick.GetStyle())
-        return tuple(r)
-
-
-    def SetTickSize(self, size, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetSize(size)
-
-
-    def SetTickFillColour(self, colour, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetFillColour(colour)
-
-
-    def SetTickBorderColour(self, colour, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetBorderColour(colour)
-
-
-    def SetTickBorderWidth(self, width, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetBorderWidth(width)
-
-
-    def SetTickPolygon(self, polygon, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetPolygon(polygon)
-
-
-    def SetTickFont(self, font, target):
-        fs = font.GetNativeFontInfoDesc()
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetFont(wx.FontFromNativeInfoString(fs))
-
-
-    def SetIsRotated(self, rotate):
-        [getattr(self, attr).SetIsRotated(rotate) \
-         for attr in ["TicksH", "TicksM"]]
-
-
-    def SetTickOffset(self, offset, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetOffset(offset)
-
-
-    def SetShadowColour(self, colour):
-        for attr in ["TicksH", "TicksM"]:
-            tick = getattr(self, attr)
-            tick.SetShadowColour(colour)
-
-
-    def SetTickStyle(self, style, target):
-        for i, attr in enumerate(["TicksH", "TicksM"]):
-            if _targets[i] & target:
-                tick = getattr(self, attr)
-                tick.SetStyle(style)
-
-#----------------------------------------------------------------------
-
-# Relationship between styles and ticks class names.
-allTickStyles = {TICKS_BINARY:  TickBinary,
-                 TICKS_CIRCLE:  TickCircle,
-                 TICKS_DECIMAL: TickDecimal,
-                 TICKS_HEX:     TickHex,
-                 TICKS_NONE:    TickNone,
-                 TICKS_POLY:    TickPoly,
-                 TICKS_ROMAN:   TickRoman,
-                 TICKS_SQUARE:  TickSquare}
-
-
-#
-##
-### eof