Exemplo n.º 1
0
def init():
    pyui.init(width, height, "p3d", fullscreen=0, title="CodeWorld")
    getRenderer().setBackMethod(render)
    getDesktop().registerHandler(pyui.locals.KEYDOWN, keyDown)
    pygame.key.set_repeat(500, 30)

    initGL()
Exemplo n.º 2
0
def init():
    pyui.init(width, height, 'p3d', fullscreen = 0, title = "CodeWorld")
    getRenderer().setBackMethod(render)
    getDesktop().registerHandler(pyui.locals.KEYDOWN, keyDown)
    pygame.key.set_repeat(500, 30)
    
    initGL()
Exemplo n.º 3
0
Arquivo: base.py Projeto: burito/PyUI
 def destroy(self):
     if self.handle:
         getRenderer().destroyWindow(self.handle)
     self._panel = None            
     self.handle = 0
     self.drawList = []
     Base.destroy(self)
Exemplo n.º 4
0
 def destroy(self):
     if self.handle:
         getRenderer().destroyWindow(self.handle)
     self._panel = None            
     self.handle = 0
     self.drawList = []
     Base.destroy(self)
Exemplo n.º 5
0
    def drawButton(self,
                   rect,
                   title,
                   hasFocus,
                   status,
                   enabled,
                   font=None,
                   shadow=2,
                   fgColor=0,
                   bgColor=0,
                   roColor=0):
        """Options are:  button title and the up/down status.
        status == 0: normal
        status == 1: rollover
        status == 2: down
        """
        (x, y, w, h) = rect
        if shadow < 2:
            shadow = 2

        if not fgColor:
            fgColor = self.buttonTextColor

        if not bgColor:
            bgColor = self.buttonUpB

        if not roColor:
            roColor = self.buttonRoA

        if status == 0:
            self.draw3DRect(rect, bgColor, 0)
        elif status == 1:
            self.draw3DRect(rect, roColor, 0)
        elif status == 2:
            self.draw3DRect(rect, roColor, 1)
            x += 1
            y += 1

        if not font:
            font = self.defaultFont

        size = getRenderer().getTextSize(title, font)

        if shadow:
            getRenderer().drawText(title, (x + (w - size[0]) / 2 + shadow, y +
                                           (h - size[1]) / 2 + shadow),
                                   self.fgColor, font)
        getRenderer().drawText(title,
                               (x + (w - size[0]) / 2, y + (h - size[1]) / 2),
                               fgColor, font)
        return rect
Exemplo n.º 6
0
 def resize(self, w, h):
     pyui.widgets.Base.resize(self, w,h)
     self.vscroll.resize(getTheme().getScrollerSize(), h)
     self.vscroll.moveto(w-getTheme().getScrollerSize(), 0)
     self.textWidth = self.width - self.vscroll.width
     self.numVisible = self.height / getRenderer().getTextSize("x")[1]
     self.rewrap = 1
Exemplo n.º 7
0
 def clear(self):
     self.lines = []
     self.displayLines = []
     self.numVisible = self.height / getRenderer().getTextSize("x")[1]
     self.numItems = 0
     self.topItem = 0
     self.rewrap = 0
Exemplo n.º 8
0
    def scrollToCursor(self):
        (x,y,w,h) = self.windowRect

        font_width, font_heigth = getRenderer().getTextSize( ' ', self.font )
        grid_width, grid_height = self.getGrid()

        caretPos = self.caretPos + ( 7 * self.text.count( '\t', 0, self.caretPos ) )
        text = self.text.expandtabs( 8 )
        
        row = text.count( '\n', 0, caretPos )
        if row > 0: col = caretPos - text.rfind( '\n', 0, caretPos ) -1
        else: col = caretPos
        
        adj = (caretPos == len( text ) or text[caretPos] == '\n') and 1 or 0
        
        if col - adj < self.scroll[0]:
            self.scroll = max( col - adj, 0 ), self.scroll[1]
        elif col > self.scroll[0] + grid_width:
            self.scroll = col - grid_width, self.scroll[1]
        
        if row < self.scroll[1]:
            self.scroll = self.scroll[0], row
        elif row >= self.scroll[1] + grid_height:
            self.scroll = self.scroll[0], row - grid_height + 1
        
        self.updateScrollBars()
Exemplo n.º 9
0
    def __init__( self, text = '' ):
        pyui.widgets.Base.__init__(self)
        self.text = text
        self.caretPos = 0
        self.selectPos = 0
        self.dragging = 0
        self.readonly = 0

        self.font = getRenderer().createFont("courier", 12, 0)
        
        self.scroll = 0, 0
        self.vscroll = pyui.widgets.VScroll()
        self.addChild( self.vscroll )
        self.hscroll = pyui.widgets.HScroll()
        self.addChild( self.hscroll )
        self.registerEvent(pyui.locals.SCROLLPOS, self._pyuiScrollPos)
        
        self.registerEvent(pyui.locals.KEYDOWN, self._pyuiKeyDown)
        self.registerEvent(pyui.locals.KEYUP, self._pyuiKeyUp)
        self.registerEvent(pyui.locals.CHAR, self._pyuiChar)
        self.registerEvent(pyui.locals.LMOUSEBUTTONDOWN, self._pyuiMouseDown)
        self.registerEvent(pyui.locals.LMOUSEBUTTONUP, self._pyuiMouseUp)
        self.registerEvent(pyui.locals.MOUSEMOVE, self._pyuiMouseMotion)
        self.registerEvent(pyui.locals.CLICKED, self._pyuiClicked)
        self.resize( 100, 100 )
