# -*- coding: cp1252 -*-
import Tkinter as tk
import random
class Farbfenster:
    def __init__(self,master):
        self.tags=[]
        self.farbbuts=[]
        self.taglist={"1":"#0000B0",
                      "2":"#00B000",
                      "3":"#00B0B0",
                      "4":"#B00000",
                      "5":"#B000CC",
                      "6":"#B0B000",
                      "7":"#B0B0B0",
                      "8":"#DDFFBB",
                      "9":"#0070FF",
                      "!":"#0000FF",
                      "@":"#00FF00",
                      "#":"#00FFFF",
                      "$":"#FF0000",
                      "%":"#FF00FF",
                      "^":"#FFFF00",
                      "&":"#FFFFFF",
                      "T":"#6b563f",
                      "t":"#F8DB83",
                      "r":"#EEBBEE",
                      "R":"#EEBBEE",
                      "V":"#9A5BEE",
                      "v":"#AABBEE",
                      "g":"#aaff99",
                      "Q":"#FF6600",
                      "q":"#FF9900",
                      "~":"#000000"}
        self.master=master
        self.scrollbar=tk.Scrollbar(master)
        self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.text=tk.Text(master,
                          width=78,
                          bg="#352D20",
                          fg="white",
                          yscrollcommand=self.scrollbar.set,
                          undo=1,
                          maxundo=1)
        self.text.pack(fill=tk.BOTH)
        self.scrollbar.config(command=self.text.yview)
        anzahl=len(self.taglist.keys())
        self.butsframe=tk.Frame(master)
        self.butsframe.pack()
        zahl=0
        for i in self.taglist.keys():
            zahl+=1
            self.farbbuts.append(tk.Button(self.butsframe,
                                           text="`"+i,
                                           fg=self.taglist[i],
                                           bg="#352D20",
                                           activebackground=self.taglist[i],
                                           activeforeground="#352D20",
                                           command=self.addfarbcode(i)))
           
            self.farbbuts[-1].pack(side=tk.LEFT)
        self.textentry=tk.Entry(root,width=59,bg="#352D20",fg="white",insertbackground="white")
        self.textentry.pack(side=tk.LEFT)
        self.parsebutton=tk.Button(root,text="Parse!",command=self.parse,bg="#352D20",fg="white")
        self.parsebutton.pack(side=tk.LEFT)
        self.savebutton=tk.Button(root,text="Save!",command=self.save,bg="#352D20",fg="white")
        self.savebutton.pack(side=tk.LEFT)
        self.loadbutton=tk.Button(root,text="Load!",command=self.showlistbox,bg="#352D20",fg="white")
        self.loadbutton.pack(side=tk.LEFT)
        self.master.bind_all("<Return>",self.parse)
        self.master.bind_all("<F2>",self.save)
        self.master.bind_all("<F3>",self.showlistbox)
        self.text.bind("<Any>",self.foo)
        temp=""
        for i in self.taglist.keys():
            self.add("1."+str(len(temp)),"`"+i+" ",self.taglist[i])
        del temp
        self.text.insert("end","\n - max. Länge von Namen für Plüschi 50 Zeichen!\n\n")
       
        self.textentry.focus_set()
    def foo(self,ev):
        self.master.after(20,self.makeundo)
        #print ev.keysym
    def makeundo(self):
        try:self.text.edit_undo()
        except:pass
    def addfarbcode(self,farbcode):
        def insertfarbcode():
            self.textentry.insert("end","`"+farbcode)
        return insertfarbcode
           
    def add(self,index,text,farbe):
        self.tags.append(str(index)+text+str(farbe)+str(random.random()))
        self.text.insert(index,text)
        self.text.tag_add(self.tags[-1],index,index+str(len(text)))
        self.text.tag_configure(self.tags[-1],foreground=farbe)
    def pack(self,**kw):
        self.text.pack(**kw)
    def save(self,*ev):
        f=file("schneiderstube.txt","a+")
        f.write(self.textentry.get())
        f.write("\n")
        f.close()
        self.text.insert("end","String erfolgreich gespeichert!\n")
    def showlistbox(self,*ev):
        entrys=self.load()
        if entrys:
            self.top=tk.Toplevel(self.master)
            self.topscrollbar=tk.Scrollbar(self.top)
            self.topscrollbar.pack(side=tk.RIGHT,fill=tk.Y)
            self.listbox=tk.Listbox(self.top,width=100,yscrollcommand=self.topscrollbar.set)
            for i in entrys:
                self.listbox.insert("end",i[:-1])
            self.listbox.pack()
            self.topscrollbar.config(command=self.listbox.yview)
            self.insertbutton=tk.Button(self.top,text="Einfügen",command=self.insertintoentry)
            self.insertbutton.pack(side=tk.LEFT,fill=tk.X)
            self.removebutton=tk.Button(self.top,text="Löschen",command=self.removefromlist)
            self.removebutton.pack(side=tk.LEFT,fill=tk.X)
            self.top.grab_set()
            self.top.focus_set()
            self.top.wait_window()
            self.top.mainloop()
        else:
            self.text.insert("end","Keine Daten zum Laden vorhanden!\n")
    def insertintoentry(self):
        try:
            toinsert=self.listbox.selection_get()
            self.textentry.delete(0,"end")
            self.textentry.insert("end",toinsert)
            self.top.destroy()
        except:pass
    def removefromlist(self):
        lines=[]
        for i in self.listbox.get(0,"end"):
            if i!=self.listbox.selection_get():
                lines.append(i)
        f=file("schneiderstube.txt","w")
        for i in lines:
            f.write(i+"\n")
        f.close()
        self.listbox.delete(0,"end")
        for i in lines:
            self.listbox.insert("end",i)
    def load(self,*ev):
        f=file("schneiderstube.txt","a+")
        lines=f.readlines()
        f.close()
        return lines
    def parse(self,*ev):
        content=self.textentry.get()
        if content:
            lineanz=len(self.text.get("1.0","end").splitlines())
            self.text.insert("end",u"[ %s ]:\t%s Zeichen\n"%(content,len(content)))
            if "`" in content:
                parts=[]
                lineanz=len(self.text.get("1.0","end").splitlines())
                x=content.split("`")
                for i in x[1:]:
                    parts.append(i)
                tempstr=x[0]
                self.text.insert("end",tempstr)
                for i in parts:
                    if i[0] in self.taglist.keys():
                        text=u"%s"%i[1:]
                        self.add(str(lineanz)+"."+str(len(tempstr)),text,self.taglist[i[0]])
                        tempstr+=text
                    else:
                        self.text.insert("end","`"+text)
                        tempstr+=text
            else:
                self.text.insert("end",content)
            self.text.insert("end","\n")
       
root=tk.Tk()
root.iconbitmap("favicon.ico")
root.config(bg="#352D20")
root.title("Saladins Schneiderstube")
root.resizable(0,0)
textwindow=Farbfenster(root)
root.mainloop()


Gratis Homepage von Beepworld
 
Verantwortlich für den Inhalt dieser Seite ist ausschließlich der
Autor dieser Homepage, kontaktierbar über dieses Formular!