Mercurial > racoon
diff window.py @ 0:661e6ef8f8e4 draft default tip
Initial commit
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 14 Jan 2017 13:22:10 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/window.py Sat Jan 14 13:22:10 2017 +0100 @@ -0,0 +1,68 @@ +import pygtk +pygtk.require("2.0") +import gtk +import gtk.glade + +import browser + +class MainWindow: + def __init__(self): + self.xml = gtk.glade.XML('racoon.glade') + self.xml.signal_autoconnect(self) + self.location_entry = self.xml.get_widget('location_entry') + self.location_entry.connect('activate', self.on_location_entry_activate) + self.status_bar = self.xml.get_widget('status_bar') + self.load_progress = self.xml.get_widget('load_progress') + self.stop_button = self.xml.get_widget('stop_button') + self.refresh_button = self.xml.get_widget('refresh_button') + self.main_window = self.xml.get_widget('main_window') + self.link_menu = self.xml.get_widget('link_menu') + self.page_menu = self.xml.get_widget('page_menu') + self.browser = browser.Browser(self) + + def status_push(self, context, text): + context_id = self.status_bar.get_context_id(context) + self.status_bar.push(context_id, text) + + def status_pop(self, context): + context_id = self.status_bar.get_context_id(context) + self.status_bar.pop(context_id) + + def set_title(self, text): + self.main_window.set_title(text) + + def set_location(self, url): + self.location_entry.set_text(url) + + + def start_loading(self, url): + self.load_progress.set_text(url) + self.load_progress.set_property('visible', True) + self.location_entry.set_property('visible', False) + self.stop_button.set_property('visible', True) + self.refresh_button.set_property('visible', False) + + def finish_loading(self): + self.load_progress.set_property('visible', False) + self.location_entry.set_property('visible', True) + self.stop_button.set_property('visible', False) + self.refresh_button.set_property('visible', True) + + +# ----- The event handlers ----------- + + def on_location_entry_activate(self, entry): + self.browser.open_url(self.location_entry.get_text()) + + def on_back_button_clicked(self, button): + self.browser.history_back() + + def on_refresh_button_clicked(self, button): + self.browser.open_url(self.browser.current_url) + + def on_main_window_destroy(self, window): + gtk.main_quit() + + def on_location_dropdown_change(self, dropdown): + if self.location_entry.get_text()=='clear': + self.location_entry.set_text('')
