Example #1
0
 def blit(self, x1=0, y1=0, x2=None, y2=None, port=None):
     """Draw this pixmap into the given (default current) grafport."""
     src = self.bounds
     dest = [x1, y1, x2, y2]
     if x2 == None:
         dest[2] = x1 + src[2] - src[0]
     if y2 == None:
         dest[3] = y1 + src[3] - src[1]
     if not port: port = Qd.GetPort()
     Qd.CopyBits(self.PixMap(), port.GetPortBitMapForCopyBits(), src,
                 tuple(dest), QuickDraw.srcCopy, None)
 def blit(self, x1=0, y1=0, x2=None, y2=None, port=None):
     src = self.bounds
     dest = [x1,
      y1,
      x2,
      y2]
     if x2 is None:
         dest[2] = x1 + src[2] - src[0]
     if y2 is None:
         dest[3] = y1 + src[3] - src[1]
     if not port:
         port = Qd.GetPort()
     Qd.CopyBits(self.PixMap(), port.GetPortBitMapForCopyBits(), src, tuple(dest), QuickDraw.srcCopy, None)
     return
Example #3
0
 def setitem(self, item, value, clear=0):
     oldport = Qd.GetPort()
     if item >= self.itemcount:
         self._listwidget.insert(-1, ['[untraced]'] *
                                 (item - self.itemcount + 1))
         self.itemcount = item + 1
     self._listwidget.replace(item, value)
     if clear:
         for i in range(item + 1, self.itemcount):
             self._listwidget.replace(i, '')
     self._listwidget.select(item, autoscroll=1)
     if Evt.TickCount() / 5 != self.lasttime:
         self.lasttime = Evt.TickCount() / 5
         self._dlg.DrawDialog()
     Qd.SetPort(oldport)
Example #4
0
    def listDefHighlight(self, selected, cellRect, theCell, dataOffset,
                         dataLen, theList):
        savedPort = Qd.GetPort()
        Qd.SetPort(theList.GetListPort())
        savedClip = Qd.NewRgn()
        Qd.GetClip(savedClip)
        Qd.ClipRect(cellRect)
        savedPenState = Qd.GetPenState()
        Qd.PenNormal()
        Qd.PenMode(hilitetransfermode)
        Qd.PaintRect(cellRect)

        #restore graphics environment
        Qd.SetPort(savedPort)
        Qd.SetClip(savedClip)
        Qd.DisposeRgn(savedClip)
        Qd.SetPenState(savedPenState)
Example #5
0
    def listDefDraw(self, selected, cellRect, theCell, dataOffset, dataLen,
                    theList):
        savedPort = Qd.GetPort()
        Qd.SetPort(theList.GetListPort())
        savedClip = Qd.NewRgn()
        Qd.GetClip(savedClip)
        Qd.ClipRect(cellRect)
        savedPenState = Qd.GetPenState()
        Qd.PenNormal()
        Qd.EraseRect(cellRect)

        #draw the cell if it contains data
        ascent, descent, leading, size, hm = Fm.FontMetrics()
        linefeed = ascent + descent + leading

        if dataLen:
            left, top, right, bottom = cellRect
            data = theList.LGetCell(dataLen, theCell)
            lines = data.split("\r")
            line1 = lines[0]
            if len(lines) > 1:
                line2 = lines[1]
            else:
                line2 = ""
            Qd.MoveTo(int(left + 4), int(top + ascent))
            Qd.DrawText(line1, 0, len(line1))
            if line2:
                Qd.MoveTo(int(left + 4), int(top + ascent + linefeed))
                Qd.DrawText(line2, 0, len(line2))
            Qd.PenPat("\x11\x11\x11\x11\x11\x11\x11\x11")
            bottom = top + theList.cellSize[1]
            Qd.MoveTo(left, bottom - 1)
            Qd.LineTo(right, bottom - 1)
        if selected:
            self.listDefHighlight(selected, cellRect, theCell, dataOffset,
                                  dataLen, theList)
        #restore graphics environment
        Qd.SetPort(savedPort)
        Qd.SetClip(savedClip)
        Qd.DisposeRgn(savedClip)
        Qd.SetPenState(savedPenState)