Exemplo n.º 10
0
    def findMousePos(self, pos):
        # put hit position in window relative coords
        x = pos[0] - self.rect[0] - 2
        y = pos[1] - self.rect[1] - 5
        
        font_width, font_heigth = getRenderer().getTextSize( ' ', self.font )
        
        col = max( math.floor( (float(x) / float(font_width)) ) + self.scroll[0], 0 )
        row = max( math.floor( (float(y) / float(font_heigth)) ) + self.scroll[1], 0 )
        
        r, c, i = 0, 0, 0
        while r != row:
            try: i = self.text.index( '\n', i ) + 1
            except: break
            r += 1
        
        while c < col:
            if i >= len( self.text) or self.text[i] == '\n':
                break
            elif self.text[i] == '\t':
                if ( c + 4 > col ): break
                c += 8
            else:
                c += 1
            i += 1

        return min( max( i, 0 ), len( self.text ) )
Exemplo n.º 11
0
    def __init__(self, title, text, DialogType): #DialogType 0: Ok - Cancel || 1: Ok

        size = getRenderer().getTextSize(title)
        Dialog.__init__(self, title = title)
        self.setLayout(pyui.layouts.BorderLayoutManager())
        self.textLabel = pyui.widgets.Label(text)
        self.textLabel.setText(text)
        self.buttonPanel = pyui.widgets.Panel()
        self.buttonPanel.setLayout(pyui.layouts.BorderLayoutManager())
        if DialogType == 0:
            self.okButton = pyui.widgets.Button("OK", self._pyuiOK)
            self.okButton.resize(self.innerWidth/2, self.okButton.height)
            self.cancelButton = pyui.widgets.Button("Cancel", self._pyuiCancel)
            self.cancelButton.resize(self.innerWidth/2, self.cancelButton.height)     
            self.buttonPanel.addChild(self.okButton, locals.WEST)
            self.buttonPanel.addChild(self.cancelButton, locals.EAST)
            self.buttonPanel.pack()
        if DialogType == 1:
            self.okButton = pyui.widgets.Button("OK", self._pyuiOK)     
            self.buttonPanel.addChild(self.okButton, locals.SOUTH)
            self.buttonPanel.pack()            
        
        self.addChild(self.textLabel, locals.CENTER)
        self.addChild(self.buttonPanel, locals.SOUTH)

        self.pack()
Exemplo n.º 12
0
    def __init__(self, x, y, handler, game):
        pyui.widgets.Button.__init__(self,"",  handler)
        self.registerEvent(RMOUSEBUTTONDOWN, self.onMined)        
        self.x = x
        self.y = y
        self.game = game
        self.reset()
	self.grey = getRenderer().packColor( 150, 150, 50 )
Exemplo n.º 13
0
    def _pyuiMouseMotion(self, event):
        if self.moving:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            self.move(mouseX - self.startX, mouseY - self.startY)
            getRenderer().moveWindow(self.handle, self.posX, self.posY)
            return 1
        if self.resizing:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            if mouseX < 64:
                mouseX = 64
            if mouseY < 64:
                mouseY = 64
            self.resize(self.width + mouseX - self.startX,
                        self.height + mouseY - self.startY)
            (self.startX, self.startY) = (mouseX, mouseY)
            return 1

        # set the proper cursor
        if event.pos[0] > self.posX + self.innerWidth and event.pos[
                1] > self.posY + self.innerHeight:
            self.resizingCursor = 1
            self.theme.setResizeCursor()
        elif self.resizingCursor:
            self.resizingCursor = 0
            self.theme.setArrowCursor()

        if event.pos[0] < self.posX + self.width - 32 and event.pos[
                1] < self.posY + self.theme.getFrameBorderTop() - 8:
            self.movingCursor = 1
            self.theme.setMovingCursor()
        elif self.movingCursor:
            self.movingCursor = 0
            self.theme.setArrowCursor()

        if not self.hit(event.pos):
            if self.resizingCursor and not self.resizing:
                self.resizingCursor = 0
                self.theme.setArrowCursor()
            if self.movingCursor and not self.moving:
                self.movingCursor = 0
                self.theme.setArrowCursor()
            return 0
        else:
            return 1
Exemplo n.º 14
0
Arquivo: frame.py Projeto: colshag/ANW
    def _pyuiMouseMotion(self, event):
        if self.moving:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            self.frameMove(mouseX - self.startX, mouseY - self.startY)
            getRenderer().moveWindow(self.handle, self.posX, self.posY)
            return 1
        if self.resizing:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            if mouseX < 64:
                mouseX = 64
            if mouseY < 64:
                mouseY = 64
            self.frameResize(self.width + mouseX - self.startX,
                             self.height + mouseY - self.startY)
            (self.startX, self.startY) = (mouseX, mouseY)
            return 1

        # set the proper cursor
        regionId = self.hitFrameRegion(event.pos)
        if regionId == pyui.locals.HIT_FRAME_RESIZE_BOTTOM_RIGHT:
            self.resizingCursor = 1
            self.theme.setResizeCursor()
        elif self.resizingCursor:
            self.resizingCursor = 0
            self.theme.setArrowCursor()

        if regionId == pyui.locals.HIT_FRAME_MOVE:
            self.movingCursor = 1
            self.theme.setMovingCursor()
        elif self.movingCursor:
            self.movingCursor = 0
            self.theme.setArrowCursor()

        if not self.hit(event.pos):
            if self.resizingCursor and not self.resizing:
                self.resizingCursor = 0
                self.theme.setArrowCursor()
            if self.movingCursor and not self.moving:
                self.movingCursor = 0
                self.theme.setArrowCursor()
            return 0
        else:
            return 1
Exemplo n.º 15
0
Arquivo: frame.py Projeto: burito/PyUI
 def __init__(self, handler, text, subMenu):
     self.handler = handler
     self.text = text
     (width, height) = getRenderer().getTextSize(text, getTheme().defaultFont)
     self.width = width
     self.subMenu = subMenu
     self.icon = None
     self.rect = (0,0,0,0)
     self.canActivate = handler or subMenu
Exemplo n.º 16
0
 def __init__(self, x, y, w, h, topmost = 0):
     self._panel = Panel()
     Base.__init__(self)
     self.topMost = topmost
     self._panel.moveto(0,0)
     # the content panel is added as a child through Base::addChild to avoid recursively adding it to itself
     Base.addChild(self, self._panel)
     self._panel.setWindow(self)
     self.drawCommands = []
     # these are drawing callbacks to draw _after_ all the widgets are drawn
     self.drawLastCallbacks = [] 
     if self.__dict__.has_key("title"):
         self.handle = getRenderer().createWindow(self.title)
     else:
         self.handle = getRenderer().createWindow("")
     self.moveto(x, y)
     self.resize(w, h)
     getDesktop().addWindow(self)
Exemplo n.º 17
0
 def __init__(self, x, y, w, h, topmost = 0):
     self._panel = Panel()
     Base.__init__(self)
     self.topMost = topmost
     self._panel.moveto(0,0)
     # the content panel is added as a child through Base::addChild to avoid recursively adding it to itself
     Base.addChild(self, self._panel)
     self._panel.setWindow(self)
     self.drawCommands = []
     # these are drawing callbacks to draw _after_ all the widgets are drawn
     self.drawLastCallbacks = [] 
     if self.__dict__.has_key("title"):
         self.handle = getRenderer().createWindow(self.title)
     else:
         self.handle = getRenderer().createWindow("")
     self.moveto(x, y)
     self.resize(w, h)
     getDesktop().addWindow(self)
Exemplo n.º 18
0
Arquivo: frame.py Projeto: burito/PyUI
    def _pyuiMouseMotion(self, event):
        if self.moving:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            self.frameMove( mouseX - self.startX, mouseY - self.startY)
            getRenderer().moveWindow(self.handle, self.posX, self.posY)
            return 1
        if self.resizing:
            mouseX = event.pos[0] - self.posX
            mouseY = event.pos[1] - self.posY
            if mouseX < 64:
                mouseX = 64
            if mouseY < 64:
                mouseY = 64
            self.frameResize( self.width + mouseX - self.startX, self.height + mouseY - self.startY)
            (self.startX, self.startY) = (mouseX, mouseY)
            return 1

        # set the proper cursor
        regionId = self.hitFrameRegion(event.pos)
        if regionId == pyui.locals.HIT_FRAME_RESIZE_BOTTOM_RIGHT:        
            self.resizingCursor=1
            self.theme.setResizeCursor()
        elif self.resizingCursor:
            self.resizingCursor=0
            self.theme.setArrowCursor()

        if regionId == pyui.locals.HIT_FRAME_MOVE:            
            self.movingCursor = 1
            self.theme.setMovingCursor()
        elif self.movingCursor:
            self.movingCursor = 0
            self.theme.setArrowCursor()
            
        if not self.hit(event.pos):
            if self.resizingCursor and not self.resizing:
                self.resizingCursor=0
                self.theme.setArrowCursor()
            if self.movingCursor and not self.moving:
                self.movingCursor=0
                self.theme.setArrowCursor()
            return 0
        else:
            return 1
Exemplo n.º 19
0
 def __init__(self, handler, text, subMenu):
     self.handler = handler
     self.text = text
     (width, height) = getRenderer().getTextSize(text,
                                                 getTheme().defaultFont)
     self.width = width
     self.subMenu = subMenu
     self.icon = None
     self.rect = (0, 0, 0, 0)
     self.canActivate = handler or subMenu
