Mercurial > libervia-backend
changeset 85:fc7583282d40
Tarot Game plugin: first draft
- SàT: beginning of the plugin
- Tarot Plugin: 1 method createTarotGame et 1 signal tarotGameStarted
- wix: added "Game" menu in group chat to start Tarot game
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 07 May 2010 17:09:30 +0930 |
parents | 7471ffcda33b |
children | 4b5f2d55b6ac |
files | frontends/quick_frontend/quick_app.py frontends/quick_frontend/quick_chat.py frontends/sat_bridge_frontend/DBus.py frontends/wix/chat.py frontends/wix/main_window.py |
diffstat | 5 files changed, 42 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/frontends/quick_frontend/quick_app.py Thu May 06 20:47:48 2010 +0930 +++ b/frontends/quick_frontend/quick_app.py Fri May 07 17:09:30 2010 +0930 @@ -46,6 +46,7 @@ self.bridge.register("roomUserJoined", self.roomUserJoined) self.bridge.register("roomUserLeft", self.roomUserLeft) self.bridge.register("roomNewSubject", self.roomNewSubject) + self.bridge.register("tarotGameStarted", self.tarotGameStarted) self.bridge.register("subscribe", self.subscribe) self.bridge.register("paramUpdate", self.paramUpdate) self.bridge.register("contactDeleted", self.contactDeleted) @@ -215,6 +216,7 @@ room_jid=room_id+'@'+room_service self.chat_wins[room_jid].setUserNick(user_nick) self.chat_wins[room_jid].setType("group") + self.chat_wins[room_jid].id = room_jid self.chat_wins[room_jid].setPresents([user_nick]+room_nicks) @@ -244,6 +246,11 @@ if self.chat_wins.has_key(room_jid): self.chat_wins[room_jid].setSubject(subject) debug (_("new subject for room [%(room_jid)s]: %(subject)s") % {'room_jid':room_jid, "subject":subject}) + + def tarotGameStarted(self, room_jid, players, profile): + if not self.__check_profile(profile): + return + print "Tarot Game Started \o/" def subscribe(self, type, raw_jid, profile):
--- a/frontends/quick_frontend/quick_chat.py Thu May 06 20:47:48 2010 +0930 +++ b/frontends/quick_frontend/quick_chat.py Fri May 07 17:09:30 2010 +0930 @@ -30,7 +30,9 @@ self.target = target self.host = host self.type = type + self.id = "" self.nick = None + self.occupants = set() def setType(self, type): """Set the type of the chat
--- a/frontends/sat_bridge_frontend/DBus.py Thu May 06 20:47:48 2010 +0930 +++ b/frontends/sat_bridge_frontend/DBus.py Fri May 07 17:09:30 2010 +0930 @@ -119,6 +119,9 @@ def joinMUC(self, service, roomId, nick, profile_key='@DEFAULT@'): return self.db_comm_iface.joinMUC(service, roomId, nick, profile_key) + def createTarotGame(self, room_jid, players, profile_key='@DEFAULT@'): + return self.db_comm_iface.createTarotGame(room_jid, players, profile_key) + def sendFile(self, to, path, profile_key='@DEFAULT@'): return self.db_comm_iface.sendFile(to, path, profile_key)
--- a/frontends/wix/chat.py Thu May 06 20:47:48 2010 +0930 +++ b/frontends/wix/chat.py Fri May 07 17:09:30 2010 +0930 @@ -24,13 +24,14 @@ import wx import os.path import pdb -from logging import debug, info, error +from logging import debug, info, error, warning from tools.jid import JID from quick_frontend.quick_chat import QuickChat from contact_list import ContactList idSEND = 1 +idTAROT = 2 class Chat(wx.Frame, QuickChat): """The chat Window for one to one conversations""" @@ -85,19 +86,22 @@ self.__createPresents() self.subjectBox.Show() self.__eraseMenus() + self.__createMenus_group() self.historyPrint(profile=self.host.profile) elif type is 'one2one' and self.splitter.IsSplit(): self.splitter.Unsplit(self.present_panel) del self.present_panel self.GetMenuBar().Show() self.subjectBox.Hide() + self.__eraseMenus() self.__createMenus_O2O() self.nick = None else: self.subjectBox.Hide() + self.__eraseMenus() self.__createMenus_O2O() self.historyPrint(profile=self.host.profile) - + def setPresents(self, nicks): """Set the users presents in the contact list for a group chat @param nicks: list of nicknames @@ -107,7 +111,9 @@ error (_("[INTERNAL] trying to set presents nicks for a non group chat window")) return for nick in nicks: - self.present_panel.presents.replace(nick) + self.present_panel.presents.replace(nick) + if nick != self.nick: + self.occupants.add(nick) def replaceUser(self, nick): @@ -117,6 +123,8 @@ error (_("[INTERNAL] trying to replace user for a non group chat window")) return self.present_panel.presents.replace(nick) + if nick != self.nick: + self.occupants.add(nick) def removeUser(self, nick): """Remove a user from the group list""" @@ -125,6 +133,7 @@ error (_("[INTERNAL] trying to remove user for a non group chat window")) return self.present_panel.presents.remove(nick) + self.occupants.remove(nick) def setSubject(self, subject): """Set title for a group chat""" @@ -153,6 +162,18 @@ #events wx.EVT_MENU(self, idSEND, self.onSendFile) + def __createMenus_group(self): + """create menu bar for group chat""" + info("Creating menus") + self.__eraseMenus() + menuBar = self.GetMenuBar() + actionMenu = wx.Menu() + actionMenu.Append(idTAROT, _("Start &Tarot game CTRL-t"),_(" Start a Tarot card game")) #tmp + menuBar.Append(actionMenu,_("&Games")) + + #events + wx.EVT_MENU(self, idTAROT, self.onStartTarot) + def __del__(self): wx.Frame.__del__(self) @@ -200,3 +221,7 @@ id = self.host.bridge.sendFile(full_jid, filename) self.host.waitProgress(id, _("File Transfer"), _("Copying %s") % os.path.basename(filename)) + def onStartTarot(self, e): + debug (_("Starting Tarot game")) + warning (_("FIXME: temporary menu, must be changed")) + self.host.bridge.createTarotGame(self.id, list(self.occupants), self.host.profile)
--- a/frontends/wix/main_window.py Thu May 06 20:47:48 2010 +0930 +++ b/frontends/wix/main_window.py Fri May 07 17:09:30 2010 +0930 @@ -111,8 +111,8 @@ #self.profile_pan.Hide() #gof: self.sizer.Add(self.profile_pan, 1, flag=wx.EXPAND) - Tarot = CardGame(self) - Tarot.Show()#gof: temp for test + #Tarot = CardGame(self) + #Tarot.Show()#gof: temp for test self.Show()