7 class LoginWindow(object):
9 def __init__(self, widgetTree):
13 self._dialog = widgetTree.get_widget("loginDialog")
14 self._parentWindow = widgetTree.get_widget("mainWindow")
15 self._usernameEntry = widgetTree.get_widget("usernameentry")
16 self._passwordEntry = widgetTree.get_widget("passwordentry")
19 "on_loginbutton_clicked": self._on_loginbutton_clicked,
20 "on_loginclose_clicked": self._on_loginclose_clicked,
22 widgetTree.signal_autoconnect(callbackMapping)
24 def request_credentials(self, parentWindow = None):
28 if parentWindow is None:
29 parentWindow = self._parentWindow
30 self._dialog.set_transient_for(parentWindow)
31 self._dialog.set_default_response(gtk.RESPONSE_OK)
32 response = self._dialog.run()
33 if response != gtk.RESPONSE_OK:
34 raise StandardError("Login Cancelled")
36 username = self._usernameEntry.get_text()
37 password = self._passwordEntry.get_text()
38 self._usernameEntry.set_text("")
40 return username, password
42 def _on_loginbutton_clicked(self, *args):
43 self._dialog.response(gtk.RESPONSE_OK)
45 def _on_loginclose_clicked(self, *args):
46 self._dialog.response(gtk.RESPONSE_CANCEL)
49 class ErrorDisplay(object):
51 def __init__(self, widgetTree):
52 super(ErrorDisplay, self).__init__()
53 self.__errorBox = widgetTree.get_widget("errorEventBox")
54 self.__errorDescription = widgetTree.get_widget("errorDescription")
55 self.__errorClose = widgetTree.get_widget("errorClose")
56 self.__parentBox = self.__errorBox.get_parent()
58 self.__errorBox.connect("button_release_event", self._on_close)
61 self.__parentBox.remove(self.__errorBox)
63 def push_message(self, message):
64 if 0 < len(self.__messages):
65 self.__messages.append(message)
67 self.__show_message(message)
69 def pop_message(self):
70 if 0 < len(self.__messages):
71 self.__show_message(self.__messages[0])
72 del self.__messages[0]
76 def _on_close(self, *args):
79 def __show_message(self, message):
80 self.__errorDescription.set_text(message)
81 self.__parentBox.pack_start(self.__errorBox, False, False)
82 self.__parentBox.reorder_child(self.__errorBox, 1)
84 def __hide_message(self):
85 self.__errorDescription.set_text("")
86 self.__parentBox.remove(self.__errorBox)
89 class MessageBox(gtk.MessageDialog):
91 def __init__(self, message):
93 gtk.MessageDialog.__init__(
96 gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT,
101 self.set_default_response(gtk.RESPONSE_OK)
102 self.connect('response', self._handle_clicked)
104 def _handle_clicked(self, *args):
108 class MessageBox2(gtk.MessageDialog):
110 def __init__(self, message):
112 gtk.MessageDialog.__init__(
115 gtk.DIALOG_DESTROY_WITH_PARENT,
120 self.set_default_response(gtk.RESPONSE_OK)
121 self.connect('response', self._handle_clicked)
123 def _handle_clicked(self, *args):