Exemplo n.º 20
0
Arquivo: frame.py Projeto: burito/PyUI
 def __init__(self, title):
     Base.__init__(self)
     self.menuTitle = "  " + title
     self.width = getRenderer().getTextSize(title)[0]+12
     
     self.height = self.minHeight
     self.items = []
     self.active = None
     self.subActive = None
     self.setShow(0)
Exemplo n.º 21
0
Arquivo: frame.py Projeto: colshag/ANW
    def __init__(self, title):
        Base.__init__(self)
        self.menuTitle = "  " + title
        self.width = getRenderer().getTextSize(title)[0] + 12

        self.height = self.minHeight
        self.items = []
        self.active = None
        self.subActive = None
        self.setShow(0)
Exemplo n.º 22
0
 def drawMenuBarItem(self, rect, title, selected):
     title = "   " + title + "   "
     (w,h) = getRenderer().getTextSize(title, self.defaultFont)
     if selected:
         getRenderer().drawRect(self.bgColor3, (rect[0], rect[1], w, rect[3]))
         getRenderer().drawText(title, (rect[0], rect[1]), self.fgColor, self.defaultFont)
     else:
         getRenderer().drawText(title, (rect[0], rect[1]), self.fgColor, self.defaultFont)
     return (rect[0], rect[1], w, rect[3])
Exemplo n.º 23
0
 def drawToolTip(self, text, rect):
     getRenderer().drawRect(self.fgColor, rect)
     getRenderer().drawRect(
         self.bgColor1,
         (rect[0] + 1, rect[1] + 1, rect[2] - 2, rect[3] - 2))
     getRenderer().drawText(text, (rect[0] + 2, rect[1] + 2), self.fgColor)
     return rect
Exemplo n.º 24
0
 def drawListBoxItem(self, rect, title, selected, color):
     if selected:
         getRenderer().drawRect(self.bgColor3, (rect[0] +2, rect[1] - 1, rect[2]- 1 - 3, rect[3] ))
         getRenderer().drawText(title, (rect[0]+2, rect[1]), self.fgColor, self.defaultFont)
     else:
         getRenderer().drawText(title, (rect[0]+2, rect[1]), color, self.defaultFont)
     return rect
Exemplo n.º 25
0
 def __init__(self):
     pyui.widgets.Base.__init__(self)
     #self.bgColor = (0,0,49, 255)
     self.lines = []
     self.displayLines = []
     self.numVisible = self.height / getRenderer().getTextSize("x")[1]
     self.numItems = 0
     self.topItem = 0
     self.rewrap = 0
     self.textWidth = 0
     self.vscroll = pyui.widgets.VScroll()
     self.addChild(self.vscroll)
     self.registerEvent(locals.SCROLLPOS, self._pyuiScrollPos)
Exemplo n.º 26
0
 def drawMenuBarItem(self, rect, title, selected):
     title = "   " + title + "   "
     (w, h) = getRenderer().getTextSize(title, self.defaultFont)
     if selected:
         getRenderer().drawRect(self.bgColor3,
                                (rect[0], rect[1], w, rect[3]))
         getRenderer().drawText(title, (rect[0], rect[1]), self.fgColor,
                                self.defaultFont)
     else:
         getRenderer().drawText(title, (rect[0], rect[1]), self.fgColor,
                                self.defaultFont)
     return (rect[0], rect[1], w, rect[3])
Exemplo n.º 27
0
 def draw(self, renderer):
     #renderer.drawRect(getTheme().bgColor2, self.windowRect)
     if self.rewrap:
         self.rewrapAll()
         self.rewrap = 0
         
     i = 0
     h = getRenderer().getTextSize("x")[1]
     for (line, color) in self.displayLines:
         if i >= self.topItem and i < (self.topItem + self.numVisible):
             renderer.drawText(line, (self.windowRect[0]+2, self.windowRect[1]+2+((i-self.topItem)*h)), color )
         i += 1
     self.vscroll.draw(renderer)
     self.clearDirty()
Exemplo n.º 28
0
    def drawButton(self, rect, title, hasFocus, status, enabled, font=None, shadow=2, fgColor=0, bgColor=0, roColor=0):
        """Options are:  button title and the up/down status.
        status == 0: normal
        status == 1: rollover
        status == 2: down
        """
        (x,y,w,h) = rect
        if shadow < 2:
            shadow = 2
            
        if not fgColor:
            fgColor = self.buttonTextColor
            
        if not bgColor:
            bgColor = self.buttonUpB

        if not roColor:
            roColor = self.buttonRoA
            
        if status == 0:
            self.draw3DRect(rect, bgColor, 0)
        elif status == 1:
            self.draw3DRect(rect, roColor, 0)
        elif status == 2:
            self.draw3DRect(rect, roColor, 1)
            x += 1
            y += 1

        if not font:
            font=self.defaultFont

        size = getRenderer().getTextSize(title, font)
        
        if shadow:
            getRenderer().drawText( title, (x + (w-size[0])/2+shadow, y + (h-size[1])/2+shadow), self.fgColor, font)            
        getRenderer().drawText( title, (x + (w-size[0])/2, y + (h-size[1])/2), fgColor, font)
        return rect
