#!/usr/bin/python

import gtk
import gtk.glade
import os

class WillowGui:
    def __init__(self):
        self.wTree=gtk.glade.XML ("./willowgui.glade")
        self.win = self.wTree.get_widget("window")
        self.win.connect("destroy", lambda w: gtk.main_quit())
	
        self.wTree.get_widget("close_button").connect("clicked", lambda w: self.save_and_exit())
        self.wTree.get_widget("help_button").connect("clicked", lambda w: os.system('firefox http://www.digitallumber.net/software/willow/'))
	
	add_objects = ['good_url_add_button', 'bad_url_add_button', 'good_domain_add_button', 'bad_domain_add_button' ]
	rm_objects  = ['good_url_rm_button', 'bad_url_rm_button', 'good_domain_rm_button', 'bad_domain_rm_button'  ]

	for button in add_objects:
		self.button = self.wTree.get_widget(button)
		self.button.connect("clicked", self.pop_up)
	for button in rm_objects:
        	self.button = self.wTree.get_widget(button)
		self.button.connect("clicked", self.pop_up)

        self.win.show_all()

    def pop_up(self, widget):
	dialog_name = gtk.glade.get_widget_name(widget).split('_')
	dialog = self.wTree.get_widget(dialog_name[2]+'_dialog')
	self.win.set_sensitive(False)
        add_entry = self.wTree.get_widget('add_entry')
	dialog.connect("hide", lambda w: self.win.set_sensitive(True))
	resp = dialog.run()
	if resp:
		self.entry_text = add_entry.get_text()
		add_entry.set_text('')
		self.proceed_list(dialog_name[0]+'_'+dialog_name[1]+'_list')
                dialog.hide()
	return True
    
    def proceed_list(self, listname):
	print listname
	
    def save_and_exit(self):
	gtk.main_quit()

    def main(self):
	gtk.main()

if __name__ == "__main__":
	base = WillowGui()
	base.main()
