From: Jon Date: Fri, 19 Mar 2010 23:44:44 +0000 (+0000) Subject: Initial gui work X-Git-Url: https://vcs.maemo.org/git/?p=gigfinder;a=commitdiff_plain;h=aee4ba507833815538bbb74e833bd75d3c1b02f1 Initial gui work --- diff --git a/gig_finder.py b/gig_finder.py index dbd7251..6f4db3c 100644 --- a/gig_finder.py +++ b/gig_finder.py @@ -1,6 +1,8 @@ from xml.dom.minidom import parseString from datetime import datetime, date import time +import gtk +import hildon def parse_xml(xml): """ Parse xml into a dict """ @@ -37,12 +39,67 @@ def parse_date(date_string): result.tm_sec) def get_xml(): + # TODO: Add code to retrieve location and data from lastfm return open('response.xml', 'r').read() +def create_table(events): + table = gtk.Table(columns=1) + table.set_row_spacings(10) + table.set_col_spacings(10) + + table.show() + pos = 0 + for event in events: + button = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH | gtk.HILDON_SIZE_FINGER_HEIGHT, + hildon.BUTTON_ARRANGEMENT_VERTICAL) + button.set_text(event['title'], "") + button.connect("clicked", show_details, event) + table.attach(button, 0, 1, pos, pos+1) + pos += 1 + return table + +def show_details(widget, data): + win = hildon.StackableWindow() + win.set_title(data['title']) + + win.vbox = gtk.VBox() + win.add(win.vbox) + + scroll = hildon.PannableArea() + win.vbox.pack_start(scroll, True, True, 0) + + view = hildon.TextView() + view.set_editable(False) + view.unset_flags(gtk.CAN_FOCUS) + view.set_wrap_mode(gtk.WRAP_WORD) + buffer = view.get_buffer() + end = buffer.get_end_iter() + buffer.insert(end, '%s\n' % data['title']) + buffer.insert(end, 'Artists: %s\n' % data['artists']) + buffer.insert(end, 'Venue: %s\n' % data['venue']) + buffer.insert(end, 'When: %s\n' % data['date'].strftime('%H:%M')) + buffer.insert(end, '\n') + scroll.add_with_viewport(view) + + win.show_all() + def main(): + program = hildon.Program.get_instance() + win = hildon.StackableWindow() + win.set_title('Gig Finder') + win.connect("destroy", gtk.main_quit, None) + + pannable_area = hildon.PannableArea() + xml = get_xml() events = parse_xml(xml) - print events + + table = create_table(events) + pannable_area.add_with_viewport(table) + + win.add(pannable_area) + win.show_all() + gtk.main() if __name__ == "__main__": main()