2 |
from chatwidget import Chat |
from chatwidget import Chat |
3 |
from ScrolledText import * |
from ScrolledText import * |
4 |
import Pmw |
import Pmw |
5 |
|
from postgamewidget import * |
6 |
|
from string import join |
7 |
|
|
8 |
|
import gettext |
9 |
|
gettext.bindtextdomain("fgtk") |
10 |
|
gettext.textdomain("fgtk") |
11 |
|
_ = gettext.gettext |
12 |
|
|
13 |
class Room(Frame): |
class Room(Frame): |
14 |
|
|
19 |
self.number = number |
self.number = number |
20 |
|
|
21 |
frame = Frame(self) |
frame = Frame(self) |
22 |
frame.grid(row=0, sticky=NE+SW) |
frame.grid(row=1, sticky=NE+SW) |
23 |
|
|
24 |
self.gamelist = ScrolledText(frame, state=DISABLED) |
self.gamelist = Pmw.ScrolledListBox(frame, |
25 |
|
dblclickcommand=self.open_game) |
26 |
self.gamelist.grid(row=0, sticky=NE+SW) |
self.gamelist.grid(row=0, sticky=NE+SW) |
27 |
|
|
28 |
self.chat = Chat(frame, self.number, self.server.room_tell) |
self.chat = Chat(frame, self.number, self.server.room_tell) |
32 |
frame.columnconfigure(0,weight=1) |
frame.columnconfigure(0,weight=1) |
33 |
|
|
34 |
self.occupantlist = Pmw.ScrolledListBox(self) |
self.occupantlist = Pmw.ScrolledListBox(self) |
35 |
self.occupantlist.grid(row=0, column=1, sticky=NE+SW) |
self.occupantlist.grid(row=1, column=1, sticky=NE+SW) |
36 |
|
|
37 |
self.rowconfigure(0,weight=1) |
self.rowconfigure(0,weight=0) |
38 |
|
self.rowconfigure(1,weight=1) |
39 |
self.columnconfigure(0,weight=1) |
self.columnconfigure(0,weight=1) |
40 |
self.columnconfigure(1,weight=2) |
self.columnconfigure(1,weight=2) |
41 |
|
|
43 |
self.server.add_handler("202", self.receive_newocc, self.number) |
self.server.add_handler("202", self.receive_newocc, self.number) |
44 |
self.server.add_handler("203", self.receive_occleave, self.number) |
self.server.add_handler("203", self.receive_occleave, self.number) |
45 |
self.server.add_handler("208", self.receive_occlist, self.number) |
self.server.add_handler("208", self.receive_occlist, self.number) |
46 |
|
self.server.add_handler("211", self.receive_opengames, self.number) |
47 |
|
|
48 |
|
menubar = Pmw.MenuBar(self) |
49 |
|
menubar.grid(row=0, column=0, columnspan=2, sticky=E+W) |
50 |
|
self.menuBar = menubar |
51 |
|
|
52 |
|
menubar.addmenu(_("Game"), _("Game operations")) |
53 |
|
menubar.addmenuitem(_("Game"), "command", _("Post an open game"), |
54 |
|
command=self.post_dialog, |
55 |
|
label=_("New...")) |
56 |
|
menubar.addmenuitem(_("Game"), "command", _("Refresh game list"), |
57 |
|
command=self.refresh_gamelist, |
58 |
|
label=_("Refresh list")) |
59 |
|
|
60 |
self.server.room_visit(self.number) |
self.server.room_visit(self.number) |
61 |
self.server.room_listoccupants(self.number) |
self.server.room_listoccupants(self.number) |
62 |
|
self.refresh_gamelist() |
63 |
|
|
64 |
def __del__(self): |
def __del__(self): |
65 |
self.leave() |
self.leave() |
66 |
|
|
67 |
|
def post_dialog(self): |
68 |
|
NewGameWindow(self) |
69 |
|
|
70 |
|
def refresh_gamelist(self): |
71 |
|
self.gamelist.clear() |
72 |
|
self.server.room_listopengames(self.number) |
73 |
|
|
74 |
|
def receive_opengames(self, msg): |
75 |
|
for game in msg[2:]: |
76 |
|
print game |
77 |
|
self.gamelist.insert("end", join(game)) |
78 |
|
|
79 |
|
def open_game(self): |
80 |
|
nego = NewGameWindow(self) |
81 |
|
nego.negotiate(self.gamelist.getvalue()[0]) |
82 |
|
|
83 |
|
def post_game(self, gametype, timetype, lorank, hirank, desc): |
84 |
|
self.server.room_postgame(self.number, gametype, timetype, |
85 |
|
lorank, hirank, desc) |
86 |
|
|
87 |
def receive_chat(self, msg): |
def receive_chat(self, msg): |
88 |
self.chat.receive(msg[2], msg[3]) |
self.chat.receive(msg[2], msg[3]) |
89 |
|
|
109 |
self.server.remove_handler("202", self.receive_newocc, self.number) |
self.server.remove_handler("202", self.receive_newocc, self.number) |
110 |
self.server.remove_handler("203", self.receive_occleave, self.number) |
self.server.remove_handler("203", self.receive_occleave, self.number) |
111 |
self.server.remove_handler("208", self.receive_occlist, self.number) |
self.server.remove_handler("208", self.receive_occlist, self.number) |
112 |
|
self.server.remove_handler("211", self.receive_opengames, self.number) |
113 |
self.server.room_leave(self.number) |
self.server.room_leave(self.number) |
114 |
|
|
115 |
class RoomWindow: |
class RoomWindow: |