Example #1
0
File: Wtext.py Project: mmrvka/xbmc
 def drawbreakpoints(self, eraseall=0):
     breakrect = bl, bt, br, bb = self._getbreakrect()
     br = br - 1
     self.SetPort()
     Qd.PenPat(Qd.GetQDGlobalsGray())
     Qd.PaintRect((br, bt, br + 1, bb))
     Qd.PenNormal()
     self._parentwindow.tempcliprect(breakrect)
     Qd.RGBForeColor((0xffff, 0, 0))
     try:
         lasttop = bt
         self_ted = self.ted
         Qd_PaintOval = Qd.PaintOval
         Qd_EraseRect = Qd.EraseRect
         for lineno in self._debugger.get_file_breaks(self.file):
             start, end = self_ted.WEGetLineRange(lineno - 1)
             if lineno <> self_ted.WEOffsetToLine(start) + 1:
                 # breakpoints beyond our text: erase rest, and back out
                 Qd_EraseRect((bl, lasttop, br, bb))
                 break
             (x, y), h = self_ted.WEGetPoint(start, 0)
             bottom = y + h
             #print y, (lasttop, bottom)
             if bottom > lasttop:
                 Qd_EraseRect((bl, lasttop, br, y + h * eraseall))
                 lasttop = bottom
             redbullet = bl + 2, y + 3, bl + 8, y + 9
             Qd_PaintOval(redbullet)
         else:
             Qd_EraseRect((bl, lasttop, br, bb))
         Qd.RGBForeColor((0, 0, 0))
     finally:
         self._parentwindow.restoreclip()
Example #2
0
 def draw(self, visRgn=None):
     if self._visible:
         if not visRgn:
             visRgn = self._parentwindow.wid.GetWindowPort().visRgn
         Qd.PenPat(Qd.GetQDGlobalsGray())
         rect = self._bounds
         Qd.FrameRect(rect)
         rect = Qd.InsetRect(rect, 3, 3)
         Qd.PenNormal()
         Qd.RGBForeColor(self._color)
         Qd.PaintRect(rect)
         Qd.RGBForeColor((0, 0, 0))
Example #3
0
    def click(self, point, modifiers):
        # what a mess...
        orgmouse = point[self._direction]
        halfgutter = self._gutter / 2
        l, t, r, b = self._bounds
        if self._direction:
            begin, end = t, b
        else:
            begin, end = l, r

        i = self.findgutter(orgmouse, begin, end)
        if i is None:
            return

        pos = orgpos = begin + (end - begin) * self._gutters[
            i]  # init pos too, for fast click on border, bug done by Petr

        minpos = self._panesizes[i][0]
        maxpos = self._panesizes[i + 1][1]
        minpos = begin + (end - begin) * minpos + 64
        maxpos = begin + (end - begin) * maxpos - 64
        if minpos > orgpos and maxpos < orgpos:
            return

        #SetCursor("fist")
        self.SetPort()
        if self._direction:
            rect = l, orgpos - 1, r, orgpos
        else:
            rect = orgpos - 1, t, orgpos, b

        # track mouse --- XXX  move to separate method?
        Qd.PenMode(QuickDraw.srcXor)
        Qd.PenPat(Qd.GetQDGlobalsGray())
        Qd.PaintRect(_intRect(rect))
        lastpos = None
        while Evt.Button():
            pos = orgpos - orgmouse + Evt.GetMouse()[self._direction]
            pos = max(pos, minpos)
            pos = min(pos, maxpos)
            if pos == lastpos:
                continue
            Qd.PenPat(Qd.GetQDGlobalsGray())
            Qd.PaintRect(_intRect(rect))
            if self._direction:
                rect = l, pos - 1, r, pos
            else:
                rect = pos - 1, t, pos, b
            Qd.PenPat(Qd.GetQDGlobalsGray())
            Qd.PaintRect(_intRect(rect))
            lastpos = pos
            self._parentwindow.wid.GetWindowPort().QDFlushPortBuffer(None)
            Evt.WaitNextEvent(0, 3)
        Qd.PaintRect(_intRect(rect))
        Qd.PenNormal()
        SetCursor("watch")

        newpos = (pos - begin) / float(end - begin)
        self._gutters[i] = newpos
        self._panesizes[i] = self._panesizes[i][0], newpos
        self._panesizes[i + 1] = newpos, self._panesizes[i + 1][1]
        self.makepanebounds()
        self.installbounds()
        self._calcbounds()