diff --git a/pyfpdb/HUD_main.py b/pyfpdb/HUD_main.py index 30a72096..81e8700a 100755 --- a/pyfpdb/HUD_main.py +++ b/pyfpdb/HUD_main.py @@ -151,7 +151,9 @@ class HUD_main(object): try: (table_name, max, poker_game) = self.db_connection.get_table_name(new_hand_id) stat_dict = self.db_connection.get_stats_from_hand(new_hand_id) - cards = self.db_connection.get_cards(new_hand_id) + cards = self.db_connection.get_cards(new_hand_id) + comm_cards = self.db_connection.get_common_cards(new_hand_id) + cards['common'] = comm_cards['common'] except Exception, err: print "db error: skipping ", new_hand_id, err sys.stderr.write("Database error %s in hand %d. Skipping.\n" % (err, int(new_hand_id))) diff --git a/pyfpdb/Hello.py b/pyfpdb/Hello.py index b5d1d366..41262d6c 100644 --- a/pyfpdb/Hello.py +++ b/pyfpdb/Hello.py @@ -99,3 +99,15 @@ class Hello_plus(Aux_Window): # hands played that was updated in the "update_data()" function. self.label.set_text("Hello %s\nYou have played %d hands\n on %s." % (self.hero, self.hands_played, self.site)) +class Hello_Menu(Aux_Window): + """A 'Hello World' Aux_Window demo.""" + def create(self): +# This demo puts a menu item on the HUD mainwindow. + self.item = gtk.MenuItem('Print cards') + self.hud.menu.append(self.item) + self.item.connect("activate", self.print_cards) + self.item.show() + + def print_cards(self, *args): +# callback for the menu item + print "cards =", self.hud.cards diff --git a/pyfpdb/Mucked.py b/pyfpdb/Mucked.py index 1d7e9597..fe2baa71 100755 --- a/pyfpdb/Mucked.py +++ b/pyfpdb/Mucked.py @@ -25,6 +25,7 @@ Mucked cards display for FreePokerTools HUD. # Standard Library modules import sys +import pprint # pyGTK modules import pygtk @@ -37,7 +38,7 @@ import Database class Aux_Window: def __init__(self, hud, params, config): - self.config = hud + self.hud = hud self.config = config def update_data(self, *parms): @@ -318,6 +319,7 @@ class Flop_Mucked(Aux_Window): self.params = params # dict aux params from config self.positions = {} # dict of window positions self.displayed_cards = False + self.timer_on = False # bool = Ture if the timeout for removing the cards is on self.card_images = self.get_card_images() def create(self): @@ -349,10 +351,6 @@ class Flop_Mucked(Aux_Window): self.m_windows[i].show_all() self.m_windows[i].hide() - def update_data(self, new_hand_id, db_connection): - cards = db_connection.get_common_cards(new_hand_id) - self.hud.cards['common'] = cards['common'] - def update_gui(self, new_hand_id): """Prepare and show the mucked cards.""" if self.displayed_cards: @@ -378,35 +376,64 @@ class Flop_Mucked(Aux_Window): self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back self.displayed_cards = True + for stats in self.hud.stat_dict.itervalues(): + self.eb[stats['seat']].set_tooltip_text(stats['screen_name']) + if self.displayed_cards and float(self.params['timeout']) > 0: - gobject.timeout_add(int(1000*float(self.params['timeout'])), self.hide_mucked_cards) + self.timer_on = True + gobject.timeout_add(int(1000*float(self.params['timeout'])), self.timed_out) def destroy(self): """Destroy all of the mucked windows.""" for w in self.m_windows.values(): w.destroy() + def timed_out(self): +# this is the callback from the timeout + +# if timer_on is False the user has cancelled the timer with a click +# so just return False to cancel the timer + if not self.timer_on: + return False + else: + self.hide_mucked_cards() + return False + def hide_mucked_cards(self): """Hide the mucked card windows.""" -# this is the callback from the timeout for (i, w) in self.m_windows.iteritems(): self.positions[i] = w.get_position() w.hide() self.displayed_cards = False - return False # this tells the system to NOT run this timeout again def button_press_cb(self, widget, event, *args): """Handle button clicks in the event boxes.""" + +# shift-any button exposes all the windows and turns off the timer + if event.state & gtk.gdk.SHIFT_MASK: + self.timer_on = False + self.expose_all() + if event.button == 3: # right button event pass elif event.button == 2: # middle button event - self.hide_mucked_cards() + if self.timer_on == True: + self.timer_on = False + else: + self.timer_on = False + self.hide_mucked_cards() elif event.button == 1: # left button event window = widget.get_parent() window.begin_move_drag(event.button, int(event.x_root), int(event.y_root), event.time) + def expose_all(self): + for (i, cards) in self.hud.cards.iteritems(): + self.m_windows[i].present() + self.m_windows[i].move(self.positions[i][0], self.positions[i][1]) # here is where I move back + self.displayed_cards = True + def save_layout(self, *args): """Save new layout back to the aux element in the config file.""" new_locs = {}