def setFonts(self): cfgGui = self.getCfgGui() self.scenefont = cfgGui.fonts[pml.BOLD].font h = util.getFontHeight(self.scenefont) i = int(h * 0.1) if i <= 1: smallh = h - 1 else: smallh = h - i self.blurbfont = util.createPixelFont( smallh, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.annotatedfont = util.createPixelFont( smallh, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.BOLD) self.itemheight = h + 2 self.scenecolor = cfgGui.navSceneTextColor self.selscenecolor = cfgGui.navSceneSelectedMarkColor self.notecolor = cfgGui.navNoteTextColor self.blurbcolor = cfgGui.navBlurbTextColor self.transitioncolor = cfgGui.navTransitionTextColor self.bgcolor = cfgGui.navBgColor self.annotatedbgcolor = cfgGui.navAnnotatedBgColor self.separatorpen = cfgGui.tabBorderPen
def __init__(self, parent, id, getCfgGui): wx.Window.__init__(self, parent, id, size=(MyStatus.WIDTH, TAB_BAR_HEIGHT), style=wx.FULL_REPAINT_ON_RESIZE) self.getCfgGui = getCfgGui self.page = 0 self.pageCnt = 0 self.elemType = "" self.tabNext = "" self.enterNext = "" self.elementFont = util.createPixelFont(TAB_BAR_HEIGHT // 2 + 6, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.font = util.createPixelFont(TAB_BAR_HEIGHT // 2 + 2, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) wx.EVT_PAINT(self, self.OnPaint)
def __init__(self, parent, delay): wx.Frame.__init__(self, parent, -1, "Splash", style=wx.FRAME_FLOAT_ON_PARENT | wx.NO_BORDER) if not SplashWindow.inited: SplashWindow.inited = True wx.Image_AddHandler(wx.JPEGHandler()) self.loadQuotes(parent) self.pickRandomQuote() self.pic = misc.getBitmap("resources/logo.jpg") if self.pic.Ok(): w, h = (self.pic.GetWidth(), self.pic.GetHeight()) else: w, h = (375, 300) util.setWH(self, w, h) self.CenterOnScreen() self.textColor = wx.Colour(255, 255, 255) self.font = util.createPixelFont(14, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.NORMAL) self.quoteFont = util.createPixelFont(16, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.sourceFont = util.createPixelFont(15, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) if delay != -1: self.timer = wx.Timer(self) wx.EVT_TIMER(self, -1, self.OnTimer) self.timer.Start(delay, True) wx.EVT_LEFT_DOWN(self, self.OnClick) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_CLOSE(self, self.OnCloseWindow)
def __init__(self, parent, id, getCfgGui): wx.Window.__init__(self, parent, id, size = (MyStatus.WIDTH, TAB_BAR_HEIGHT), style = wx.FULL_REPAINT_ON_RESIZE) self.getCfgGui = getCfgGui self.page = 0 self.pageCnt = 0 self.elemType = "" self.tabNext = "" self.enterNext = "" self.elementFont = util.createPixelFont( TAB_BAR_HEIGHT // 2 + 6, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.font = util.createPixelFont( TAB_BAR_HEIGHT // 2 + 2, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) wx.EVT_PAINT(self, self.OnPaint)
def __init__(self, parent): wx.Window.__init__(self, parent, -1) self.selected = None # all valid characters self.chars = "" for i in xrange(256): if util.isValidInputChar(i): self.chars += chr(i) self.cols = 16 self.rows = len(self.chars) // self.cols if len(self.chars) % 16: self.rows += 1 # offset of grid self.offset = 5 # size of a single character cell self.cellSize = 32 # size of the zoomed-in character boxes self.boxSize = 60 self.smallFont = util.createPixelFont(18, wx.FONTFAMILY_SWISS, wx.NORMAL, wx.NORMAL) self.normalFont = util.createPixelFont(self.cellSize - 2, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.BOLD) self.bigFont = util.createPixelFont(self.boxSize - 2, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.BOLD) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_LEFT_DOWN(self, self.OnLeftDown) wx.EVT_MOTION(self, self.OnMotion) wx.EVT_SIZE(self, self.OnSize) util.setWH(self, self.cols * self.cellSize + 2 * self.offset, 460)
def __init__(self, parent, delay): wx.Frame.__init__(self, parent, -1, "Splash", style=wx.FRAME_FLOAT_ON_PARENT | wx.NO_BORDER) if not SplashWindow.inited: SplashWindow.inited = True wx.Image_AddHandler(wx.JPEGHandler()) self.loadQuotes(parent) self.pickRandomQuote() self.pic = misc.getBitmap("resources/logo.jpg") if self.pic.Ok(): w, h = (self.pic.GetWidth(), self.pic.GetHeight()) else: w, h = (375, 300) util.setWH(self, w, h) self.CenterOnScreen() self.textColor = wx.Colour(0, 0, 0) self.font = util.createPixelFont(14, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.NORMAL) self.quoteFont = util.createPixelFont(16, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.sourceFont = util.createPixelFont(15, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) if delay != -1: self.timer = wx.Timer(self) wx.EVT_TIMER(self, -1, self.OnTimer) self.timer.Start(delay, True) wx.EVT_LEFT_DOWN(self, self.OnClick) wx.EVT_PAINT(self, self.OnPaint) wx.EVT_CLOSE(self, self.OnCloseWindow)
def OnPaint(self, event): dc = wx.BufferedPaintDC(self, self.screenBuf) cfgGui = self.getCfgGui() w, h = self.GetClientSizeTuple() dc.SetBrush(cfgGui.tabBarBgBrush) dc.SetPen(cfgGui.tabBarBgPen) dc.DrawRectangle(0, 0, w, h) dc.SetPen(cfgGui.tabBorderPen) dc.DrawLine(0, h - 1, w, h - 1) xpos = self.paddingX tabW = self.tabWidth tabH = h - 2 tabY = h - tabH if not self.font: textH = h - self.textY - 1 self.font = util.createPixelFont(textH, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.boldFont = util.createPixelFont(textH, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.BOLD) maxTab = self.getLastVisibleTab() for i in range(self.firstTab, maxTab + 1): dc.SetFont(self.font) p = self.pages[i] dc.DestroyClippingRegion() dc.SetClippingRegion(xpos, tabY, tabW, tabH) dc.SetPen(cfgGui.tabBorderPen) if i == self.selected: points = ((6, 1), (tabW - 8, 1), (tabW - 6, 2), (tabW - 2, tabH), (0, tabH), (4, 2)) dc.SetBrush(cfgGui.workspaceBrush) else: points = ((5, 2), (tabW - 8, 2), (tabW - 6, 3), (tabW - 2, tabH - 1), (0, tabH - 1), (3, 3)) dc.SetBrush(cfgGui.tabNonActiveBgBrush) dc.DrawPolygon(points, xpos, tabY) # clip the text to fit within the tabs dc.DestroyClippingRegion() dc.SetClippingRegion(xpos, tabY, tabW - self.paddingX * 3, tabH) dc.SetPen(cfgGui.tabTextPen) dc.SetTextForeground(cfgGui.tabTextColor) dc.DrawText(p[1], xpos + self.paddingX, self.textY) dc.DestroyClippingRegion() dc.SetFont(self.boldFont) dc.DrawText(u"\u00d7", xpos + tabW - self.paddingX * 2, self.textY) xpos += tabW # start of right arrow rx = w - 1 - self.paddingX - self.arrowWidth + 1 if self.firstTab != 0: dc.DestroyClippingRegion() dc.SetPen(cfgGui.tabTextPen) util.drawLine(dc, rx - self.arrowSpacing - 1, self.arrowY, 0, self.arrowHeight) util.drawLine(dc, rx - self.arrowSpacing - 2, self.arrowY, -self.arrowWidth + 1, self.arrowHeight // 2 + 1) util.drawLine(dc, rx - self.arrowSpacing - self.arrowWidth, self.arrowY + self.arrowHeight // 2, self.arrowWidth - 1, self.arrowHeight // 2 + 1) if maxTab < (len(self.pages) - 1): dc.DestroyClippingRegion() dc.SetPen(cfgGui.tabTextPen) util.drawLine(dc, rx, self.arrowY, 0, self.arrowHeight) util.drawLine(dc, rx + 1, self.arrowY, self.arrowWidth - 1, self.arrowHeight // 2 + 1) util.drawLine(dc, rx + 1, self.arrowY + self.arrowHeight - 1, self.arrowWidth - 1, -(self.arrowHeight // 2 + 1))
def OnPaint(self, event): dc = wx.BufferedPaintDC(self, self.screenBuf) cfgGui = self.getCfgGui() w, h = self.GetClientSizeTuple() dc.SetBrush(cfgGui.tabBarBgBrush) dc.SetPen(cfgGui.tabBarBgPen) dc.DrawRectangle(0, 0, w, h) dc.SetPen(cfgGui.tabBorderPen) dc.DrawLine(0,h-1,w,h-1) xpos = self.paddingX tabW = self.tabWidth tabH = h - 2 tabY = h - tabH if not self.font: textH = h - self.textY - 1 self.font = util.createPixelFont( textH, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.NORMAL) self.boldFont = util.createPixelFont( textH, wx.FONTFAMILY_DEFAULT, wx.NORMAL, wx.BOLD) maxTab = self.getLastVisibleTab() for i in range(self.firstTab, maxTab + 1): dc.SetFont(self.font) p = self.pages[i] dc.DestroyClippingRegion() dc.SetClippingRegion(xpos, tabY, tabW, tabH) dc.SetPen(cfgGui.tabBorderPen) if i == self.selected: points=((6,1),(tabW-8,1),(tabW-6,2),(tabW-2,tabH),(0,tabH),(4,2)) dc.SetBrush(cfgGui.workspaceBrush) else: points=((5,2),(tabW-8,2),(tabW-6,3),(tabW-2,tabH-1),(0,tabH-1),(3,3)) dc.SetBrush(cfgGui.tabNonActiveBgBrush) dc.DrawPolygon(points,xpos,tabY) # clip the text to fit within the tabs dc.DestroyClippingRegion() dc.SetClippingRegion(xpos, tabY, tabW - self.paddingX * 3, tabH) dc.SetPen(cfgGui.tabTextPen) dc.SetTextForeground(cfgGui.tabTextColor) dc.DrawText(p[1], xpos + self.paddingX, self.textY) dc.DestroyClippingRegion() dc.SetFont(self.boldFont) dc.DrawText("×", xpos + tabW - self.paddingX * 2, self.textY) xpos += tabW # start of right arrow rx = w - 1 - self.paddingX - self.arrowWidth + 1 if self.firstTab != 0: dc.DestroyClippingRegion() dc.SetPen(cfgGui.tabTextPen) util.drawLine(dc, rx - self.arrowSpacing - 1, self.arrowY, 0, self.arrowHeight) util.drawLine(dc, rx - self.arrowSpacing - 2, self.arrowY, -self.arrowWidth + 1, self.arrowHeight // 2 + 1) util.drawLine(dc, rx - self.arrowSpacing - self.arrowWidth, self.arrowY + self.arrowHeight // 2, self.arrowWidth - 1, self.arrowHeight // 2 + 1) if maxTab < (len(self.pages) - 1): dc.DestroyClippingRegion() dc.SetPen(cfgGui.tabTextPen) util.drawLine(dc, rx, self.arrowY, 0, self.arrowHeight) util.drawLine(dc, rx + 1, self.arrowY, self.arrowWidth - 1, self.arrowHeight // 2 + 1) util.drawLine(dc, rx + 1, self.arrowY + self.arrowHeight - 1, self.arrowWidth - 1, -(self.arrowHeight // 2 + 1))