Onionr/onionr/onionrgui.py
2019-01-06 23:50:20 -06:00

78 lines
2.7 KiB
Python
Executable File

#!/usr/bin/env python3
import threading, time
from tkinter import *
import core
class OnionrGUI:
def __init__(self):
self.dataDir = "/programming/onionr/data/"
self.root = Tk()
self.root.geometry("450x250")
self.core = core.Core()
menubar = Menu(self.root)
# create a pulldown menu, and add it to the menu bar
filemenu = Menu(menubar, tearoff=0)
#filemenu.add_command(label="Open", command=None)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=self.root.quit)
menubar.add_cascade(label="File", menu=filemenu)
settingsmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Settings", menu=settingsmenu)
helpmenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Help", menu=helpmenu)
self.root.config(menu=menubar)
self.menuFrame = Frame(self.root)
self.tabButton1 = Button(self.menuFrame, text="Mail", command=self.openMail)
self.tabButton1.grid(row=0, column=1, padx=0, pady=2, sticky=N+W)
self.tabButton2 = Button(self.menuFrame, text="Message Flow")
self.tabButton2.grid(row=0, column=3, padx=0, pady=2, sticky=N+W)
self.menuFrame.grid(row=0, column=0, padx=2, pady=0, sticky=N+W)
self.idFrame = Frame(self.root)
self.ourIDLabel = Label(self.idFrame, text="ID: ")
self.ourIDLabel.grid(row=2, column=0, padx=1, pady=1, sticky=N+W)
self.ourID = Entry(self.idFrame)
self.ourID.insert(0, self.core._crypto.pubKey)
self.ourID.grid(row=2, column=1, padx=1, pady=1, sticky=N+W)
self.ourID.config(state='readonly')
self.idFrame.grid(row=1, column=0, padx=2, pady=2, sticky=N+W)
self.syncStatus = Label(self.root, text="Sync Status: 15/100")
self.syncStatus.place(relx=1.0, rely=1.0, anchor=S+E)
self.peerCount = Label(self.root, text="Connected Peers: ")
self.peerCount.place(relx=0.0, rely=1.0, anchor='sw')
self.root.wm_title("Onionr")
threading.Thread(target=self.updateStats)
self.root.mainloop()
return
def updateStats(self):
#self.core._utils.localCommand()
self.peerCount.config(text='Connected Peers: %s' % ())
time.sleep(1)
return
def openMail(self):
MailWindow(self)
class MailWindow:
def __init__(self, mainGUI):
assert isinstance(mainGUI, OnionrGUI)
self.core = mainGUI.core
self.mailRoot = Toplevel()
self.inboxFrame = Frame(self.mailRoot)
self.sentboxFrame = Frame(self.mailRoot)
self.composeFrame = Frame(self.mailRoot)
self.mailRoot.mainloop()
OnionrGUI()