Mercurial > libervia-backend
diff frontends/primitivus/primitivus @ 131:6cad483a6d84
Primitivus: menu is now working
/!\ tooltips not managed yet, doesn't manage properly menu when it's displayed on several rows
/!\ still need to manage other menus (chat menu)
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 14 Jul 2010 19:36:40 +0800 |
parents | 542682d67282 |
children | 227394eb080c |
line wrap: on
line diff
--- a/frontends/primitivus/primitivus Wed Jul 14 16:14:48 2010 +0800 +++ b/frontends/primitivus/primitivus Wed Jul 14 19:36:40 2010 +0800 @@ -66,6 +66,9 @@ ('my_nick', 'dark red,bold', 'default'), ('other_nick', 'dark cyan,bold', 'default'), ('menubar', 'light gray,bold', 'dark red'), + ('selected_menu', 'light gray,bold', 'dark green'), + ('menuitem', 'light gray,bold', 'dark red'), + ('menuitem_focus', 'light gray,bold', 'dark green'), ] class ChatList(QuickChatList): @@ -91,14 +94,14 @@ self.chat_wins=ChatList(self) def debug(self): - """convenience method to reset screen and launch pdb""" + """convenient method to reset screen and launch pdb""" import os os.system('reset') print 'Entered debug mode' pdb.set_trace() def write_log(self, log, file_name='/tmp/primitivus_log'): - #method to write log in a temporary file, useful for debugging + """method to write log in a temporary file, useful for debugging""" f=open(file_name, 'a') f.write(log+"\n") f.close() @@ -123,9 +126,7 @@ return input def keyHandler(self, input): - if input in ('q', 'Q') or input == 'ctrl x': - raise urwid.ExitMainLoop() - elif input == 'meta m': + if input == 'meta m': try: if self.main_widget.header == None: self.main_widget.header = self.menu @@ -135,9 +136,6 @@ pass elif input == 'ctrl d' and 'D' in self.bridge.getVersion(): #Debug only for dev versions self.debug() - elif input == 'meta j': #user wants to join a room - pop_up_widget = custom_widgets.InputDialog(_("Entering a MUC room"), _("Please enter MUC's JID"), default_txt = 'test@conference.necton2.int', cancel_cb=self.removePopUp, ok_cb=self.onJoinRoom) - self.showPopUp(pop_up_widget) elif input == 'f2': #user wants to (un)hide the contact_list try: center_widgets = self.center_part.widget_list @@ -166,13 +164,23 @@ except AttributeError: return input + def __buildMainMenu(self): + menu = custom_widgets.Menu(self.loop) + connect = _("Connect") + menu.addMenu(connect, connect, self.onConnectRequest) + menu.addMenu(connect, _("Disconnect"), self.onDisconnectRequest) + menu.addMenu(connect, _("Exit"), self.onExitRequest, 'ctrl x') + communication = _("Communication") + menu.addMenu(communication, _("Join room"), self.onJoinRoomRequest, 'meta j') + return menu + def __buildMainWidget(self): self.contactList = ContactList(self, self.CM, on_click = self.contactSelected, on_change=lambda w: self.redraw()) #self.center_part = urwid.Columns([('weight',2,self.contactList),('weight',8,Chat('',self))]) self.center_part = urwid.Columns([('weight',2,self.contactList), ('weight',8,urwid.Filler(urwid.Text('')))]) editBar = custom_widgets.AdvancedEdit('> ') urwid.connect_signal(editBar,'click',self.onTextEntered) - self.menu = custom_widgets.Menu() + self.menu = self.__buildMainMenu() self.main_widget = custom_widgets.FocusFrame(self.center_part, header=self.menu, footer=editBar, focus_part='footer') return self.main_widget @@ -224,6 +232,21 @@ error (message) custom_widgets.Alert(_("Error"), message, ok_cb=self.removePopUp) + #Menu events# + def onConnectRequest(self, menu): + self.bridge.connect(self.profile) + + def onDisconnectRequest(self, menu): + self.bridge.disconnect(self.profile) + + def onExitRequest(self, menu): + raise urwid.ExitMainLoop() + + def onJoinRoomRequest(self, menu): + """User wants to join a MUC room""" + pop_up_widget = custom_widgets.InputDialog(_("Entering a MUC room"), _("Please enter MUC's JID"), default_txt = 'test@conference.necton2.int', cancel_cb=self.removePopUp, ok_cb=self.onJoinRoom) + self.showPopUp(pop_up_widget) + sat = PrimitivusApp() sat.start()