Exemplo n.º 29
0
    def drawLabel(self, rect, title, color = None, font = None, shadow=0, align=0 ):
        getRenderer().drawRect(self.fgColor, rect)
        getRenderer().drawRect(self.bgColor3, (rect[0]+2, rect[1]+2, rect[2]-4, rect[3]-4) )
        #(title, color) = options
        if not color:
            color = self.fgColor

        if not font:
            font = self.defaultFont
            
        (w,h) = getRenderer().getTextSize(title, font)
        if align == 2:
            posX = rect[0] + rect[2]/2 - w/2
        else:
            posX = rect[0]

        if shadow:
            getRenderer().drawText(title, (posX+shadow, rect[1]+shadow), pyui.colors.black, font)
        getRenderer().drawText(title, (posX, rect[1]), color, font)            
        return (rect[0], rect[1], w, h)
Exemplo n.º 30
0
    def wrapLine(self, line, color):
        """Add a line of text to the display lines list with wrapping."""
        (words, spaces) = self.splitLine(line)

        displayLine = ""
        width = 0
        space = ""
        spaceWidth = 0
        while words:
            word = words.pop(0)
            wordWidth = getRenderer().getTextSize(word)[0]

            if width + spaceWidth + wordWidth <= self.textWidth:
                displayLine = displayLine + space + word
                width += spaceWidth + wordWidth
            else:
                self.addDisplayLine(displayLine, color)
                displayLine = word
                width = wordWidth
            space = spaces.pop(0)
            spaceWidth = getRenderer().getTextSize(space)[0]
                
        if displayLine:
            self.addDisplayLine(displayLine, color)
Exemplo n.º 31
0
    def drawSliderBar(self, rect, range, position, BARWIDTH=8):
        interval = rect[2] / float(range)
        half = rect[1] + rect[3]/2
        getRenderer().drawRect(self.bgColor3, rect)
        ## could draw little lines here....
        getRenderer().drawLine( rect[0] + 1, half, rect[0] + rect[2] -2, half, pyui.colors.white)
        getRenderer().drawLine( rect[0] + 1, half + 2, rect[0] + rect[2] -2, half + 2, self.fgColor)
        diff = rect[2] - BARWIDTH
        xpos = float(diff) / range * position
        barHeight = rect[3] - 4
        if barHeight > 20:
            barHeight = 20
            
        self.draw3DRect((rect[0] + xpos, rect[1] + (rect[3]/2) - (barHeight/2), BARWIDTH, barHeight), self.bgColor2, 0)

        getRenderer().drawText("%s/%s" % (position,range), (rect[0] + rect[2] - 40, rect[1]), pyui.colors.red)
        return rect
Exemplo n.º 32
0
 def drawListBoxItem(self, rect, title, selected, color):
     if selected:
         getRenderer().drawRect(
             self.bgColor3,
             (rect[0] + 2, rect[1] - 1, rect[2] - 1 - 3, rect[3]))
         getRenderer().drawText(title, (rect[0] + 2, rect[1]), self.fgColor,
                                self.defaultFont)
     else:
         getRenderer().drawText(title, (rect[0] + 2, rect[1]), color,
                                self.defaultFont)
     return rect
Exemplo n.º 33
0
    def drawImageButton(self, rect, filename, title, hasFocus, status):
        if status == 2:
            self.draw3DRect(rect, self.bgColor1, 1)
        else:
            self.draw3DRect(rect, self.bgColor1, 0)
        getRenderer().drawImage((rect[0] + status, rect[1] + status, rect[2]-2, rect[3]-2), filename)
        #self.shadeBorder(rect, 4, 0)
        (w,h) = getRenderer().getTextSize(title)

        if hasFocus:
            self.drawOutlineRect(rect, self.bgColor1, 3)
        
        getRenderer().drawText( title, (rect[0] + (rect[2]-w)/2 + status, rect[1] + (rect[3]-h)/2 + status-1), self.fgColor)
        getRenderer().drawText( title, (rect[0] + (rect[2]-w)/2 + status-1, rect[1] + (rect[3]-h)/2 + status), pyui.colors.white)
        return rect
Exemplo n.º 34
0
    def drawLabel(self, rect, title, color=None, font=None, shadow=0, align=0):
        getRenderer().drawRect(self.fgColor, rect)
        getRenderer().drawRect(
            self.bgColor3,
            (rect[0] + 2, rect[1] + 2, rect[2] - 4, rect[3] - 4))
        #(title, color) = options
        if not color:
            color = self.fgColor

        if not font:
            font = self.defaultFont

        (w, h) = getRenderer().getTextSize(title, font)
        if align == 2:
            posX = rect[0] + rect[2] / 2 - w / 2
        else:
            posX = rect[0]

        if shadow:
            getRenderer().drawText(title, (posX + shadow, rect[1] + shadow),
                                   pyui.colors.black, font)
        getRenderer().drawText(title, (posX, rect[1]), color, font)
        return (rect[0], rect[1], w, h)
