def drawSelection(self,selectionLeft,selectionRight,dc): #rect=self.getRectangle(0,selectionLeft,selectionRight-1,dc) rect=self.getRectangle(selectionLeft,selectionRight-1,dc) if rect: drawutils.setPenColour(dc,colours.commandlineSelectedText) drawutils.setBrushColour(dc,colours.commandlineSelectedText) dc.DrawRectangle(rect[0],rect[1],rect[2],rect[3])
def draw(self,dc): drawutils.setPenColour(dc,self.colour) drawutils.setPenWidth(dc,self.penWidth) if self.__inXRange() and self.__inYRange(): for line in range(5): dc.DrawLine(self.x1,self.y1+(line*self.spacing),self.x2,self.y2+(line*self.spacing)) drawutils.setPenWidth(dc,1)
def doPaint(self,dc): size=self.GetClientSize() drawutils.setPenColour(dc,colours.borderGradient1) drawutils.setBrushColour(dc,colours.borderGradient1) dc.DrawRectangle(0,0,size[0],size[1]) self.__truncatedValues=[] if self.model.keyval: self.__keyval_drawing(dc) self.__borderDrawing(dc)
def __keyval_drawing(self,dc): keyval=self.model.keyval self.lineCount=0 if keyval: size=self.GetClientSize() x=0 y=5 yinc=1.2*dc.GetTextExtent('0')[1] maxk=0 for k,v in keyval: test=dc.GetTextExtent(str(k))[0]+10 if test>maxk: maxk=test maxk=min(maxk,size[0]*0.5) for k,v in keyval[self.offset:]: dc.GradientFillLinear(wx.Rect(1,y-1,size[0],yinc),colours.borderGradient1,colours.borderGradient2,wx.SOUTH) dc.DrawText(str(k), maxk-(dc.GetTextExtent(str(k))[0]+5),y) displayText=[] maxWidth=0.9* (size[0]-(maxk+5)) widthTolerance=0.2*maxWidth #utils.chopString(str(v),dc,maxWidth,displayText,widthTolerance,True) utils.chopString2(str(v),dc,maxWidth,displayText,0,True) extraLine=False for choppedLine in displayText: if extraLine: dc.GradientFillLinear(wx.Rect(1,y-1,size[0],yinc),colours.borderGradient1,colours.borderGradient2,wx.SOUTH) extraLine=True dc.DrawText(choppedLine, maxk+5,y) self.lineCount=self.lineCount+1 #if dc.GetTextExtent(str(v))[0]>size[0]-(maxk+5): # self.__truncatedValues.append((maxk,size[0],y,y+yinc,str(v))) drawutils.setPenColour(dc,colours.browser_gridlines) dc.DrawLine(maxk,y,maxk,y+yinc) drawutils.setPenColour(dc,'black') #count=count+1 y=y+yinc if self.lineCount*yinc>size[1]: self.showScrollbar=True self.__numItemsDisplayed=int(size[1]/yinc) self.SetScrollbar(wx.VERTICAL,self.offset,self.__numItemsDisplayed,self.lineCount+1)
def scrolldraw(self,dc,xOffset=0,yOffset=0,xRange=(-10000,10000),yRange=(-10000,10000)): drawutils.setPenColour(dc,self.lineColour) drawutils.setPenWidth(dc,1) for stave in self.staves: for item in stave.lines: item.setXOffset(xOffset) item.setYOffset(yOffset) if xRange: item.setXRange(xRange) item.m_draw(dc) drawutils.setBrushColour(dc,self.noteColour) drawutils.setPenColour(dc,self.noteColour) for stave in self.staves: for item in stave.circles: item.setXOffset(xOffset) item.setYOffset(yOffset) if xRange: item.setXRange(xRange) item.m_draw(dc) for stave in self.staves: for item in stave.text: item.setXOffset(xOffset) item.setYOffset(yOffset) if xRange: item.setXRange(xRange) item.m_draw(dc) pts,weight=fonts.setStaffNumbersFont(dc) for stave in self.staves: for item in stave.numbers: item.setXOffset(xOffset) item.setYOffset(yOffset) if xRange: item.setXRange(xRange) item.m_draw(dc) fonts.resetFont(dc,pts,weight)
def __backgroundDrawing(self, dc): size = self.GetClientSize() drawutils.setPenColour(dc, colours.borderGradient1) drawutils.setBrushColour(dc, colours.borderGradient1) dc.DrawRectangle(0, 0, size[0], size[1])
def draw(self,dc): drawutils.setPenColour(dc,self.colour) drawutils.setPenWidth(dc,self.penWidth) if self.__inXRange() and self.__inYRange(): dc.DrawLine(self.x1,self.y1,self.x2,self.y2) drawutils.setPenWidth(dc,1)
def draw(self,dc): drawutils.setBrushColour(dc,self.colour) drawutils.setPenColour(dc,self.colour) if self.__inXRange() and self.__inYRange(): dc.DrawCircle(self.x,self.y,self.r)
def __drawspace(self,xpos,dc): col=drawutils.getPenColour(dc) penColour=drawutils.setPenColour(dc,drawutils.getBackgroundColour(dc)) spacing=2*self.noteRadius ypos=self.origin[1] self.lines.append(stavelines(xpos,ypos,xpos+self.noteSpacing,ypos,spacing,colour=penColour))
def draw(self, dc): # drawutils.setPenColour(dc,colours.borderGradient1) # drawutils.setBrushColour(dc,colours.borderGradient1) # dc.DrawRectangle(0,0,self.width,self.height) self.gridlines = [] self.parent.truncatedValues = [] self.__setupDimensions(dc) xpos = self.xpos + self.xMargin ypos = self.ypos + self.yMargin drawutils.setPenColour(dc, 'black') if self.maxOffset > 0: for i in range(self.numItems): self.count = self.count + 1 if self.count > self.maxOffset: break rectHeight = min((self.lineSpacing - 1), (self.height - (ypos - 1))) rectHeight = rectHeight + 1 if self.itemList: if i < len(self.itemList): item = self.itemList[i] desc = self.processDescription(item) name = self.processName(item) highlight, scroll_selection, tap_selection, amber_selection = self.__getStatus( i, item) drawutils.setPenColour(dc, wx.Colour(0, 0, 0)) drawutils.setBrushColour(dc, wx.Colour(0, 0, 0)) rect = wx.Rect(1, ypos - 1, self.width, rectHeight) if tap_selection: if scroll_selection: dc.GradientFillLinear(rect, colours.bg_sel_tap, colours.bg_sel_tap, wx.SOUTH) pts, weight = fonts.setTableEntrySelectedFont( dc) self.drawEntry( dc, item, self.__getHighlightLed(highlight), xpos, ypos, desc, name, current=True, tapped=True) fonts.resetFont(dc, pts, weight) else: dc.GradientFillLinear(rect, colours.bg_sel_tap, colours.bg_sel_tap, wx.SOUTH) pts, weight = fonts.setTableEntrySelectedFont( dc) self.drawEntry( dc, item, self.__getHighlightLed(highlight), xpos, ypos, desc, name, tapped=True) fonts.resetFont(dc, pts, weight) elif highlight: if scroll_selection: dc.GradientFillLinear(rect, colours.bg_selGradient1, colours.bg_selGradient2, wx.SOUTH) pts, weight = fonts.setTableEntrySelectedFont( dc) self.drawEntry(dc, item, self.green, xpos, ypos, desc, name, current=True, highlight=True) fonts.resetFont(dc, pts, weight) else: dc.GradientFillLinear(rect, colours.borderGradient1, colours.borderGradient2, wx.SOUTH) self.drawEntry(dc, item, self.green, xpos, ypos, desc, name, highlight=True) elif scroll_selection: dc.GradientFillLinear(rect, colours.bg_selGradient1, colours.bg_selGradient2, wx.SOUTH) pts, weight = fonts.setTableEntrySelectedFont(dc) self.drawEntry(dc, item, self.__getAmberLed(amber_selection), xpos, ypos, desc, name, current=True) fonts.resetFont(dc, pts, weight) else: dc.GradientFillLinear(rect, colours.borderGradient1, colours.borderGradient2, wx.SOUTH) self.drawEntry(dc, item, self.__getAmberLed(amber_selection), xpos, ypos, desc, name) ypos = ypos + self.lineSpacing drawutils.setPenColour(dc, colours.browser_gridlines) for l in self.gridlines: l.draw(dc) drawutils.setPenColour(dc, 'black')