Example #6
0
    def myDrawCell(self, onlyHilite, selected, cellRect, theCell,
                    dataOffset, dataLen, theList):
        savedPort = Qd.GetPort()
        Qd.SetPort(theList.GetListPort())
        savedClip = Qd.NewRgn()
        Qd.GetClip(savedClip)
        Qd.ClipRect(cellRect)
        savedPenState = Qd.GetPenState()
        Qd.PenNormal()

        l, t, r, b = cellRect

        if not onlyHilite:
            Qd.EraseRect(cellRect)

            ascent, descent, leading, size, hm = Fm.FontMetrics()
            linefeed = ascent + descent + leading

            if dataLen >= 6:
                data = theList.LGetCell(dataLen, theCell)
                iconId, indent, tab = struct.unpack("hhh", data[:6])
                try:
                    key, value = data[6:].split("\t", 1)
                except ValueError:
                    # bogus data, at least don't crash.
                    indent = 0
                    tab = 0
                    iconId = 0
                    key = ""
                    value = data[6:]

                if iconId:
                    try:
                        theIcon = Icn.GetCIcon(iconId)
                    except Icn.Error:
                        pass
                    else:
                        rect = (0, 0, 16, 16)
                        rect = Qd.OffsetRect(rect, l, t)
                        rect = Qd.OffsetRect(rect, 0, (theList.cellSize[1] - (rect[3] - rect[1])) / 2)
                        Icn.PlotCIcon(rect, theIcon)

                if len(key) >= 0:
                    cl, ct, cr, cb = cellRect
                    vl, vt, vr, vb = self._viewbounds
                    cl = vl + PICTWIDTH + indent
                    cr = vl + tab
                    if cr > vr:
                        cr = vr
                    if cl < cr:
                        drawTextCell(key, (cl, ct, cr, cb), ascent, theList)
                    cl = vl + tab
                    cr = vr
                    if cl < cr:
                        drawTextCell(value, (cl, ct, cr, cb), ascent, theList)
            #elif dataLen != 0:
            #       drawTextCell("???", 3, cellRect, ascent, theList)
            else:
                return  # we have bogus data

            # draw nice dotted line
            l, t, r, b = cellRect
            l = self._viewbounds[0] + tab
            r = l + 1;
            if not (theList.cellSize[1] & 0x01) or (t & 0x01):
                myPat = "\xff\x00\xff\x00\xff\x00\xff\x00"
            else:
                myPat = "\x00\xff\x00\xff\x00\xff\x00\xff"
            Qd.PenPat(myPat)
            Qd.PenMode(QuickDraw.srcCopy)
            Qd.PaintRect((l, t, r, b))
            Qd.PenNormal()

        if selected or onlyHilite:
            l, t, r, b = cellRect
            l = self._viewbounds[0] + PICTWIDTH
            r = self._viewbounds[2]
            Qd.PenMode(hilitetransfermode)
            Qd.PaintRect((l, t, r, b))

        # restore graphics environment
        Qd.SetPort(savedPort)
        Qd.SetClip(savedClip)
        Qd.DisposeRgn(savedClip)
        Qd.SetPenState(savedPenState)
Example #7
0
File: Wtext.py Project: mmrvka/xbmc
        return viewrect, destrect


def GetFNum(fontname):
    """Same as Fm.GetFNum(), but maps a missing font to Monaco instead of the system font."""
    if fontname <> Fm.GetFontName(0):
        fontid = Fm.GetFNum(fontname)
        if fontid == 0:
            fontid = Fonts.monaco
    else:
        fontid = 0
    return fontid


# b/w compat. Anyone using this?
GetFName = Fm.GetFontName


def GetPortFontSettings(port):
    return Fm.GetFontName(port.GetPortTextFont()), port.GetPortTextFace(
    ), port.GetPortTextSize()


def SetPortFontSettings(port, (font, face, size)):
    saveport = Qd.GetPort()
    Qd.SetPort(port)
    Qd.TextFont(GetFNum(font))
    Qd.TextFace(face)
    Qd.TextSize(size)
    Qd.SetPort(saveport)
Example #8
0
from Carbon import Qt
Example #9
0
def freeRuler(*args):
    return 0


def newGIF(obj):
    handle = obj.WEGetObjectDataHandle()
    width, height, pixmap = _gifkeeper.get(handle.data)
    return width + 2 * IMAGEBORDER, height + 2 * IMAGEBORDER


def drawGIF((l, t, r, b), obj):
    handle = obj.WEGetObjectDataHandle()
    width, height, pixmap = _gifkeeper.get(handle.data)
    srcrect = 0, 0, width, height
    dstrect = l + IMAGEBORDER, t + IMAGEBORDER, r - IMAGEBORDER, b - IMAGEBORDER
    port = Qd.GetPort()
    bg = port.rgbBkColor
    fg = port.rgbFgColor
    Qd.RGBBackColor((0xffff, 0xffff, 0xffff))
    Qd.RGBForeColor((0, 0, 0))
    ##     Qd.CopyBits(pixmap, port.GetPortBitMapForCopyBits(), srcrect, dstrect,
    ##         QuickDraw.srcCopy+QuickDraw.ditherCopy, None)
    Qd.CopyBits(pixmap, port.GetPortBitMapForCopyBits(), srcrect, dstrect,
                QuickDraw.srcCopy, None)
    Qd.RGBBackColor(bg)
    Qd.RGBForeColor(fg)
    # XXXX paste pixmap on screen
    return 0


def freeGIF(obj):
Example #10
0
"""PixMapWrapper - defines the PixMapWrapper class, which wraps an opaque
Example #11
0
    return finfo <> curfinfo


def _savefontinfo(port):
    """Return all font-pertaining info for a macos window"""
    if not port:
        return ()
    return port.GetPortTextFont(), port.GetPortTextFace(), port.GetPortTextMode(), \
            port.GetPortTextSize(), port.GetPortSpExtra()


def _restorefontinfo(port, (font, face, mode, size, spextra)):
    """Set all font-pertaining info for a macos window"""
    if not port:
        return
    old = Qd.GetPort()
    Qd.SetPort(port)
    Qd.TextFont(font)
    Qd.TextFace(face)
    Qd.TextMode(mode)
    Qd.TextSize(size)
    Qd.SpaceExtra(spextra)
    Qd.SetPort(old)


_pt2mm = 25.4 / 72  # 1 inch == 72 points == 25.4 mm
_POINTSIZEOFFSET = +1
_fontmap = {
    ##       'Times-Roman': ('Times', 0),
    ##       'Times-Italic': ('Times', _qd_italic),
    ##       'Times-Bold': ('Times', _qd_bold),