#!/usr/bin/python
# a simple, essentially useless program that uses pyGTK and ZODB; I
# currently run it with pyGTK 0.6.9-3 and ZODB 3.1.1 on Python 2.1.1.
# I'd hoped to build something a little closer to usability tonight,
# but 2 hours was only enough time to write essentially 'hello world'
# in GTK and ZODB.  Maybe I'll have more luck next time.
import gtk
from ZODB import FileStorage, DB
from Persistence import Persistent

storage = FileStorage.FileStorage('hellodb.fs')
db = DB(storage)
conn = db.open()

class hello(Persistent):
    def __init__(self):
        self.count = 0
    def hellocount(self):
        self.count += 1
        return 'Has been called %d times' % self.count

dbroot = conn.root()
if not dbroot.has_key('hello'):
    dbroot['hello'] = hello()

window = gtk.GtkWindow(gtk.WINDOW_TOPLEVEL)
window.connect("destroy", gtk.mainquit)
window.set_border_width(10)
window.set_title("Mail index")

vbox = gtk.GtkVBox()
window.add(vbox)

button = gtk.GtkButton("Close")
button.connect("clicked", lambda win: window.destroy())
vbox.pack_start(button, expand=gtk.FALSE)

thelist = gtk.GtkCList(2, ["From", "Subject"])
thelist.append(['[EMAIL PROTECTED]', 'I have a book you might like'])
thelist.append(['[EMAIL PROTECTED]', 'How are you?'])
thelist.columns_autosize()
vbox.pack_start(thelist)

window.show_all()
thelist.append(['ZODB says', str(dbroot['hello'].hellocount())])
get_transaction().commit()
gtk.mainloop()

-- 
<[EMAIL PROTECTED]>       Kragen Sitaker     <http://www.pobox.com/~kragen/>
Edsger Wybe Dijkstra died in August of 2002.  The world has lost a great
man.  See http://advogato.org/person/raph/diary.html?start=252 and
http://www.kode-fu.com/geek/2002_08_04_archive.shtml for details.

Reply via email to