Exemplo n.º 35
0
 def drawMenuItem(self, rect, title, selected, icon = None):
     iconSize = 12
     color = self.fgColor
     if selected:
         getRenderer().drawRect(self.fgColor, (rect[0], rect[1], rect[2], self.defaultTextHeight))
         color = self.bgColor1
     if title == '-':
         self.draw3DRect((rect[0], rect[1] + self.defaultTextHeight / 2- 1, rect[2], 2), self.bgColor1, 1)
     else:
         getRenderer().drawText(title, (rect[0] + iconSize, rect[1]), color, self.defaultFont)
     if icon:
         getRenderer().drawImage((rect[0], rect[1]+(self.defaultTextHeight - iconSize) / 2, iconSize, iconSize), icon)
     return (rect[0], rect[1], rect[2], self.defaultTextHeight)
Exemplo n.º 36
0
    def drawCheckBox(self, rect, text, checkState):
        w = rect[2]
        h = rect[3]
        checkboxXpos = rect[0] + 8        
        checkboxYpos = rect[1] + (h/2) - 8

        self.draw3DRect( (checkboxXpos, checkboxYpos, 16, 16), self.bgColor1, 1)
        getRenderer().drawText( text, (checkboxXpos + 20, checkboxYpos ), self.fgColor)

        if checkState:
            getRenderer().drawLine( checkboxXpos + 2, checkboxYpos + 2, checkboxXpos + 14, checkboxYpos + 14, pyui.colors.white)
            getRenderer().drawLine( checkboxXpos + 14, checkboxYpos + 2, checkboxXpos + 2 , checkboxYpos + 14, pyui.colors.white)

        return rect
Exemplo n.º 37
0
    def drawSliderBar(self, rect, range, position, BARWIDTH=8):
        interval = rect[2] / float(range)
        half = rect[1] + rect[3] / 2
        getRenderer().drawRect(self.bgColor3, rect)
        ## could draw little lines here....
        getRenderer().drawLine(rect[0] + 1, half, rect[0] + rect[2] - 2, half,
                               pyui.colors.white)
        getRenderer().drawLine(rect[0] + 1, half + 2, rect[0] + rect[2] - 2,
                               half + 2, self.fgColor)
        diff = rect[2] - BARWIDTH
        xpos = float(diff) / range * position
        barHeight = rect[3] - 4
        if barHeight > 20:
            barHeight = 20

        self.draw3DRect((rect[0] + xpos, rect[1] + (rect[3] / 2) -
                         (barHeight / 2), BARWIDTH, barHeight), self.bgColor2,
                        0)

        getRenderer().drawText("%s/%s" % (position, range),
                               (rect[0] + rect[2] - 40, rect[1]),
                               pyui.colors.red)
        return rect
Exemplo n.º 38
0
    def __init__(self, title, text):

        size = getRenderer().getTextSize(title)
        Dialog.__init__(self, title = title)
        self.setLayout(pyui.layouts.BorderLayoutManager())

        self.textLabel = pyui.widgets.Label(text)
        self.textLabel.setText(text)
        self.buttonPanel = pyui.widgets.Panel()
        self.buttonPanel.setLayout(pyui.layouts.BorderLayoutManager())
        self.okButton = pyui.widgets.Button("OK", self._pyuiOK)
        self.okButton.resize(self.innerWidth/2, self.okButton.height)
        self.cancelButton = pyui.widgets.Button("Cancel", self._pyuiCancel)
        self.cancelButton.resize(self.innerWidth/2, self.cancelButton.height)     
        self.buttonPanel.addChild(self.okButton, locals.WEST)
        self.buttonPanel.addChild(self.cancelButton, locals.EAST)
        self.buttonPanel.pack()
        
        self.addChild(self.textLabel, locals.CENTER)
        self.addChild(self.buttonPanel, locals.SOUTH)

        self.pack()
Exemplo n.º 39
0
    def drawImageButton(self, rect, filename, title, hasFocus, status):
        if status == 2:
            self.draw3DRect(rect, self.bgColor1, 1)
        else:
            self.draw3DRect(rect, self.bgColor1, 0)
        getRenderer().drawImage(
            (rect[0] + status, rect[1] + status, rect[2] - 2, rect[3] - 2),
            filename)
        #self.shadeBorder(rect, 4, 0)
        (w, h) = getRenderer().getTextSize(title)

        if hasFocus:
            self.drawOutlineRect(rect, self.bgColor1, 3)

        getRenderer().drawText(title,
                               (rect[0] + (rect[2] - w) / 2 + status, rect[1] +
                                (rect[3] - h) / 2 + status - 1), self.fgColor)
        getRenderer().drawText(
            title, (rect[0] + (rect[2] - w) / 2 + status - 1, rect[1] +
                    (rect[3] - h) / 2 + status), pyui.colors.white)
        return rect
Exemplo n.º 40
0
    def draw(self, renderer, x, y):
        """draw the node and it's sub-nodes and return the height it required to draw, and the number of nodes drawn.
        """
        diffY = 0
        self.posY = y
        self.posX = x
        
        if self.posY +itemHeight > self.tree.height:
            return 0

        if self.tree.drawPos >= self.tree.top:
            # draw toggle button
            if self.status == Tree.OPEN:
                renderer.drawImage( (self.tree.windowRect[0] + x, self.tree.windowRect[1] + y, 16, 16), Tree.openButton )
            else:
                if len(self.nodes) > 0:
                    renderer.drawImage( (self.tree.windowRect[0] + x, self.tree.windowRect[1] + y, 16, 16), Tree.closedButton )
                else:
                    renderer.drawImage( (self.tree.windowRect[0] + x, self.tree.windowRect[1] + y, 16, 16), Tree.emptyButton )                

            # draw horizontal connector line
            renderer.drawLine(self.tree.windowRect[0] + x + 16, self.tree.windowRect[1] + y + 8, self.tree.windowRect[0] + x + 32, self.tree.windowRect[1] + y + 8, pyui.colors.grey)
        
            # draw icon
            renderer.drawImage( (self.tree.windowRect[0] + x + 32, self.tree.windowRect[1] + y, 16, 16), self.icon)
            
            # draw title
            if self.selected:
                getRenderer().drawRect(pyui.colors.grey, (self.tree.windowRect[0] + x + 48, self.tree.windowRect[1] + y, len(self.title)*12, itemHeight) )
                getRenderer().drawText( self.title, (self.tree.windowRect[0] + x + 48, self.tree.windowRect[1] + y), pyui.colors.white)
            else:
                getRenderer().drawText( self.title, (self.tree.windowRect[0] + x + 48, self.tree.windowRect[1] + y), pyui.colors.grey)

            y = y +itemHeight
            diffY = diffY + itemHeight

        self.tree.drawPos = self.tree.drawPos + 1

        if self.status == Tree.OPEN and len(self.nodes) > 0:
            dy = self.drawSubNodes(renderer, x, y)
            y = y + dy
            diffY = diffY + dy


        return diffY
Exemplo n.º 41
0
    def drawCheckBox(self, rect, text, checkState):
        w = rect[2]
        h = rect[3]
        checkboxXpos = rect[0] + 8
        checkboxYpos = rect[1] + (h / 2) - 8

        self.draw3DRect((checkboxXpos, checkboxYpos, 16, 16), self.bgColor1, 1)
        getRenderer().drawText(text, (checkboxXpos + 20, checkboxYpos),
                               self.fgColor)

        if checkState:
            getRenderer().drawLine(checkboxXpos + 2, checkboxYpos + 2,
                                   checkboxXpos + 14, checkboxYpos + 14,
                                   pyui.colors.white)
            getRenderer().drawLine(checkboxXpos + 14, checkboxYpos + 2,
                                   checkboxXpos + 2, checkboxYpos + 14,
                                   pyui.colors.white)

        return rect
Exemplo n.º 42
0
def drawFPS():
    global lasttime, frame, fps
    try:
        now = time.time()
        if(now - lasttime > 1):
            fps = frame
            lasttime = now
            frame = 0
        else:
            frame += 1
    except NameError:
        lasttime = time.time()
        frame = 1
        fps = 0
        return

    getRenderer().setup2D()
    #glTranslatef(0.0, 0.0, -1.0)
    getRenderer().drawText(str(fps), (20, 20), pyui.colors.white)
    getRenderer().teardown2D()
Exemplo n.º 43
0
def drawFPS():
    global lasttime, frame, fps
    try:
        now = time.time()
        if now - lasttime > 1:
            fps = frame
            lasttime = now
            frame = 0
        else:
            frame += 1
    except NameError:
        lasttime = time.time()
        frame = 1
        fps = 0
        return

    getRenderer().setup2D()
    # glTranslatef(0.0, 0.0, -1.0)
    getRenderer().drawText(str(fps), (20, 20), pyui.colors.white)
    getRenderer().teardown2D()
Exemplo n.º 44
0
 def drawMenuItem(self, rect, title, selected, icon=None):
     iconSize = 12
     color = self.fgColor
     if selected:
         getRenderer().drawRect(
             self.fgColor,
             (rect[0], rect[1], rect[2], self.defaultTextHeight))
         color = self.bgColor1
     if title == '-':
         self.draw3DRect((rect[0], rect[1] + self.defaultTextHeight / 2 - 1,
                          rect[2], 2), self.bgColor1, 1)
     else:
         getRenderer().drawText(title, (rect[0] + iconSize, rect[1]), color,
                                self.defaultFont)
     if icon:
         getRenderer().drawImage(
             (rect[0], rect[1] +
              (self.defaultTextHeight - iconSize) / 2, iconSize, iconSize),
             icon)
     return (rect[0], rect[1], rect[2], self.defaultTextHeight)
Exemplo n.º 45
0
 def drawSplitter(self, rect):
     (x, y, w, h) = rect
     getRenderer().drawRect(self.fgColor, (x, y, w, h))
     return rect
Exemplo n.º 46
0
 def drawToolTip(self, text, rect):
     getRenderer().drawRect(self.fgColor, rect)
     getRenderer().drawRect(self.bgColor1, (rect[0] + 1, rect[1] + 1, rect[2] - 2, rect[3] - 2))
     getRenderer().drawText(text, (rect[0] + 2, rect[1] + 2), self.fgColor)
     return rect
Exemplo n.º 47
0
 def getGrid( self ):
     (x,y,w,h) = self.windowRect
     font_width, font_heigth = getRenderer().getTextSize( ' ', self.font )
     return int(float(w-16) / float(font_width)), int(float(h-16) / float(font_heigth))
Exemplo n.º 48
0
    def draw(self, renderer, x, y):
        """draw the node and it's sub-nodes and return the height it required to draw, and the number of nodes drawn.
        """
        diffY = 0
        self.posY = y
        self.posX = x

        if self.posY + itemHeight > self.tree.height:
            return 0

        if self.tree.drawPos >= self.tree.top:
            # draw toggle button
            if self.status == Tree.OPEN:
                renderer.drawImage((self.tree.windowRect[0] + x,
                                    self.tree.windowRect[1] + y, 16, 16),
                                   Tree.openButton)
            else:
                if len(self.nodes) > 0:
                    renderer.drawImage((self.tree.windowRect[0] + x,
                                        self.tree.windowRect[1] + y, 16, 16),
                                       Tree.closedButton)
                else:
                    renderer.drawImage((self.tree.windowRect[0] + x,
                                        self.tree.windowRect[1] + y, 16, 16),
                                       Tree.emptyButton)

            # draw horizontal connector line
            renderer.drawLine(self.tree.windowRect[0] + x + 16,
                              self.tree.windowRect[1] + y + 8,
                              self.tree.windowRect[0] + x + 32,
                              self.tree.windowRect[1] + y + 8,
                              pyui.colors.grey)

            # draw icon
            renderer.drawImage((self.tree.windowRect[0] + x + 32,
                                self.tree.windowRect[1] + y, 16, 16),
                               self.icon)

            # draw title
            if self.selected:
                getRenderer().drawRect(pyui.colors.grey,
                                       (self.tree.windowRect[0] + x + 48,
                                        self.tree.windowRect[1] + y,
                                        len(self.title) * 12, itemHeight))
                getRenderer().drawText(self.title,
                                       (self.tree.windowRect[0] + x + 48,
                                        self.tree.windowRect[1] + y),
                                       pyui.colors.white)
            else:
                getRenderer().drawText(self.title,
                                       (self.tree.windowRect[0] + x + 48,
                                        self.tree.windowRect[1] + y),
                                       pyui.colors.grey)

            y = y + itemHeight
            diffY = diffY + itemHeight

        self.tree.drawPos = self.tree.drawPos + 1

        if self.status == Tree.OPEN and len(self.nodes) > 0:
            dy = self.drawSubNodes(renderer, x, y)
            y = y + dy
            diffY = diffY + dy

        return diffY
Exemplo n.º 49
0
Arquivo: base.py Projeto: burito/PyUI
 def moveto(self, x, y):
     Base.moveto(self, x,y)
     getRenderer().moveWindow(self.handle, self.posX, self.posY)
Exemplo n.º 50
0
Arquivo: base.py Projeto: burito/PyUI
 def move(self, x, y):
     Base.move(self, x,y)
     getRenderer().moveWindow(self.handle, self.posX+x, self.posY+y)
Exemplo n.º 51
0
 def drawListBox(self, rect):
     self.drawOutlineRect(rect, self.fgColor, 2)
     getRenderer().drawRect(
         self.bgColor3,
         (rect[0] + 2, rect[1] + 2, rect[2] - 4, rect[3] - 4))
     return rect
Exemplo n.º 52
0
 def moveto(self, x, y):
     Base.moveto(self, x,y)
     getRenderer().moveWindow(self.handle, self.posX, self.posY)
Exemplo n.º 53
0
    def drawTabItem(self, rect, title, active):
        gap = 3
        (x, y, w, h) = rect
        getRenderer().drawRect(self.fgColor, (x, y + h - 1, gap, 1))
        x += gap
        title = " " + title + " "
        w = getRenderer().getTextSize(title, self.defaultFont)[0]
        if active:
            getRenderer().drawRect(self.fgColor, (x, y, w, 1))
            getRenderer().drawRect(self.fgColor, (x, y, 1, h))
            getRenderer().drawRect(self.fgColor, (x + w - 1, y, 1, h))
        else:
            getRenderer().drawRect(self.bgColor2, (x, y, w, h))
            self.drawOutlineRect((x, y, w, h), self.fgColor)
            pass
        getRenderer().drawRect(self.bgColor3, (x + w, y + gap, gap, h - gap))

        getRenderer().drawText(title, (x, y), self.fgColor, self.defaultFont)
        return (x, y, w, h)
Exemplo n.º 54
0
 def drawTabHeader(self, rect):
     (x, y, w, h) = rect
     getRenderer().drawRect(self.fgColor, (x, y + h - 1, w, 1))
     return rect
Exemplo n.º 55
0
 def drawMenu(self, rect):
     getRenderer().drawRect(self.fgColor, rect)
     getRenderer().drawRect(
         self.bgColor1,
         (rect[0] + 2, rect[1] + 2, rect[2] - 4, rect[3] - 4))
     return rect