From: <umg...@us...> - 2007-06-25 13:15:04
|
Revision: 454 http://svn.sourceforge.net/pybridge/?rev=454&view=rev Author: umgangee Date: 2007-06-25 06:14:59 -0700 (Mon, 25 Jun 2007) Log Message: ----------- Provide user with option of drawing suits as symbols. This is useful for GTK on win32, which does not appear to render suit symbols correctly. Modified Paths: -------------- trunk/pybridge/glade/pybridge.glade trunk/pybridge/pybridge/ui/config.py trunk/pybridge/pybridge/ui/dialog_preferences.py trunk/pybridge/pybridge/ui/vocabulary.py Modified: trunk/pybridge/glade/pybridge.glade =================================================================== --- trunk/pybridge/glade/pybridge.glade 2007-06-25 11:36:23 UTC (rev 453) +++ trunk/pybridge/glade/pybridge.glade 2007-06-25 13:14:59 UTC (rev 454) @@ -326,51 +326,51 @@ <property name="column_spacing">8</property> <property name="row_spacing">2</property> <child> - <widget class="GtkLabel" id="label_tabletype"> + <widget class="GtkLabel" id="label63"> <property name="visible">True</property> <property name="xalign">0</property> + <property name="label" translatable="yes">ID:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label65"> + <widget class="GtkLabel" id="label_tableid"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Type:</property> </widget> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label_tableid"> + <widget class="GtkLabel" id="label65"> <property name="visible">True</property> <property name="xalign">0</property> + <property name="label" translatable="yes">Type:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label63"> + <widget class="GtkLabel" id="label_tabletype"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">ID:</property> </widget> <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> @@ -464,24 +464,24 @@ <property name="column_spacing">8</property> <property name="row_spacing">2</property> <child> - <widget class="GtkLabel" id="label_personname"> + <widget class="GtkLabel" id="label67"> <property name="visible">True</property> <property name="xalign">0</property> + <property name="label" translatable="yes">Name:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label67"> + <widget class="GtkLabel" id="label_personname"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Name:</property> </widget> <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> @@ -568,23 +568,30 @@ <property name="column_spacing">8</property> <property name="row_spacing">4</property> <child> - <widget class="GtkEntry" id="entry_portnum"> - <property name="width_request">80</property> + <widget class="GtkLabel" id="label_portnum"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="max_length">5</property> - <property name="invisible_char">*</property> - <signal name="changed" handler="on_field_changed"/> + <property name="xalign">0</property> + <property name="label" translatable="yes">Port:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> + <widget class="GtkLabel" id="label_hostname"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Host Name:</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> <widget class="GtkEntry" id="entry_hostname"> <property name="width_request">140</property> <property name="visible">True</property> @@ -599,26 +606,19 @@ </packing> </child> <child> - <widget class="GtkLabel" id="label_hostname"> + <widget class="GtkEntry" id="entry_portnum"> + <property name="width_request">80</property> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Host Name:</property> + <property name="can_focus">True</property> + <property name="max_length">5</property> + <property name="invisible_char">*</property> + <signal name="changed" handler="on_field_changed"/> </widget> <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label_portnum"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Port:</property> - </widget> - <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> @@ -661,20 +661,26 @@ <property name="column_spacing">8</property> <property name="row_spacing">4</property> <child> - <widget class="GtkEntry" id="entry_password"> - <property name="width_request">120</property> + <widget class="GtkLabel" id="label_username"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="max_length">40</property> - <property name="visibility">False</property> - <property name="invisible_char">*</property> - <signal name="changed" handler="on_field_changed"/> + <property name="xalign">0</property> + <property name="label" translatable="yes">User Name:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_password"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Password:</property> + </widget> + <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> @@ -694,29 +700,23 @@ </packing> </child> <child> - <widget class="GtkLabel" id="label_password"> + <widget class="GtkEntry" id="entry_password"> + <property name="width_request">120</property> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Password:</property> + <property name="can_focus">True</property> + <property name="max_length">40</property> + <property name="visibility">False</property> + <property name="invisible_char">*</property> + <signal name="changed" handler="on_field_changed"/> </widget> <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> - <child> - <widget class="GtkLabel" id="label_username"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">User Name:</property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> </widget> </child> <child> @@ -839,16 +839,6 @@ <property name="column_spacing">4</property> <property name="row_spacing">2</property> <child> - <widget class="GtkLabel" id="label_tablename"> - <property name="visible">True</property> - <property name="label" translatable="yes">Table Name:</property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> <widget class="GtkEntry" id="entry_tablename"> <property name="width_request">140</property> <property name="visible">True</property> @@ -862,6 +852,16 @@ <property name="y_options"></property> </packing> </child> + <child> + <widget class="GtkLabel" id="label_tablename"> + <property name="visible">True</property> + <property name="label" translatable="yes">Table Name:</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> </widget> </child> </widget> @@ -1131,14 +1131,23 @@ <property name="column_spacing">8</property> <property name="row_spacing">2</property> <child> - <widget class="GtkLabel" id="label_vuln"> + <widget class="GtkLabel" id="label59"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="use_markup">True</property> + <property name="label" translatable="yes">Dealer:</property> </widget> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label60"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Vulnerability:</property> + </widget> + <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> @@ -1158,29 +1167,20 @@ </packing> </child> <child> - <widget class="GtkLabel" id="label60"> + <widget class="GtkLabel" id="label_vuln"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Vulnerability:</property> + <property name="use_markup">True</property> </widget> <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> - <child> - <widget class="GtkLabel" id="label59"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Dealer:</property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> </widget> <packing> <property name="expand">False</property> @@ -1454,6 +1454,72 @@ <property name="column_spacing">8</property> <property name="row_spacing">4</property> <child> + <widget class="GtkFileChooserButton" id="background"> + <property name="width_request">160</property> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <signal name="selection_changed" handler="on_background_changed"/> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <widget class="GtkComboBox" id="cardstyle"> + <property name="width_request">160</property> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <signal name="changed" handler="on_cardstyle_changed"/> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_background"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Background:</property> + </widget> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_cardstyle"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Card Style:</property> + </widget> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <widget class="GtkLabel" id="label_suitcolours"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Suit Colours:</property> + </widget> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + <child> <widget class="GtkHBox" id="hbox2"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -1470,7 +1536,7 @@ <widget class="GtkLabel" id="label_clubcolour"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">♣</property> + <property name="label" translatable="yes">C</property> <property name="use_markup">True</property> </widget> </child> @@ -1490,7 +1556,7 @@ <widget class="GtkLabel" id="label_diamondcolour"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">♦</property> + <property name="label" translatable="yes">D</property> <property name="use_markup">True</property> </widget> </child> @@ -1511,7 +1577,7 @@ <widget class="GtkLabel" id="label_heartcolour"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">♥</property> + <property name="label" translatable="yes">H</property> <property name="use_markup">True</property> </widget> </child> @@ -1532,7 +1598,7 @@ <widget class="GtkLabel" id="label_spadecolour"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="label" translatable="yes">♠</property> + <property name="label" translatable="yes">S</property> <property name="use_markup">True</property> </widget> </child> @@ -1550,78 +1616,24 @@ <property name="bottom_attach">3</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label_suitcolours"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Suit Colours:</property> - </widget> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label_cardstyle"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Card Style:</property> - </widget> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkLabel" id="label_background"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Background:</property> - </widget> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <widget class="GtkComboBox" id="cardstyle"> - <property name="width_request">160</property> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="changed" handler="on_cardstyle_changed"/> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - </packing> - </child> - <child> - <widget class="GtkFileChooserButton" id="background"> - <property name="width_request">160</property> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <signal name="selection_changed" handler="on_background_changed"/> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> </widget> <packing> <property name="expand">False</property> </packing> </child> <child> + <widget class="GtkCheckButton" id="check_suitsymbols"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">Display suits as symbols?</property> + <property name="draw_indicator">True</property> + </widget> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> <widget class="GtkLabel" id="label_changenote"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> @@ -1630,7 +1642,7 @@ <property name="wrap">True</property> </widget> <packing> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> </widget> Modified: trunk/pybridge/pybridge/ui/config.py =================================================================== --- trunk/pybridge/pybridge/ui/config.py 2007-06-25 11:36:23 UTC (rev 453) +++ trunk/pybridge/pybridge/ui/config.py 2007-06-25 13:14:59 UTC (rev 454) @@ -38,6 +38,7 @@ [Appearance] CardStyle = string BackgroundImage = string + SuitSymbols = boolean(default=True) [[Colours]] Club = int_list(3, 3) Modified: trunk/pybridge/pybridge/ui/dialog_preferences.py =================================================================== --- trunk/pybridge/pybridge/ui/dialog_preferences.py 2007-06-25 11:36:23 UTC (rev 453) +++ trunk/pybridge/pybridge/ui/dialog_preferences.py 2007-06-25 13:14:59 UTC (rev 454) @@ -27,7 +27,7 @@ from pybridge.bridge.symbols import Suit -SUIT_LABEL_TEMPLATE = "<span color=\'%s\' size=\'xx-large\'>%s</span>" +SUIT_LABEL_TEMPLATE = "<span color=\'%s\' size=\'x-large\'>%s</span>" class DialogPreferences(GladeWrapper): @@ -76,7 +76,10 @@ label = getattr(self, 'label_%scolour' % suit.key.lower()) label.set_markup(SUIT_LABEL_TEMPLATE % (hexrep, SUIT_SYMBOLS[suit])) + use_suitsymbols = config['Appearance'].get('SuitSymbols') + self.check_suitsymbols.set_active(use_suitsymbols) + # Signal handlers. @@ -128,5 +131,7 @@ iter = self.cardstyle.get_active_iter() config['Appearance']['CardStyle'] = model.get_value(iter, 0) + config['Appearance']['SuitSymbols'] = self.check_suitsymbols.get_active() + wm.close(self) Modified: trunk/pybridge/pybridge/ui/vocabulary.py =================================================================== --- trunk/pybridge/pybridge/ui/vocabulary.py 2007-06-25 11:36:23 UTC (rev 453) +++ trunk/pybridge/pybridge/ui/vocabulary.py 2007-06-25 13:14:59 UTC (rev 454) @@ -103,12 +103,20 @@ Suit.Spade: _('Spades'), } -SUIT_SYMBOLS = { - Suit.Club: u'\N{BLACK CLUB SUIT}', - Suit.Diamond: u'\N{BLACK DIAMOND SUIT}', - Suit.Heart: u'\N{BLACK HEART SUIT}', - Suit.Spade: u'\N{BLACK SPADE SUIT}', -} +if config['Appearance'].get('SuitSymbols'): + SUIT_SYMBOLS = { + Suit.Club: u'\N{BLACK CLUB SUIT}', + Suit.Diamond: u'\N{BLACK DIAMOND SUIT}', + Suit.Heart: u'\N{BLACK HEART SUIT}', + Suit.Spade: u'\N{BLACK SPADE SUIT}', + } +else: + SUIT_SYMBOLS = { + Suit.Club: 'C', + Suit.Diamond: 'D', + Suit.Heart: 'H', + Suit.Spade: 'S', + } STRAIN_NAMES = { Strain.Club: _('Club'), @@ -118,19 +126,28 @@ Strain.NoTrump: _('No Trump'), } -STRAIN_SYMBOLS = { - Strain.Club: u'\N{BLACK CLUB SUIT}', - Strain.Diamond: u'\N{BLACK DIAMOND SUIT}', - Strain.Heart: u'\N{BLACK HEART SUIT}', - Strain.Spade: u'\N{BLACK SPADE SUIT}', - Strain.NoTrump: u'NT', -} +if config['Appearance'].get('SuitSymbols'): + STRAIN_SYMBOLS = { + Strain.Club: u'\N{BLACK CLUB SUIT}', + Strain.Diamond: u'\N{BLACK DIAMOND SUIT}', + Strain.Heart: u'\N{BLACK HEART SUIT}', + Strain.Spade: u'\N{BLACK SPADE SUIT}', + Strain.NoTrump: 'NT', + } +else: + STRAIN_SYMBOLS = { + Strain.Club: 'C', + Strain.Diamond: 'D', + Strain.Heart: 'H', + Strain.Spade: 'S', + Strain.NoTrump: 'NT', + } VULN_SYMBOLS = { Vulnerable.All: _('All'), - Vulnerable.NorthSouth : _('N/S'), - Vulnerable.EastWest : _('E/W'), - Vulnerable.None : _('None'), + Vulnerable.NorthSouth: _('N/S'), + Vulnerable.EastWest: _('E/W'), + Vulnerable.None: _('None'), } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |