47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
import tkinter as tk
|
|
import gemini
|
|
|
|
# See https://tildegit.org/solderpunk/gemini-demo-1/src/branch/master/gemini-demo.py
|
|
|
|
class Application():
|
|
def __init__(self):
|
|
self.root = tk.Tk()
|
|
self.nav_bar = NavBar(self)
|
|
self.content = Content(self)
|
|
self.root.mainloop()
|
|
self.current_URL = "about:home"
|
|
|
|
def updateContent(self):
|
|
self.current_URL = self.nav_bar.getURL()
|
|
r = gemini.Request(self.current_URL)
|
|
text = r.makeRequest()
|
|
self.content.setContent(text)
|
|
|
|
class NavBar():
|
|
def __init__(self, parent):
|
|
self.parent = parent
|
|
self.URL_var = tk.StringVar()
|
|
self.root = tk.Frame(self.parent.root)
|
|
self.root.grid(column=0, row=0)
|
|
self.URL_bar = tk.Entry(self.root, textvariable=self.URL_var)
|
|
self.URL_var.set("about:home")
|
|
self.URL_bar.grid(column=0, row=0)
|
|
self.go_button = tk.Button(self.root, text='Go !', command=self.parent.updateContent)
|
|
self.go_button.grid(column=1, row=0)
|
|
|
|
def getURL(self):
|
|
return self.URL_var.get()
|
|
|
|
class Content():
|
|
def __init__(self, parent):
|
|
self.parent = parent
|
|
self.root = tk.Frame(self.parent.root)
|
|
self.root.grid(column=0, row=1)
|
|
self.line = tk.Label(self.root, text="My home page")
|
|
self.line.grid(column=0, row=0)
|
|
|
|
def setContent(self, new_content):
|
|
self.line["text"] = new_content
|
|
|
|
app = Application()
|