add Hud::update_table_position(), tracks table.x and table.y, repositions all stat_windows within. triggered each update(), and when the Reposition Stats menu option is selected.

fix windows code to use same gdkhandle variables as unix code
This commit is contained in:
eblade 2008-12-09 07:51:41 -05:00
parent 7d4bded3d5
commit 9dd6f36df6

View File

@ -121,6 +121,19 @@ class Hud:
self.main_window.set_destroy_with_parent(True) self.main_window.set_destroy_with_parent(True)
def update_table_position(self):
(x, y) = self.main_window.parentgdkhandle.get_origin()
if self.table.x != x or self.table.y != y:
self.table.x = x
self.table.y = y
self.main_window.move(x, y)
adj = self.adj_seats(self.hand, self.config)
loc = self.config.get_locations(self.table.site, self.max)
for i in range(1, self.max + 1):
(x, y) = loc[adj[i]]
if self.stat_windows.has_key(i):
self.stat_windows[i].relocate(x, y)
def on_button_press(self, widget, event): def on_button_press(self, widget, event):
if event.button == 1: if event.button == 1:
self.main_window.begin_move_drag(event.button, int(event.x_root), int(event.y_root), event.time) self.main_window.begin_move_drag(event.button, int(event.x_root), int(event.y_root), event.time)
@ -137,9 +150,7 @@ class Hud:
self.deleted = True self.deleted = True
def reposition_windows(self, *args): def reposition_windows(self, *args):
for w in self.stat_windows: self.update_table_position()
self.stat_windows[w].window.move(self.stat_windows[w].x,
self.stat_windows[w].y)
def debug_stat_windows(self, *args): def debug_stat_windows(self, *args):
print self.table, "\n", self.main_window.window.get_transient_for() print self.table, "\n", self.main_window.window.get_transient_for()
@ -216,6 +227,7 @@ class Hud:
def update(self, hand, config, stat_dict): def update(self, hand, config, stat_dict):
self.hand = hand # this is the last hand, so it is available later self.hand = hand # this is the last hand, so it is available later
self.update_table_position()
for s in stat_dict.keys(): for s in stat_dict.keys():
try: try:
self.stat_windows[stat_dict[s]['seat']].player_id = stat_dict[s]['player_id'] self.stat_windows[stat_dict[s]['seat']].player_id = stat_dict[s]['player_id']
@ -260,9 +272,9 @@ class Hud:
for w in tl_windows: for w in tl_windows:
if w[1] == unique_name: if w[1] == unique_name:
#win32gui.ShowWindow(w[0], win32con.SW_HIDE) #win32gui.ShowWindow(w[0], win32con.SW_HIDE)
window.parentgdkhandle = gtk.gdk.window_foreign_new(long(self.table.number)) self.main_window.parentgdkhandle = gtk.gdk.window_foreign_new(long(self.table.number))
self.main_window.gdkhandle = gtk.gdk.window_foreign_new(w[0]) self.main_window.gdkhandle = gtk.gdk.window_foreign_new(w[0])
self.main_window.gdkhandle.set_transient_for(window.parentgdkhandle) self.main_window.gdkhandle.set_transient_for(self.main_window.parentgdkhandle)
#win32gui.ShowWindow(w[0], win32con.SW_SHOW) #win32gui.ShowWindow(w[0], win32con.SW_SHOW)
style = win32gui.GetWindowLong(self.table.number, win32con.GWL_EXSTYLE) style = win32gui.GetWindowLong(self.table.number, win32con.GWL_EXSTYLE)