def Link2(self, vparser, token, tentry): xstack = stack.Stack() # Walk optionals: while True: vparser.popstate() if vparser.fsm == parser.KEYVAL: #print " Reducing keyval", fsm, "'"+ttt+"'", "\"" + stry + "\"" xstack.push([vparser.ttt, "=", vparser.stry]) if vparser.contflag == 0: break while True: xkey = xstack.pop() if not xkey: break kk, ee, vv = xkey; vv = vv.replace("\"",""); vv = vv.replace("\'","") #print "link key: '" + kk + "' val: '" + vv + "'" if kk == "file" or kk == "name": # Try docroot - current dir - home dir fname = self.pvg.docroot + "/" + vv if not isfile(fname): fname = vv if not isfile(fname): fname = "~/" + vv if not isfile(fname): fname = vv self.TextState.link = fname if kk == "color" or kk == "fg": #print "setting color in link" self.TextState.color = vv self.emit( "<link2>")
def Span2(self, vparser, token, tentry): xstack = stack.Stack() # Walk optionals: while True: fsm, contflag, ttt, stry = vparser.fstack.pop() if fsm == parser.KEYVAL: #print (" Reducing keyval", fsm, "'"+ttt+"'", "\"" + stry + "\"" ) xstack.push([ttt, "=", stry]) if contflag == 0: break # Set font parameters: while True: xkey = xstack.pop() if not xkey: break kk, ee, vv = xkey vv = vv.replace("\"", "") vv = vv.replace("\'", "") #print ("key ",kk, vv) if kk == "background" or kk == "bg" or kk == "bgcolor": self.TextState.bgcolor = vv if kk == "foreground" or kk == "fg" or kk == "color": self.TextState.color = vv elif kk == "size": self.TextState.size = int(vv) elif kk == "font": self.TextState.font = vv elif kk == "bold": if isTrue(vv): self.TextState.bold = True else: self.TextState.bold = False elif kk == "italic": if isTrue(vv): self.TextState.italic = True else: self.TextState.italic = False elif kk == "under" or kk == "underline": if isTrue(vv): self.TextState.ul = True else: self.TextState.ul = False elif kk == "align" or kk == "alignment": vvv = vv.lower() if vvv == "left": self.TextState.left = True elif vvv == "right": self.TextState.right = True elif vvv == "center": #print (" centering") self.TextState.center = True self.emit(" spantxt >")
def showfile(strx): global buf, xstack, mainview, pvg, ts got_clock = time.clock() if pvg.verbose: print ("Showing file:", strx) try: fh = open(strx) except: strerr = "File: '" + strx + "' must be an existing and readble file. " print (strerr) mainview.add_text(strerr) return try: buf = fh.read(); except: strerr2 = "Cannot read file '" + strx + "'" print (strerr2) mainview.add_text(strerr2) fh.close() return fh.close() if pvg.show_timing: print ("loader:", time.clock() - got_clock) if pvg.pgdebug > 5: print (buf) lstack.push(strx) mainview.clear(pvg.flag) ts.clear() xstack = stack.Stack() lexer.Lexer(buf, xstack, parser.tokens) if pvg.show_timing: print ("lexer:", time.clock() - got_clock) if pvg.show_lexer: # To show what the lexer did xstack.dump() parser.Parse(buf, xstack, pvg) cb.flush() mainview.showcur(False) if pvg.show_timing: print ("parser:", time.clock() - got_clock) # Output results if pvg.emit: show_emit()
def Image2(self, vparser, token, tentry): xstack = stack.Stack() # Walk optionals: while True: vparser.popstate() if vparser.fsm == parser.KEYVAL: #print (" Reducing keyval", fsm, "'"+ttt+"'", "\"" + stry + "\"" ) xstack.push([vparser.ttt, "=", vparser.stry]) if vparser.contflag == 0: break xtag = Gtk.TextTag() fname = "" www = 0 hhh = 0 while True: xkey = xstack.pop() if not xkey: break kk, ee, vv = xkey vv = vv.replace("\"", "") vv = vv.replace("\'", "") #print ("key: '" + kk + "' val: '" + vv + "'") if kk == "align": if vv == "left": xtag.set_property("justification", Gtk.JUSTIFY_LEFT) elif vv == "center": xtag.set_property("justification", Gtk.JUSTIFY_CENTER) elif vv == "right": xtag.set_property("justification", Gtk.JUSTIFY_RIGHT) if kk == "width": www = int(vv) if kk == "height": hhh = int(vv) if kk == "name" or kk == "file": # Try docroot - curr dir - home/Pictures - home fname = self.pvg.docroot + "/" + vv if not isfile(fname): fname = vv if not isfile(fname): fname = "~/Pictures" + vv if not isfile(fname): fname = "~/" + vv # Exec collected stuff self.Mainview.add_text_xtag(" ", xtag, self.pvg.flag) try: pixbuf = Gtk.gdk.pixbuf_new_from_file(fname) if www and hhh: #print ("scaling to", www, hhh) pixbuf2 = Gtk.gdk.Pixbuf(Gtk.gdk.COLORSPACE_RGB, True, 8, www, hhh) pixbuf.scale(pixbuf2, 0, 0, www, hhh, 0, 0, float(www) / pixbuf.get_width(), float(hhh) / pixbuf.get_height(), Gtk.gdk.INTERP_BILINEAR) self.Mainview.add_pixbuf(pixbuf2, self.pvg.flag) else: self.Mainview.add_pixbuf(pixbuf, self.pvg.flag) except gobject.GError as error: #print ("Failed to load image file '" + vv + "'") self.Mainview.add_broken(self.pvg.flag) #vparser.fsm, vparser.contflag, ttt, vparser.stry = vparser.fstack.pop() self.emit("<image2>")
if aa[0] == "-v": pvg.verbose = True if aa[0] == "-x": pvg.show_lexer = True if aa[0] == "-f": pvg.full_screen = True if aa[0] == "-o": pvg.xfull_screen = True if aa[0] == "-t": pvg.show_timing = True if aa[0] == "-e": pvg.emit = True if aa[0] == "-p": pvg.show_parse = True if aa[0] == "-s": pvg.show_state = True try: strx = args[0] except: help() exit(1) lstack = stack.Stack() fullpath = os.path.abspath(strx) pvg.docroot = os.path.dirname(fullpath) if pvg.xfull_screen: mainview.fullscreen() elif pvg.full_screen: mainview.set_fullscreen() mainview.callback = link mainview.bscallback = bslink if pvg.second != "": if pvg.pane_pos >= 0: mainview.set_pane_position(pvg.pane_pos) else: