some code and comment cleanups and clarifications, mo betta fasta.
This commit is contained in:
parent
80b98da6fc
commit
2ab01fa9d9
|
@ -43,8 +43,8 @@ if os.name == 'nt':
|
||||||
import win32api
|
import win32api
|
||||||
|
|
||||||
import locale
|
import locale
|
||||||
lang=locale.getdefaultlocale()[0][0:2]
|
lang = locale.getdefaultlocale()[0][0:2]
|
||||||
if lang=="en":
|
if lang == "en":
|
||||||
def _(string): return string
|
def _(string): return string
|
||||||
else:
|
else:
|
||||||
import gettext
|
import gettext
|
||||||
|
@ -78,6 +78,7 @@ class Hud:
|
||||||
# cannot touch the gui
|
# cannot touch the gui
|
||||||
if parent is None: # running from cli ..
|
if parent is None: # running from cli ..
|
||||||
self.parent = self
|
self.parent = self
|
||||||
|
else:
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.table = table
|
self.table = table
|
||||||
self.config = config
|
self.config = config
|
||||||
|
@ -95,6 +96,7 @@ class Hud:
|
||||||
self.popup_windows = {}
|
self.popup_windows = {}
|
||||||
self.aux_windows = []
|
self.aux_windows = []
|
||||||
|
|
||||||
|
# configure default font and colors from the configuration
|
||||||
(font, font_size) = config.get_default_font(self.table.site)
|
(font, font_size) = config.get_default_font(self.table.site)
|
||||||
self.colors = config.get_default_colors(self.table.site)
|
self.colors = config.get_default_colors(self.table.site)
|
||||||
self.hud_ui = config.get_hud_ui_parameters()
|
self.hud_ui = config.get_hud_ui_parameters()
|
||||||
|
@ -107,6 +109,7 @@ class Hud:
|
||||||
# do we need to add some sort of condition here for dealing with a request for a font that doesn't exist?
|
# do we need to add some sort of condition here for dealing with a request for a font that doesn't exist?
|
||||||
|
|
||||||
game_params = config.get_game_parameters(self.poker_game)
|
game_params = config.get_game_parameters(self.poker_game)
|
||||||
|
# if there are AUX windows configured, set them up (Ray knows how this works, if anyone needs info)
|
||||||
if not game_params['aux'] == [""]:
|
if not game_params['aux'] == [""]:
|
||||||
for aux in game_params['aux']:
|
for aux in game_params['aux']:
|
||||||
aux_params = config.get_aux_parameters(aux)
|
aux_params = config.get_aux_parameters(aux)
|
||||||
|
@ -118,14 +121,16 @@ class Hud:
|
||||||
self.creation_attrs = None
|
self.creation_attrs = None
|
||||||
|
|
||||||
def create_mw(self):
|
def create_mw(self):
|
||||||
|
|
||||||
# Set up a main window for this this instance of the HUD
|
# Set up a main window for this this instance of the HUD
|
||||||
win = gtk.Window()
|
win = gtk.Window()
|
||||||
|
win.set_skip_taskbar_hint(True) # invisible to taskbar
|
||||||
win.set_gravity(gtk.gdk.GRAVITY_STATIC)
|
win.set_gravity(gtk.gdk.GRAVITY_STATIC)
|
||||||
win.set_title("%s FPDBHUD" % (self.table.name))
|
win.set_title("%s FPDBHUD" % (self.table.name)) # give it a title that we can easily filter out in the window list when Table search code is looking
|
||||||
win.set_skip_taskbar_hint(True)
|
win.set_decorated(False) # kill titlebars
|
||||||
win.set_decorated(False)
|
win.set_opacity(self.colors["hudopacity"]) # set it to configured hud opacity
|
||||||
win.set_opacity(self.colors["hudopacity"])
|
win.set_focus(None)
|
||||||
|
win.set_focus_on_map(False)
|
||||||
|
win.set_accept_focus(False)
|
||||||
|
|
||||||
eventbox = gtk.EventBox()
|
eventbox = gtk.EventBox()
|
||||||
label = gtk.Label(self.hud_ui['label'])
|
label = gtk.Label(self.hud_ui['label'])
|
||||||
|
@ -133,6 +138,7 @@ class Hud:
|
||||||
win.add(eventbox)
|
win.add(eventbox)
|
||||||
eventbox.add(label)
|
eventbox.add(label)
|
||||||
|
|
||||||
|
# set it to the desired color of the HUD for this site
|
||||||
label.modify_bg(gtk.STATE_NORMAL, self.backgroundcolor)
|
label.modify_bg(gtk.STATE_NORMAL, self.backgroundcolor)
|
||||||
label.modify_fg(gtk.STATE_NORMAL, self.foregroundcolor)
|
label.modify_fg(gtk.STATE_NORMAL, self.foregroundcolor)
|
||||||
|
|
||||||
|
@ -140,9 +146,11 @@ class Hud:
|
||||||
eventbox.modify_fg(gtk.STATE_NORMAL, self.foregroundcolor)
|
eventbox.modify_fg(gtk.STATE_NORMAL, self.foregroundcolor)
|
||||||
|
|
||||||
self.main_window = win
|
self.main_window = win
|
||||||
|
# move it to the table window's X/Y position (0,0 on the table window usually)
|
||||||
self.main_window.move(self.table.x, self.table.y)
|
self.main_window.move(self.table.x, self.table.y)
|
||||||
|
|
||||||
# A popup menu for the main window
|
# A popup menu for the main window
|
||||||
|
# This menu code has become extremely long - is there a better way to do this?
|
||||||
menu = gtk.Menu()
|
menu = gtk.Menu()
|
||||||
|
|
||||||
killitem = gtk.MenuItem(_('Kill This HUD'))
|
killitem = gtk.MenuItem(_('Kill This HUD'))
|
||||||
|
@ -457,6 +465,13 @@ class Hud:
|
||||||
log.debug("setting self.hud_params[%s] = %s" % (param, style))
|
log.debug("setting self.hud_params[%s] = %s" % (param, style))
|
||||||
|
|
||||||
def update_table_position(self):
|
def update_table_position(self):
|
||||||
|
# get table's X/Y position on the desktop, and relocate all of our child windows to accomodate
|
||||||
|
# In Windows, we can verify the existence of a Window, with win32gui.IsWindow(). In Linux, there doesn't seem to be a
|
||||||
|
# way to verify the existence of a Window, without trying to access it, which if it doesn't exist anymore, results in a
|
||||||
|
# big giant X trap and crash.
|
||||||
|
# People tell me this is a bad idea, because theoretically, IsWindow() could return true now, but not be true when we actually
|
||||||
|
# use it, but accessing a dead window doesn't result in a complete windowing system shutdown in Windows, whereas it does
|
||||||
|
# in X. - Eric
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
if not win32gui.IsWindow(self.table.number):
|
if not win32gui.IsWindow(self.table.number):
|
||||||
self.parent.kill_hud(self, self.table.name)
|
self.parent.kill_hud(self, self.table.name)
|
||||||
|
@ -465,8 +480,8 @@ class Hud:
|
||||||
return False
|
return False
|
||||||
# anyone know how to do this in unix, or better yet, trap the X11 error that is triggered when executing the get_origin() for a closed window?
|
# anyone know how to do this in unix, or better yet, trap the X11 error that is triggered when executing the get_origin() for a closed window?
|
||||||
if self.table.gdkhandle is not None:
|
if self.table.gdkhandle is not None:
|
||||||
(x, y) = self.table.gdkhandle.get_origin()
|
(x, y) = self.table.gdkhandle.get_origin() # In Windows, this call returns (0,0) if it's an invalid window. In X, the X server is immediately killed.
|
||||||
if self.table.x != x or self.table.y != y:
|
if self.table.x != x or self.table.y != y: # If the current position does not equal the stored position, save the new position, and then move all the sub windows.
|
||||||
self.table.x = x
|
self.table.x = x
|
||||||
self.table.y = y
|
self.table.y = y
|
||||||
self.main_window.move(x + self.site_params['xshift'], y + self.site_params['yshift'])
|
self.main_window.move(x + self.site_params['xshift'], y + self.site_params['yshift'])
|
||||||
|
@ -487,10 +502,10 @@ class Hud:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def on_button_press(self, widget, event):
|
def on_button_press(self, widget, event):
|
||||||
if event.button == 1:
|
if event.button == 1: # if primary button, start movement
|
||||||
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)
|
||||||
return True
|
return True
|
||||||
if event.button == 3:
|
if event.button == 3: # if secondary button, popup our main popup window
|
||||||
widget.popup(None, None, None, event.button, event.time)
|
widget.popup(None, None, None, event.button, event.time)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -543,7 +558,7 @@ class Hud:
|
||||||
self.config.save()
|
self.config.save()
|
||||||
|
|
||||||
def adj_seats(self, hand, config):
|
def adj_seats(self, hand, config):
|
||||||
|
# determine how to adjust seating arrangements, if a "preferred seat" is set in the hud layout configuration
|
||||||
# Need range here, not xrange -> need the actual list
|
# Need range here, not xrange -> need the actual list
|
||||||
adj = range(0, self.max + 1) # default seat adjustments = no adjustment
|
adj = range(0, self.max + 1) # default seat adjustments = no adjustment
|
||||||
# does the user have a fav_seat?
|
# does the user have a fav_seat?
|
||||||
|
@ -621,7 +636,7 @@ class Hud:
|
||||||
[config.supported_games[self.poker_game].stats[stat].col] = \
|
[config.supported_games[self.poker_game].stats[stat].col] = \
|
||||||
config.supported_games[self.poker_game].stats[stat].stat_name
|
config.supported_games[self.poker_game].stats[stat].stat_name
|
||||||
|
|
||||||
if os.name == "nt":
|
if os.name == "nt": # we call update_table_position() regularly in Windows to see if we're moving around. See comments on that function for why this isn't done in X.
|
||||||
gobject.timeout_add(500, self.update_table_position)
|
gobject.timeout_add(500, self.update_table_position)
|
||||||
|
|
||||||
def update(self, hand, config):
|
def update(self, hand, config):
|
||||||
|
@ -668,9 +683,12 @@ class Hud:
|
||||||
|
|
||||||
window.label[r][c].set_text(statstring)
|
window.label[r][c].set_text(statstring)
|
||||||
if statstring != "xxx": # is there a way to tell if this particular stat window is visible already, or no?
|
if statstring != "xxx": # is there a way to tell if this particular stat window is visible already, or no?
|
||||||
window.window.show_all()
|
unhidewindow = True
|
||||||
tip = "%s\n%s\n%s, %s" % (statd['screen_name'], number[5], number[3], number[4])
|
tip = "%s\n%s\n%s, %s" % (statd['screen_name'], number[5], number[3], number[4])
|
||||||
Stats.do_tip(window.e_box[r][c], tip)
|
Stats.do_tip(window.e_box[r][c], tip)
|
||||||
|
if unhidewindow: #and not window.window.visible: # there is no "visible" attribute in gtk.Window, although the docs seem to indicate there should be
|
||||||
|
window.window.show_all()
|
||||||
|
unhidewindow = False
|
||||||
|
|
||||||
def topify_window(self, window):
|
def topify_window(self, window):
|
||||||
window.set_focus_on_map(False)
|
window.set_focus_on_map(False)
|
||||||
|
@ -686,7 +704,7 @@ class Stat_Window:
|
||||||
# This handles all callbacks from button presses on the event boxes in
|
# This handles all callbacks from button presses on the event boxes in
|
||||||
# the stat windows. There is a bit of an ugly kludge to separate single-
|
# the stat windows. There is a bit of an ugly kludge to separate single-
|
||||||
# and double-clicks.
|
# and double-clicks.
|
||||||
self.window.show_all()
|
self.window.show() #_all()
|
||||||
|
|
||||||
if event.button == 3: # right button event
|
if event.button == 3: # right button event
|
||||||
newpopup = Popup_window(self.window, self)
|
newpopup = Popup_window(self.window, self)
|
||||||
|
@ -745,11 +763,13 @@ class Stat_Window:
|
||||||
|
|
||||||
self.window = gtk.Window()
|
self.window = gtk.Window()
|
||||||
self.window.set_decorated(0)
|
self.window.set_decorated(0)
|
||||||
|
self.window.set_property("skip-taskbar-hint", True)
|
||||||
self.window.set_gravity(gtk.gdk.GRAVITY_STATIC)
|
self.window.set_gravity(gtk.gdk.GRAVITY_STATIC)
|
||||||
|
|
||||||
self.window.set_title("%s" % seat)
|
self.window.set_title("%s" % seat)
|
||||||
self.window.set_property("skip-taskbar-hint", True)
|
self.window.set_focus(None) # set gtk default focus widget for this window to None
|
||||||
self.window.set_focus_on_map(False)
|
self.window.set_focus_on_map(False)
|
||||||
|
self.window.set_accept_focus(False)
|
||||||
|
|
||||||
grid = gtk.Table(rows = game.rows, columns = game.cols, homogeneous = False)
|
grid = gtk.Table(rows = game.rows, columns = game.cols, homogeneous = False)
|
||||||
self.grid = grid
|
self.grid = grid
|
||||||
|
|
Loading…
Reference in New Issue
Block a user