aboutsummaryrefslogtreecommitdiff
path: root/games/freedoko
diff options
context:
space:
mode:
authorKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
committerKoop Mast <kwm@FreeBSD.org>2014-11-19 11:49:04 +0000
commitaf3811313c14afb06fe2d1f6158e3e431bbfc2b6 (patch)
tree1ad98a4e8faecd0e2fa9ac2c18e65da4cf89c236 /games/freedoko
parentc7d4d6bd7ef6ff4955eab2863a5c6e2feb14b839 (diff)
downloadports-af3811313c14afb06fe2d1f6158e3e431bbfc2b6.tar.gz
ports-af3811313c14afb06fe2d1f6158e3e431bbfc2b6.zip
Notes
Diffstat (limited to 'games/freedoko')
-rw-r--r--games/freedoko/Makefile2
-rw-r--r--games/freedoko/files/patch-16481572
2 files changed, 1573 insertions, 1 deletions
diff --git a/games/freedoko/Makefile b/games/freedoko/Makefile
index fa218c7fbfc3..bdf8aa93b83c 100644
--- a/games/freedoko/Makefile
+++ b/games/freedoko/Makefile
@@ -3,7 +3,7 @@
PORTNAME= freedoko
PORTVERSION= 0.7.12
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= games
MASTER_SITES= SF/free-doko/FreeDoko%20source
DISTNAME= FreeDoko_${PORTVERSION}.src
diff --git a/games/freedoko/files/patch-1648 b/games/freedoko/files/patch-1648
new file mode 100644
index 000000000000..d8bf59b37167
--- /dev/null
+++ b/games/freedoko/files/patch-1648
@@ -0,0 +1,1572 @@
+Upstream bug:
+http://sourceforge.net/p/free-doko/bugs/325/
+
+based on:
+http://svn.gna.org/viewcvs/freedoko?view=revision&revision=1648
+
+Index: src/ui/gtkmm/gameinfo.cpp
+===================================================================
+--- ui/gtkmm/gameinfo.cpp (revision 1647)
++++ ui/gtkmm/gameinfo.cpp (working copy)
+@@ -60,13 +60,13 @@
+ GameInfoDialog::Information::Information(Base* const parent,
+ ::Translator::Translation const& title) :
+ Base(parent),
+- Gtk::VBox(false, 1 ex),
++ Gtk::VBox(false, 1 EX),
+ title(title),
+ icon(this->ui->icons->new_managed_image()),
+ label(Gtk::manage(new Gtk::Label("")))
+ {
+ this->ui->translations->add(*this->label, ::translation(""));
+- this->set_border_width(1 ex);
++ this->set_border_width(1 EX);
+
+ return ;
+ } // GameInfoDialog::Information::Information(Base* parent)
+Index: src/ui/gtkmm/preferences.cpp
+===================================================================
+--- ui/gtkmm/preferences.cpp (revision 1647)
++++ ui/gtkmm/preferences.cpp (working copy)
+@@ -399,7 +399,7 @@
+ vbox->add(*alignment)
+ #define ADD_ALIGNMENT_HBOX \
+ ADD_ALIGNMENT; \
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex)); \
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX)); \
+ alignment->add(*hbox)
+ #define ADD_ALIGNMENT_VBOX2 \
+ ADD_ALIGNMENT; \
+@@ -453,6 +453,11 @@
+ alignment->add(*(this->type_bool[Setting::SAVE_PARTY_CHANGES
+ - Setting::BOOL_FIRST]));
+ } // save party changes
++ { // save party changes
++ ADD_ALIGNMENT;
++ alignment->add(*(this->type_bool[Setting::ADDITIONAL_PARTY_SETTINGS
++ - Setting::BOOL_FIRST]));
++ } // save party changes
+ #ifdef USE_SOUND_COMMAND
+ { // play sound command
+ ADD_ALIGNMENT_HBOX;
+@@ -644,7 +649,7 @@
+ "theme");
+
+ { // cardset
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX));
+ vbox->add(*hbox);
+
+ hbox->pack_start(*(this->type_string_label[Setting::CARDSET
+@@ -653,7 +658,7 @@
+ - Setting::STRING_FIRST]), true, true);
+ } // cardset
+ { // cards back
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX));
+ vbox->add(*hbox);
+
+ hbox->pack_start(*(this->type_string_label[Setting::CARDS_BACK
+@@ -662,7 +667,7 @@
+ - Setting::STRING_FIRST]), true, true);
+ } // cards back
+ { // iconset
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX));
+ vbox->add(*hbox);
+
+ hbox->pack_start(*(this->type_string_label[Setting::ICONSET
+@@ -671,7 +676,7 @@
+ - Setting::STRING_FIRST]), true, true);
+ } // iconset
+ { // background
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX));
+ vbox->add(*hbox);
+
+ hbox->pack_start(*(this->type_string_label[Setting::BACKGROUND
+@@ -824,7 +829,7 @@
+ 0, 0));
+ this->add_group(name, *alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+ alignment->add(*vbox);
+
+ return vbox;
+@@ -911,7 +916,7 @@
+ Gtk::PACK_START);
+
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+ alignment->add(*vbox);
+
+ return vbox;
+Index: src/ui/gtkmm/party_settings.cpp
+===================================================================
+--- ui/gtkmm/party_settings.cpp (revision 1647)
++++ ui/gtkmm/party_settings.cpp (working copy)
+@@ -54,6 +54,7 @@
+ #include "../../network/server.h"
+ #endif
+ #include "../../os/bug_report_replay.h"
++#include "../../misc/setting.h"
+
+ #include "widgets/stock_button.h"
+ #include <gtkmm/stock.h>
+@@ -85,6 +86,7 @@
+ load_bug_report_button(NULL),
+ start_party_button(NULL),
+ close_button(NULL),
++ seed_frame(NULL),
+ seed_value(NULL),
+ seed_random(NULL),
+ rule_number_of_rounds_limited(NULL),
+@@ -91,8 +93,9 @@
+ rule_number_of_rounds(NULL),
+ rule_points_limited(NULL),
+ rule_points(NULL),
++ startplayer_frame(NULL),
+ startplayer(),
+- startplayer_random(),
++ startplayer_random(NULL),
+ switch_players_buttons(),
+ configure_players(),
+ configure_rules()
+@@ -287,8 +290,8 @@
+ } // the switch buttons
+ } // create the startplayer buttons
+ { // Layout
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
+- hbox->set_border_width(1 em);
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
++ hbox->set_border_width(1 EM);
+ this->get_vbox()->add(*hbox);
+ { // actions
+ { // configure
+@@ -298,7 +301,7 @@
+ 1, 0));
+ hbox->pack_end(*alignment, false, true);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(true, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(true, 1 EX));
+ alignment->add(*vbox);
+
+ vbox->add(*this->configure_rules);
+@@ -323,18 +326,18 @@
+ 0, 0));
+ hbox->pack_start(*alignment, true, true);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+ alignment->add(*vbox);
+
+ { // seed
+- Gtk::Frame* seed_frame = Gtk::manage(new Gtk::Frame("Game seed"));
+- this->ui->translations->add(*(dynamic_cast<Gtk::Label*>(seed_frame->get_label_widget())),
++ this->seed_frame = Gtk::manage(new Gtk::Frame("Game seed"));
++ this->ui->translations->add(*(dynamic_cast<Gtk::Label*>(this->seed_frame->get_label_widget())),
+ ::translation("game seed"));
+- vbox->add(*seed_frame);
++ vbox->add(*this->seed_frame);
+
+ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 10));
+- seed_frame->add(*vbox2);
+- vbox2->set_border_width(2 ex);
++ this->seed_frame->add(*vbox2);
++ vbox2->set_border_width(2 EX);
+
+ Gtk::Alignment* alignment2
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+@@ -364,8 +367,8 @@
+
+ Gtk::Table* table = Gtk::manage(new Gtk::Table(2, 2, false));
+ alignment->add(*table);
+- table->set_border_width(2 ex);
+- table->set_spacings(1 ex);
++ table->set_border_width(2 EX);
++ table->set_spacings(1 EX);
+
+ table->attach(*this->rule_number_of_rounds_limited, 0, 1, 0, 1);
+ table->attach(*this->rule_number_of_rounds, 1, 2, 0, 1);
+@@ -374,17 +377,17 @@
+ } // duration
+
+ { // startplayer
+- Gtk::Frame* startplayer_frame
++ this->startplayer_frame
+ = Gtk::manage(new Gtk::Frame("~startplayer"));
+- this->ui->translations->add(*(dynamic_cast<Gtk::Label*>(startplayer_frame->get_label_widget())),
++ this->ui->translations->add(*(dynamic_cast<Gtk::Label*>(this->startplayer_frame->get_label_widget())),
+ ::translation("startplayer"));
+- vbox->add(*startplayer_frame);
++ vbox->add(*this->startplayer_frame);
+
+ Gtk::Table* startplayer_table
+ = Gtk::manage(new Gtk::Table(3, 3, true));
+- startplayer_frame->add(*startplayer_table);
+- startplayer_table->set_border_width(2 ex);
+- startplayer_table->set_spacings(1 ex);
++ this->startplayer_frame->add(*startplayer_table);
++ startplayer_table->set_border_width(2 EX);
++ startplayer_table->set_spacings(1 EX);
+ startplayer_table->attach(*this->startplayer_random, 1, 2, 1, 2);
+ startplayer_table->attach(*this->startplayer[0], 1, 2, 2, 3);
+ startplayer_table->attach(*this->startplayer[1], 0, 1, 1, 2);
+@@ -463,6 +466,7 @@
+ } // signals
+
+ this->show_all_children();
++ this->sensitivity_update();
+ this->update();
+
+ return ;
+@@ -632,6 +636,14 @@
+ this->load_bug_report_button->set_sensitive(sensitive);
+ this->start_party_button->set_sensitive(sensitive);
+
++ if (::setting(Setting::ADDITIONAL_PARTY_SETTINGS)) {
++ this->seed_frame->show();
++ this->startplayer_frame->show();
++ } else {
++ this->seed_frame->hide();
++ this->startplayer_frame->hide();
++ }
++
+ return ;
+ } // void PartySettings::sensitivity_update()
+
+Index: src/ui/gtkmm/network.cpp
+===================================================================
+--- ui/gtkmm/network.cpp (revision 1647)
++++ ui/gtkmm/network.cpp (working copy)
+@@ -377,7 +377,7 @@
+ } // the rule differences
+
+ { // Layout
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 EX));
+
+ #ifndef OUTDATED
+ // will be outdated when the network support is finished,
+@@ -400,13 +400,13 @@
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("connections"));
+ this->ui->translations->add(*label, ::translation("connections"));
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 EX));
+
+ { // connection list
+ Gtk::ScrolledWindow* scrolled_window
+ = Gtk::manage(new Gtk::ScrolledWindow);
+
+- scrolled_window->set_border_width(1 ex);
++ scrolled_window->set_border_width(1 EX);
+ scrolled_window->set_policy(Gtk::POLICY_NEVER,
+ Gtk::POLICY_AUTOMATIC);
+ scrolled_window->add(*this->connection_treeview);
+@@ -432,9 +432,9 @@
+ static_cast<Gtk::Frame*>(this->new_connection_container
+ )->set_label_widget(*label);
+
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
+
+- hbox->set_border_width(1 ex);
++ hbox->set_border_width(1 EX);
+
+ hbox->add(*this->new_connection_address);
+ hbox->add(*this->new_connection_port);
+@@ -447,7 +447,7 @@
+ notebook->append_page(*vbox, *label);
+ } // connections
+ { // listeners
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("listeners"));
+ this->ui->translations->add(*label, ::translation("listeners"));
+@@ -455,7 +455,7 @@
+ Gtk::ScrolledWindow* scrolled_window
+ = Gtk::manage(new Gtk::ScrolledWindow);
+
+- scrolled_window->set_border_width(1 ex);
++ scrolled_window->set_border_width(1 EX);
+ scrolled_window->set_policy(Gtk::POLICY_NEVER,
+ Gtk::POLICY_AUTOMATIC);
+ scrolled_window->add(*this->listeners_treeview);
+@@ -469,8 +469,8 @@
+ static_cast<Gtk::Frame*>(this->new_listener_container
+ )->set_label_widget(*label);
+
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
+- hbox->set_border_width(1 ex);
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
++ hbox->set_border_width(1 EX);
+
+ hbox->add(*this->standard_listener_port);
+ hbox->add(*this->listener_port);
+@@ -490,7 +490,7 @@
+ Gtk::ScrolledWindow* scrolled_window
+ = Gtk::manage(new Gtk::ScrolledWindow);
+
+- scrolled_window->set_border_width(1 ex);
++ scrolled_window->set_border_width(1 EX);
+ scrolled_window->set_policy(Gtk::POLICY_NEVER,
+ Gtk::POLICY_AUTOMATIC);
+ scrolled_window->add(*this->local_addresses_treeview);
+@@ -506,7 +506,7 @@
+ Gtk::ScrolledWindow* scrolled_window
+ = Gtk::manage(new Gtk::ScrolledWindow);
+
+- scrolled_window->set_border_width(1 ex);
++ scrolled_window->set_border_width(1 EX);
+ scrolled_window->set_policy(Gtk::POLICY_NEVER,
+ Gtk::POLICY_AUTOMATIC);
+ scrolled_window->add(*this->rule_diffs_treeview);
+@@ -529,7 +529,7 @@
+ this->ui->translations->add(*this->synchronize_button,
+ ::translation("synchronize network"));
+ dynamic_cast<Gtk::Container*>(this->synchronize_button->get_child()
+- )->set_border_width(1 ex / 2);
++ )->set_border_width(1 EX / 2);
+
+ alignment->add(*this->synchronize_button);
+ vbox->pack_end(*alignment, false, true);
+@@ -545,7 +545,7 @@
+ this->ui->translations->add(*this->clear_button,
+ ::translation("clear network"));
+ dynamic_cast<Gtk::Container*>(this->clear_button->get_child()
+- )->set_border_width(1 ex / 2);
++ )->set_border_width(1 EX / 2);
+
+ alignment->add(*this->clear_button);
+ vbox->pack_end(*alignment, false, true);
+Index: src/ui/gtkmm/ui.update.cpp
+===================================================================
+--- ui/gtkmm/ui.update.cpp (revision 1647)
++++ ui/gtkmm/ui.update.cpp (working copy)
+@@ -652,6 +652,11 @@
+ this->table->draw_all();
+ break;
+
++ case Setting::ADDITIONAL_PARTY_SETTINGS:
++ if (this->party_settings)
++ this->party_settings->update();
++ break;
++
+ default:
+ break;
+ } // switch(type)
+Index: src/ui/gtkmm/last_trick.cpp
+===================================================================
+--- ui/gtkmm/last_trick.cpp (revision 1647)
++++ ui/gtkmm/last_trick.cpp (working copy)
+@@ -132,7 +132,7 @@
+ close_button->signal_clicked().connect(sigc::mem_fun(*this, &LastTrick::hide));
+ } // action area
+
+- this->get_vbox()->set_spacing(1 ex);
++ this->get_vbox()->set_spacing(1 EX);
+
+ this->navigation_container = Gtk::manage(new Gtk::HBox());
+ this->previous_trick_button = Gtk::manage(new Gtk::Button());
+Index: src/ui/gtkmm/party_summary.cpp
+===================================================================
+--- ui/gtkmm/party_summary.cpp (revision 1647)
++++ ui/gtkmm/party_summary.cpp (working copy)
+@@ -124,7 +124,7 @@
+ this->set_position(Gtk::WIN_POS_CENTER_ON_PARENT);
+
+
+- this->get_vbox()->set_spacing(1 ex);
++ this->get_vbox()->set_spacing(1 EX);
+
+ { // action area
+ this->new_party_button
+Index: src/ui/gtkmm/party_points.cpp
+===================================================================
+--- ui/gtkmm/party_points.cpp (revision 1647)
++++ ui/gtkmm/party_points.cpp (working copy)
+@@ -216,8 +216,8 @@
+
+ { // table
+ Gtk::VBox* table_vbox = Gtk::manage(new Gtk::VBox(false));
+- table_vbox->set_border_width(1 ex);
+- table_vbox->set_spacing(1 ex);
++ table_vbox->set_border_width(1 EX);
++ table_vbox->set_spacing(1 EX);
+
+ { // the points table
+ this->party_points_model = new PartyPointsModel(1000 * ::party.playerno());
+@@ -430,8 +430,8 @@
+ 0));
+
+ Gtk::Box* box = Gtk::manage(new Gtk::HBox(true));
+- box->pack_start(*this->remaining_rounds_label, Gtk::PACK_SHRINK, 1 em);
+- box->pack_end(*this->remaining_points_label, Gtk::PACK_SHRINK, 1 em);
++ box->pack_start(*this->remaining_rounds_label, Gtk::PACK_SHRINK, 1 EM);
++ box->pack_end(*this->remaining_points_label, Gtk::PACK_SHRINK, 1 EM);
+
+ this->get_vbox()->pack_start(*box, false, true);
+ } // remaining rounds / points
+@@ -1217,7 +1217,7 @@
+ : 0) ) );
+ if ( party.rule()(Rule::NUMBER_OF_ROUNDS_LIMITED)
+ || party.rule()(Rule::POINTS_LIMITED))
+- this->remaining_rounds_label->get_parent()->set_border_width(1 ex);
++ this->remaining_rounds_label->get_parent()->set_border_width(1 EX);
+ else
+ this->remaining_rounds_label->get_parent()->set_border_width(0);
+
+Index: src/ui/gtkmm/bug_report_replay.cpp
+===================================================================
+--- ui/gtkmm/bug_report_replay.cpp (revision 1647)
++++ ui/gtkmm/bug_report_replay.cpp (working copy)
+@@ -216,8 +216,8 @@
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("general"));
+ this->ui->translations->add(*label, ::translation("BugReportReplay::Group::general"));
+
+- Gtk::Box* general_box = Gtk::manage(new Gtk::VBox(false, 1 em));
+- general_box->set_border_width(1 em);
++ Gtk::Box* general_box = Gtk::manage(new Gtk::VBox(false, 1 EM));
++ general_box->set_border_width(1 EM);
+
+ { // game box
+ Gtk::Alignment* alignment
+@@ -224,7 +224,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- Gtk::Box* game_box = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::Box* game_box = Gtk::manage(new Gtk::VBox(false, 1 EX));
+
+ game_box->pack_start(*this->version, Gtk::PACK_EXPAND_WIDGET);
+ game_box->pack_start(*this->system, Gtk::PACK_EXPAND_WIDGET);
+@@ -247,7 +247,7 @@
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("actions"));
+ this->ui->translations->add(*label, ::translation("BugReportReplay::Group::actions"));
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+
+ Gtk::ScrolledWindow* scrolled_window
+ = Gtk::manage(new Gtk::ScrolledWindow);
+Index: src/ui/gtkmm/reservation.cpp
+===================================================================
+--- ui/gtkmm/reservation.cpp (revision 1647)
++++ ui/gtkmm/reservation.cpp (working copy)
+@@ -224,7 +224,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 ex);
++ alignment->set_border_width(1 EX);
+ alignment->add(*this->bock_label);
+ this->get_vbox()->add(*alignment);
+ } // bock information
+@@ -261,13 +261,13 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(2 ex);
++ alignment->set_border_width(2 EX);
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("general"));
+ this->ui->translations->add(*label,
+ ::translation("GameType::Group::general"));
+ this->notebook->append_page(*alignment, *label);
+
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 ex));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EX));
+ alignment->add(*hbox);
+
+ Gtk::VBox* vbox = NULL;
+@@ -322,7 +322,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(2 ex);
++ alignment->set_border_width(2 EX);
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("solo"));
+ this->ui->translations->add(*label,
+ ::translation("GameType::Group::solo"));
+@@ -428,8 +428,8 @@
+ table2->attach(*this->remaining_points_number,
+ 1, 2, 2, 3);
+
+- table2->set_row_spacings(1 ex);
+- table2->set_col_spacings(static_cast<int>(0.5 em));
++ table2->set_row_spacings(1 EX);
++ table2->set_col_spacings(static_cast<int>(0.5 EM));
+ table2->set_homogeneous(false);
+
+ alignment->add(*table2);
+@@ -482,14 +482,14 @@
+ table2->attach(*this->duty_picture_soli_number,
+ 1, 2, 2, 3);
+
+- table2->set_row_spacings(1 ex);
+- table2->set_col_spacings(static_cast<int>(0.5 em));
++ table2->set_row_spacings(1 EX);
++ table2->set_col_spacings(static_cast<int>(0.5 EM));
+ table2->set_homogeneous(false);
+
+ alignment->add(*table2);
+ table->attach(*alignment, 1, 2, 0, 1);
+ } // duty soli
+- table->set_border_width(1 ex);
++ table->set_border_width(1 EX);
+ this->get_vbox()->add(*table);
+ } // tournament info
+
+Index: src/ui/gtkmm/game_debug.cpp
+===================================================================
+--- ui/gtkmm/game_debug.cpp (revision 1647)
++++ ui/gtkmm/game_debug.cpp (working copy)
+@@ -533,14 +533,14 @@
+ } // action area
+
+ { // content
+- Gtk::Box* content_box = Gtk::manage(new Gtk::HBox(false, 2 em));
++ Gtk::Box* content_box = Gtk::manage(new Gtk::HBox(false, 2 EM));
+ this->get_vbox()->add(*content_box);
+
+- Gtk::Box* left_box = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::Box* left_box = Gtk::manage(new Gtk::VBox(false, 1 EX));
+ content_box->pack_start(*left_box, false, false);
+ { // game info
+- Gtk::Box* box = Gtk::manage(new Gtk::VBox(true, 1 ex));
+- box->set_border_width(1 em);
++ Gtk::Box* box = Gtk::manage(new Gtk::VBox(true, 1 EX));
++ box->set_border_width(1 EM);
+
+ { // seed
+ Gtk::Box* box2 = Gtk::manage(new Gtk::HBox(false, 0));
+@@ -580,7 +580,7 @@
+ this->ui->translations->add(*dynamic_cast<Gtk::Label*>(frame->get_label_widget()),
+ ::translation("game info"));
+ frame->add(*box);
+- frame->set_border_width(1 em);
++ frame->set_border_width(1 EM);
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+@@ -630,13 +630,13 @@
+ }
+
+ Gtk::Alignment* a = Gtk::manage(new Gtk::Alignment);
+- a->set_border_width(1 em);
++ a->set_border_width(1 EM);
+ a->add(*this->player_info_treeview);
+ Gtk::Frame* frame = Gtk::manage(new Gtk::Frame("player info"));
+ this->ui->translations->add(*dynamic_cast<Gtk::Label*>(frame->get_label_widget()),
+ ::translation("player info"));
+ frame->add(*a);
+- frame->set_border_width(1 em);
++ frame->set_border_width(1 EM);
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+@@ -678,13 +678,13 @@
+ } // for (p)
+
+ Gtk::Alignment* a = Gtk::manage(new Gtk::Alignment);
+- a->set_border_width(1 em);
++ a->set_border_width(1 EM);
+ a->add(*this->team_info_treeview);
+ Gtk::Frame* frame = Gtk::manage(new Gtk::Frame("team info"));
+ this->ui->translations->add(*dynamic_cast<Gtk::Label*>(frame->get_label_widget()),
+ ::translation("team info"));
+ frame->add(*a);
+- frame->set_border_width(1 em);
++ frame->set_border_width(1 EM);
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+@@ -725,13 +725,13 @@
+ scrolled_window->set_vadjustment(this->tricks_treeview->get_vadjustment());
+
+ Gtk::Alignment* a = Gtk::manage(new Gtk::Alignment);
+- a->set_border_width(1 em);
++ a->set_border_width(1 EM);
+ a->add(*scrolled_window);
+ Gtk::Frame* frame = Gtk::manage(new Gtk::Frame("tricks"));
+ this->ui->translations->add(*dynamic_cast<Gtk::Label*>(frame->get_label_widget()),
+ ::translation("tricks"));
+ frame->add(*a);
+- frame->set_border_width(1 em);
++ frame->set_border_width(1 EM);
+
+ content_box->pack_end(*frame, true, true);
+ } // tricks
+Index: src/ui/gtkmm/party_settings.h
+===================================================================
+--- ui/gtkmm/party_settings.h (revision 1647)
++++ ui/gtkmm/party_settings.h (working copy)
+@@ -40,6 +40,7 @@
+ class SpinButton;
+ class CheckButton;
+ class RadioButton;
++ class Frame;
+ } // namespace Gtk
+
+ class Setting;
+@@ -120,6 +121,7 @@
+ Gtk::StockButton* start_party_button;
+ Gtk::StockButton* close_button;
+
++ Gtk::Frame* seed_frame;
+ Gtk::SpinButton* seed_value;
+ Gtk::CheckButton* seed_random;
+
+@@ -128,6 +130,7 @@
+ Gtk::CheckButton* rule_points_limited;
+ Gtk::SpinButton* rule_points;
+
++ Gtk::Frame* startplayer_frame;
+ vector<Gtk::RadioButton*> startplayer;
+ Gtk::RadioButton* startplayer_random;
+ vector<Gtk::Button*> switch_players_buttons;
+Index: src/ui/gtkmm/rules.cpp
+===================================================================
+--- ui/gtkmm/rules.cpp (revision 1647)
++++ ui/gtkmm/rules.cpp (working copy)
+@@ -308,7 +308,7 @@
+
+ { // Tournament
+ Gtk::VBox* tournament_box = this->add_group("tournament");
+- tournament_box->set_spacing(3 ex);
++ tournament_box->set_spacing(3 EX);
+
+ { // with nines
+ Gtk::Alignment* alignment
+@@ -316,7 +316,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ tournament_box->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::WITH_NINES - Rule::BOOL_FIRST]);
+@@ -328,7 +328,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ vbox->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_unsigned[Rule::NUMBER_OF_PLAYERS - Rule::UNSIGNED_FIRST]);
+@@ -336,7 +336,7 @@
+ } // number of players
+ #endif
+ { // lower box
+- Gtk::Box* hbox = Gtk::manage(new Gtk::HBox(false, 2 em));
++ Gtk::Box* hbox = Gtk::manage(new Gtk::HBox(false, 2 EM));
+ { // limits
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+@@ -343,12 +343,12 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ hbox->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 2 EX));
+ alignment->add(*vbox2);
+
+ {
+ Gtk::VBox* vbox3
+- = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ vbox2->add(*vbox3);
+ vbox3->add(*this->type_bool[Rule::NUMBER_OF_ROUNDS_LIMITED - Rule::BOOL_FIRST]);
+ vbox3->add(*this->type_unsigned[Rule::NUMBER_OF_ROUNDS - Rule::UNSIGNED_FIRST]);
+@@ -355,7 +355,7 @@
+ }
+ {
+ Gtk::VBox* vbox3
+- = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ vbox2->add(*vbox3);
+ vbox3->add(*this->type_bool[Rule::POINTS_LIMITED - Rule::BOOL_FIRST]);
+ vbox3->add(*this->type_unsigned[Rule::POINTS - Rule::UNSIGNED_FIRST]);
+@@ -366,13 +366,13 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- hbox->pack_end(*alignment, Gtk::PACK_SHRINK, 2 ex);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ hbox->pack_end(*alignment, Gtk::PACK_SHRINK, 2 EX);
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 2 EX));
+ alignment->add(*vbox2);
+
+ {
+ Gtk::VBox* vbox3
+- = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ vbox2->add(*vbox3);
+ vbox3->add(*this->type_unsigned[Rule::NUMBER_OF_DUTY_SOLI - Rule::UNSIGNED_FIRST]);
+ vbox3->add(*this->type_unsigned[Rule::NUMBER_OF_DUTY_COLOR_SOLI - Rule::UNSIGNED_FIRST]);
+@@ -380,7 +380,7 @@
+ }
+ {
+ Gtk::VBox* vbox3
+- = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ vbox2->add(*vbox3);
+ vbox3->add(*this->type_bool[Rule::OFFER_DUTY_SOLO - Rule::BOOL_FIRST]);
+ }
+@@ -390,25 +390,25 @@
+ } // Tournament
+ { // counting
+ Gtk::VBox* vbox = this->add_group("counting");
+- Gtk::HBox* counting_box = Gtk::manage(new Gtk::HBox(false, 4 em));
++ Gtk::HBox* counting_box = Gtk::manage(new Gtk::HBox(false, 4 EM));
+ { // counting type
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- Gtk::VBox* vbox_count = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ Gtk::VBox* vbox_count = Gtk::manage(new Gtk::VBox(false, 2 EX));
+ {
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- Gtk::Box* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::Box* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ {
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 ex / 2);
++ alignment->set_border_width(1 EX / 2);
+ Gtk::Label* label = Gtk::manage(new Gtk::Label("counting"));
+ this->ui->translations->add(*label,
+ ::translation(Rule::COUNTING));
+@@ -430,7 +430,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 ex / 2);
++ alignment->set_border_width(1 EX / 2);
+ alignment->add(*this->type_bool[Rule::SOLO_ALWAYS_COUNTS_TRIPLE - Rule::BOOL_FIRST]);
+ vbox_count->add(*alignment);
+ }
+@@ -438,8 +438,8 @@
+ counting_box->add(*alignment);
+ } // counting type
+ { // Bock
+- Gtk::VBox* bock_box = Gtk::manage(new Gtk::VBox(false, 0 ex));
+- bock_box->set_spacing(2 ex);
++ Gtk::VBox* bock_box = Gtk::manage(new Gtk::VBox(false, 0 EX));
++ bock_box->set_spacing(2 EX);
+ counting_box->add(*bock_box);
+
+ {
+@@ -461,7 +461,7 @@
+ alignment->add(*this->type_bool[Rule::BOCK_APPEND - Rule::BOOL_FIRST]);
+ }
+ { // conditions
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(true, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(true, 1 EX / 2));
+ bock_box->add(*vbox);
+
+ vbox->add(*this->type_bool[Rule::BOCK_120 - Rule::BOOL_FIRST]);
+@@ -489,7 +489,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ vbox0->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->add(*this->type_unsigned[Rule::SHOW_TRICKS_NUMBER - Rule::UNSIGNED_FIRST]);
+@@ -502,7 +502,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ vbox0->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->add(*this->type_bool[Rule::SHOW_SOLOPLAYER_IN_GAME - Rule::BOOL_FIRST]);
+@@ -516,7 +516,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ vbox0->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->add(*this->type_bool[Rule::CARD_HINT - Rule::BOOL_FIRST]);
+@@ -526,10 +526,10 @@
+ { // Solo
+ Gtk::VBox* solo_box = this->add_group("solo",
+ this->ui->icons->new_managed_image(Icons::SOLO_KOEHLER, ICONSCALING));
+- solo_box->set_spacing(2 ex);
++ solo_box->set_spacing(2 EX);
+
+ { // solo types
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
+ solo_box->add(*vbox);
+ {
+ Gtk::Alignment* alignment
+@@ -547,10 +547,10 @@
+ 0, 0));
+ vbox->add(*alignment);
+ {
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
+ alignment->add(*hbox);
+ {
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 EX / 2));
+ hbox->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::SOLO_COLOR - Rule::BOOL_FIRST]);
+@@ -558,7 +558,7 @@
+ vbox2->add(*this->type_bool[Rule::SOLO_MEATLESS - Rule::BOOL_FIRST]);
+ }
+ {
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 EX / 2));
+ hbox->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::SOLO_JACK - Rule::BOOL_FIRST]);
+@@ -566,7 +566,7 @@
+ vbox2->add(*this->type_bool[Rule::SOLO_KING - Rule::BOOL_FIRST]);
+ }
+ {
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(true, 1 EX / 2));
+ hbox->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::SOLO_QUEEN_JACK - Rule::BOOL_FIRST]);
+@@ -581,7 +581,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- solo_box->pack_end(*alignment, Gtk::PACK_SHRINK, 0 ex);
++ solo_box->pack_end(*alignment, Gtk::PACK_SHRINK, 0 EX);
+
+ alignment->add(*this->type_bool[Rule::THROWING_BEFORE_SOLO - Rule::BOOL_FIRST]);
+ }
+@@ -590,7 +590,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- solo_box->pack_end(*alignment, Gtk::PACK_SHRINK, 2 ex);
++ solo_box->pack_end(*alignment, Gtk::PACK_SHRINK, 2 EX);
+
+ alignment->add(*this->type_bool[Rule::LUSTSOLO_PLAYER_LEADS - Rule::BOOL_FIRST]);
+ }
+@@ -605,7 +605,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ poverty_box->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->add(*this->type_bool[Rule::POVERTY - Rule::BOOL_FIRST]);
+@@ -622,7 +622,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ poverty_box->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->add(*this->type_bool[Rule::THROW_WHEN_FOX_HIGHEST_TRUMP - Rule::BOOL_FIRST]);
+@@ -656,7 +656,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ marriage_box->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::MARRIAGE_FIRST_FOREIGN - Rule::BOOL_FIRST]);
+@@ -688,7 +688,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- marriage_box->pack_end(*alignment, Gtk::PACK_SHRINK, 2 ex);
++ marriage_box->pack_end(*alignment, Gtk::PACK_SHRINK, 2 EX);
+
+ alignment->add(*this->type_bool[Rule::GENSCHER - Rule::BOOL_FIRST]);
+ } // genscher
+@@ -704,7 +704,7 @@
+ 0, 0));
+ announcements_box->add(*alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->pack_start(*this->type_bool[Rule::KNOCKING - Rule::BOOL_FIRST]);
+@@ -717,7 +717,7 @@
+ 0, 0));
+ announcements_box->add(*alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ {
+@@ -748,7 +748,7 @@
+ 0, 0));
+ announcements_box->add(*alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ vbox->pack_start(*this->type_bool[Rule::ANNOUNCEMENT_LIMIT_ONLY_FOR_CURRENT - Rule::BOOL_FIRST]);
+@@ -766,7 +766,7 @@
+ { // Dollen
+ Gtk::VBox* vbox = this->add_group("dollen",
+ this->ui->icons->new_managed_image(Icons::DOLLEN, ICONSCALING));
+- vbox->set_spacing(1 ex / 2);
++ vbox->set_spacing(1 EX / 2);
+
+ {
+ vbox->add(*this->type_bool[Rule::DOLLEN - Rule::BOOL_FIRST]);
+@@ -782,8 +782,8 @@
+ ICONSCALING)
+ )->add(*table);
+
+- table->set_col_spacings(2 em);
+- table->set_row_spacings(1 ex / 2);
++ table->set_col_spacings(2 EM);
++ table->set_row_spacings(1 EX / 2);
+
+ {
+ table->attach(*this->type_bool[Rule::SWINES - Rule::BOOL_FIRST],
+@@ -819,8 +819,8 @@
+ this->ui->icons->new_managed_image(Icons::DOPPELKOPF, ICONSCALING));
+
+ {
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
+- hbox->set_spacing(2 em);
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
++ hbox->set_spacing(2 EM);
+ vbox->add(*hbox);
+ {
+ Gtk::Alignment* alignment
+@@ -828,7 +828,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ hbox->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::EXTRAPOINT_CATCH_FOX - Rule::BOOL_FIRST]);
+@@ -842,7 +842,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ hbox->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::EXTRAPOINT_CHARLIE - Rule::BOOL_FIRST]);
+@@ -858,7 +858,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ vbox->add(*alignment);
+- Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox2 = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox2);
+
+ vbox2->add(*this->type_bool[Rule::EXTRAPOINT_DOLLE_JABS_DOLLE - Rule::BOOL_FIRST]);
+@@ -872,11 +872,11 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_TOP,
+ 0, 0));
+- this->get_vbox()->pack_end(*alignment, Gtk::PACK_SHRINK, 1 ex);
++ this->get_vbox()->pack_end(*alignment, Gtk::PACK_SHRINK, 1 EX);
+
+ Gtk::Box* file_box = Gtk::manage(new Gtk::HButtonBox());
+- file_box->set_border_width(1 ex / 2);
+- file_box->set_spacing(1 em);
++ file_box->set_border_width(1 EX / 2);
++ file_box->set_spacing(1 EM);
+ alignment->add(*file_box);
+
+ file_box->add(*this->reset_button);
+@@ -1419,11 +1419,11 @@
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER,
+ 0, 0));
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 ex));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 EX));
+ alignment->add(*vbox);
+- vbox->set_border_width(1 em);
++ vbox->set_border_width(1 EM);
+
+- Gtk::HBox* bookmark = Gtk::manage(new Gtk::HBox(false, 1 em / 2));
++ Gtk::HBox* bookmark = Gtk::manage(new Gtk::HBox(false, 1 EM / 2));
+ if (image)
+ bookmark->add(*image);
+ if (!name.empty()) {
+Index: src/ui/gtkmm/about.cpp
+===================================================================
+--- ui/gtkmm/about.cpp (revision 1647)
++++ ui/gtkmm/about.cpp (working copy)
+@@ -160,7 +160,7 @@
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 ex / 2);
++ alignment->set_border_width(1 EX / 2);
+
+ alignment->add(*homepage_button);
+
+Index: src/ui/gtkmm/widgets/label_type_selector.h
+===================================================================
+--- ui/gtkmm/widgets/label_type_selector.h (revision 1647)
++++ ui/gtkmm/widgets/label_type_selector.h (working copy)
+@@ -90,7 +90,7 @@
+ // inits the label type selector
+ void init()
+ {
+- this->set_spacing(1 ex);
++ this->set_spacing(1 EX);
+
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_RIGHT, Gtk::ALIGN_CENTER,
+Index: src/ui/gtkmm/widgets/labelentry.h
+===================================================================
+--- ui/gtkmm/widgets/labelentry.h (revision 1647)
++++ ui/gtkmm/widgets/labelentry.h (working copy)
+@@ -49,7 +49,7 @@
+ label_(),
+ entry_()
+ {
+- this->set_spacing(1 ex);
++ this->set_spacing(1 EX);
+
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER,
+Index: src/ui/gtkmm/trick_summary.cpp
+===================================================================
+--- ui/gtkmm/trick_summary.cpp (revision 1647)
++++ ui/gtkmm/trick_summary.cpp (working copy)
+@@ -137,13 +137,13 @@
+
+ { // info box
+ Gtk::VBox* info_box = Gtk::manage(new Gtk::VBox(true));
+- info_box->set_border_width(2 ex);
++ info_box->set_border_width(2 EX);
+ this->pack_end(*info_box);
+
+ { // the labels
+ Gtk::Alignment* alignment = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_BOTTOM, 0, 0));
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
+- vbox->set_border_width(2 ex);
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
++ vbox->set_border_width(2 EX);
+ alignment->add(*vbox);
+
+ this->winner = Gtk::manage(new Gtk::Label("Winner:"));
+@@ -164,8 +164,8 @@
+
+ { // specialpoints
+ Gtk::Alignment* alignment = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_TOP, 0, 0));
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
+- vbox->set_border_width(2 ex);
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
++ vbox->set_border_width(2 EX);
+ alignment->add(*vbox);
+
+ this->specialpoints_list
+Index: src/ui/gtkmm/genscher_selection.cpp
+===================================================================
+--- ui/gtkmm/genscher_selection.cpp (revision 1647)
++++ ui/gtkmm/genscher_selection.cpp (working copy)
+@@ -113,11 +113,11 @@
+ ::translation("~genscher"));
+
+ Gtk::Alignment* alignment = Gtk::manage(new Gtk::Alignment());
+- alignment->set_border_width(2 ex);
++ alignment->set_border_width(2 EX);
+ this->get_action_area()->add(*alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex));
+- vbox->set_border_width(1 ex);
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX));
++ vbox->set_border_width(1 EX);
+ alignment->add(*vbox);
+
+ this->info_label = Gtk::manage(new Gtk::Label("Genscher: Please choose your partner."));
+Index: src/ui/gtkmm/aiconfig.cpp
+===================================================================
+--- ui/gtkmm/aiconfig.cpp (revision 1647)
++++ ui/gtkmm/aiconfig.cpp (working copy)
+@@ -394,7 +394,7 @@
+ Players::Player::AiConfig::create_container()
+ {
+ this->container
+- = Gtk::manage(new Gtk::VBox(false, 1 ex));
++ = Gtk::manage(new Gtk::VBox(false, 1 EX));
+
+ { // the difficulty
+ Gtk::Alignment* alignment
+@@ -424,12 +424,12 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+ Gtk::Table* table = Gtk::manage(new Gtk::Table(2, 2, true));
+- table->set_col_spacings(2 em);
+- table->set_row_spacings(1 ex);
+- table->set_border_width(1 ex);
++ table->set_col_spacings(2 EM);
++ table->set_row_spacings(1 EX);
++ table->set_border_width(1 EX);
+
+ //table->attach(*this->difficulty_button, 0, 1, 0, 1);
+ // the difficulty selector is put in the 'player' page
+@@ -452,9 +452,9 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 em));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EM));
+
+ vbox->add(*(this->type_bool[Aiconfig::TEAMS_KNOWN - Aiconfig::BOOL_FIRST]));
+ vbox->add(*(this->type_bool[Aiconfig::HANDS_KNOWN - Aiconfig::BOOL_FIRST]));
+@@ -475,7 +475,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+ // ToDo: table -> ListStore
+ Gtk::Table* table = Gtk::manage(new Gtk::Table(this->ui->party().rule()(Rule::MAX_NUMBER_OF_TRICKS_IN_GAME) + 2, 5));
+@@ -597,9 +597,9 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 em));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EM));
+
+ vbox->add(*this->type_int[Aiconfig::TAKEPOVERTY - Aiconfig::INT_FIRST]);
+ vbox->add(*this->type_int[Aiconfig::SINGLESOLO - Aiconfig::INT_FIRST]);
+@@ -620,9 +620,9 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 em));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EM));
+
+ vbox->add(*(this->type_int[Aiconfig::ANNOUNCELIMIT - Aiconfig::INT_FIRST]));
+ vbox->add(*(this->type_int[Aiconfig::ANNOUNCELIMITDEC - Aiconfig::INT_FIRST]));
+@@ -642,9 +642,9 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 em));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EM));
+
+ vbox->add(*this->type_bool[Aiconfig::FEHLCREATIONONFIRSTCARD - Aiconfig::BOOL_FIRST]);
+ vbox->add(*this->type_int[Aiconfig::LAST_TRICKS_WITHOUT_HEURISTICS - Aiconfig::INT_FIRST]);
+@@ -675,9 +675,9 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+
+ vbox->add(*this->type_card[Aiconfig::LIMITTHROWING - Aiconfig::CARD_FIRST]);
+ vbox->add(*this->type_card[Aiconfig::TRUMPLIMIT_NORMAL - Aiconfig::CARD_FIRST]);
+@@ -696,10 +696,10 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(1 em);
++ alignment->set_border_width(1 EM);
+ Gtk::Table* table = Gtk::manage(new Gtk::Table(1, 3, false));
+- table->set_row_spacings(1 ex / 2);
+- table->set_col_spacings(1 em / 2);
++ table->set_row_spacings(1 EX / 2);
++ table->set_col_spacings(1 EM / 2);
+ { // the table
+ Gtk::Label* label;
+ Gtk::Alignment* alignment;
+@@ -715,7 +715,7 @@
+ ::translation("AiConfig::CardLimit::Group::lowest trump limit"));
+ table->attach(*label, 2, 3, row, row + 1);
+ row += 1;
+- table->set_row_spacing(0, 3 ex / 2);
++ table->set_row_spacing(0, 3 EX / 2);
+ // color solo
+ table->resize(row + 1, 3);
+ label = Gtk::manage(new Gtk::Label("color solo"));
+@@ -1140,7 +1140,7 @@
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER));
+- alignment->set_border_width(1 ex);
++ alignment->set_border_width(1 EX);
+ alignment->add(default_button);
+ box->pack_start(*alignment, Gtk::PACK_SHRINK);
+ } // if (key != HeuristicsMap::Key::DEFAULT)
+@@ -1203,8 +1203,8 @@
+ } // treeview
+ { // right column
+ Gtk::Box* box3
+- = Gtk::manage(new Gtk::VBox(false, 1 ex));
+- box3->set_border_width(1 ex);
++ = Gtk::manage(new Gtk::VBox(false, 1 EX));
++ box3->set_border_width(1 EX);
+ { // move up/down buttons
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_LEFT,
+@@ -1213,7 +1213,7 @@
+
+ Gtk::Box* button_box
+ = Gtk::manage(new Gtk::VButtonBox(Gtk::BUTTONBOX_DEFAULT_STYLE,
+- 1 ex));
++ 1 EX));
+
+ this->heuristic_up_button[key]
+ = Gtk::manage(new Gtk::StockButton(Gtk::Stock::GO_UP, "up"));
+Index: src/ui/gtkmm/players.cpp
+===================================================================
+--- ui/gtkmm/players.cpp (revision 1647)
++++ ui/gtkmm/players.cpp (working copy)
+@@ -129,8 +129,8 @@
+
+ { // set default size
+ Gdk::Geometry geometry;
+- geometry.min_width = 70 ex;
+- geometry.min_height = 10 ex;
++ geometry.min_width = 70 EX;
++ geometry.min_height = 10 EX;
+
+ this->set_geometry_hints(*this, geometry, Gdk::HINT_MIN_SIZE);
+ } // set default size
+@@ -159,7 +159,7 @@
+ for (unsigned p = 0; p < ::party.playerno(); ++p) {
+ Players::Player& player = this->player(p);
+
+- Gtk::VBox* player_box = Gtk::manage(new Gtk::VBox(false, 3 ex / 2));
++ Gtk::VBox* player_box = Gtk::manage(new Gtk::VBox(false, 3 EX / 2));
+
+ this->players_notebook->append_page(*player_box,
+ *(player.name_label));
+@@ -170,7 +170,7 @@
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+ player_box->pack_end(*alignment, false, true);
+- alignment->set_border_width(1 ex / 2);
++ alignment->set_border_width(1 EX / 2);
+ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(true, 0));
+ alignment->add(*hbox);
+ { // reset button
+@@ -204,8 +204,8 @@
+ 0, 0));
+ player_notebook.back()->append_page(*alignment, *general_label);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 ex));
+- vbox->set_border_width(1 ex);
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 2 EX));
++ vbox->set_border_width(1 EX);
+ alignment->add(*vbox);
+
+ { // the name widgets
+@@ -250,7 +250,7 @@
+ 0, 0));
+ vbox->add(*alignment);
+
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ for (vector<Gtk::RadioButton*>::iterator type
+@@ -609,11 +609,11 @@
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_TOP,
+ 0, 0));
+- alignment->set_border_width(1 ex / 2);
++ alignment->set_border_width(1 EX / 2);
+
+ table->attach(*alignment, 0, 1, current_row, current_row + 1,
+ Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK,
+- depth em);
++ depth EM);
+
+ Gtk::CheckButton* group_button
+ = Gtk::manage(new Gtk::CheckButton(name));
+@@ -680,8 +680,8 @@
+ true));
+ table->attach(*table2, 1, 2, current_row, current_row + 1,
+ Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK);
+- table2->set_col_spacings(1 em / 2);
+- table2->set_row_spacing(0, 1 ex / 2);
++ table2->set_col_spacings(1 EM / 2);
++ table2->set_row_spacing(0, 1 EX / 2);
+
+ for (unsigned p = 0; p < ::party.playerno(); ++p) {
+ Gtk::Alignment* alignment
+@@ -689,7 +689,7 @@
+ 1, 0));
+ table2->attach(*alignment, p, p + 1, 0, 1,
+ Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK,
+- 0, 1 ex / 4);
++ 0, 1 EX / 4);
+
+ Gtk::Widget* widget = NULL;
+ if ((type >= Aiconfig::BOOL_FIRST)
+Index: src/ui/gtkmm/card_suggestion.cpp
+===================================================================
+--- ui/gtkmm/card_suggestion.cpp (revision 1647)
++++ ui/gtkmm/card_suggestion.cpp (working copy)
+@@ -154,7 +154,7 @@
+
+ this->card_image = this->ui->cards->new_managed_image();
+ this->card_box->add(*this->card_image);
+- this->card_image->set_padding(2 em, 2 ex);
++ this->card_image->set_padding(2 EM, 2 EX);
+ this->rationals_text = Gtk::manage(new Gtk::Label("Thinking, please wait."));
+ this->ui->translations->add(*this->rationals_text,
+ ::translation("Thinking, please wait."));
+Index: src/ui/gtkmm/constants.h
+===================================================================
+--- ui/gtkmm/constants.h (revision 1647)
++++ ui/gtkmm/constants.h (working copy)
+@@ -62,10 +62,10 @@
+
+ // used for:
+ // * border in notebooks
+-#define em * 18
++#define EM * 18
+ // used for:
+ // * spacing in boxes
+-#define ex * 12
++#define EX * 12
+
+ #endif // #ifdef USE_UI_GTKMM
+
+Index: src/ui/gtkmm/changelog.cpp
+===================================================================
+--- ui/gtkmm/changelog.cpp (revision 1647)
++++ ui/gtkmm/changelog.cpp (working copy)
+@@ -151,7 +151,7 @@
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_border_width(2 ex);
++ alignment->set_border_width(2 EX);
+ //this->get_vbox()->pack_start(*alignment, false, true);
+
+ Gtk::TextView* const title_text = Gtk::manage(new Gtk::TextView());
+Index: src/ui/gtkmm/full_trick.cpp
+===================================================================
+--- ui/gtkmm/full_trick.cpp (revision 1647)
++++ ui/gtkmm/full_trick.cpp (working copy)
+@@ -127,7 +127,7 @@
+ } // action area
+
+ { // vbox
+- this->get_vbox()->set_spacing(1 ex);
++ this->get_vbox()->set_spacing(1 EX);
+
+ this->trick_summary = new TrickSummary(this, false);
+
+@@ -134,7 +134,7 @@
+ this->get_vbox()->add(*this->trick_summary);
+
+ this->winnercard = this->ui->cards->new_managed_image();
+- this->winnercard->set_padding(2 em, 2 ex);
++ this->winnercard->set_padding(2 EM, 2 EX);
+ this->trick_summary->pack_start(*this->winnercard);
+ } // vbox
+
+Index: src/ui/gtkmm/utils.cpp
+===================================================================
+--- ui/gtkmm/utils.cpp (revision 1647)
++++ ui/gtkmm/utils.cpp (working copy)
+@@ -158,7 +158,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_LEFT,
+ Gtk::ALIGN_CENTER,
+ 0, 0));
+- alignment->set_property("left_padding", level em);
++ alignment->set_property("left_padding", level EM);
+ alignment->add(widget);
+ return alignment;
+ } // Gtk::Alignment* indent(Gtk::Widget& widget, unsigned level = 1)
+Index: src/ui/gtkmm/players_db.cpp
+===================================================================
+--- ui/gtkmm/players_db.cpp (revision 1647)
++++ ui/gtkmm/players_db.cpp (working copy)
+@@ -196,15 +196,15 @@
+
+
+ { // vbox
+- Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 em));
++ Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox(false, 1 EM));
+ this->get_vbox()->add(*hbox);
+ { // statistic type
+ Gtk::Alignment* alignment
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_LEFT, Gtk::ALIGN_TOP,
+ 0, 0));
+- alignment->set_border_width(1 ex);
++ alignment->set_border_width(1 EX);
+ hbox->add(*alignment);
+- Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 ex / 2));
++ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox(false, 1 EX / 2));
+ alignment->add(*vbox);
+
+ Gtk::RadioButton::Group statistic_group;
+Index: src/ui/gtkmm/preferences.cards_order.cpp
+===================================================================
+--- ui/gtkmm/preferences.cards_order.cpp (revision 1647)
++++ ui/gtkmm/preferences.cards_order.cpp (working copy)
+@@ -63,7 +63,7 @@
+ Preferences::init_cardsorder()
+ {
+ Gtk::VBox* vbox = this->add_group_vbox("cards order");
+- vbox->set_border_width(2 ex);
++ vbox->set_border_width(2 EX);
+
+ { // the cards
+ Gtk::Table* table
+Index: src/misc/setting.cpp
+===================================================================
+--- misc/setting.cpp (revision 1647)
++++ misc/setting.cpp (working copy)
+@@ -223,6 +223,7 @@
+
+ this->set(AUTOMATIC_SAVINGS, true);
+ this->set(SAVE_PARTY_CHANGES, true);
++ this->set(ADDITIONAL_PARTY_SETTINGS, false);
+
+
+ this->set(LANGUAGE, "");
+@@ -1146,6 +1147,8 @@
+ return true;
+ case SAVE_PARTY_CHANGES:
+ return (*this)(AUTOMATIC_SAVINGS);
++ case ADDITIONAL_PARTY_SETTINGS:
++ return true;
+ case SHOW_SPLASH_SCREEN:
+ return true;
+ case SPLASH_SCREEN_TRANSPARENT:
+@@ -3200,6 +3203,8 @@
+ return "automatic savings";
+ case Setting::SAVE_PARTY_CHANGES:
+ return "save party changes";
++ case Setting::ADDITIONAL_PARTY_SETTINGS:
++ return "additional party settings";
+ case Setting::SHOW_SPLASH_SCREEN:
+ return "show splash screen";
+ case Setting::SPLASH_SCREEN_TRANSPARENT:
+Index: src/misc/setting.h
+===================================================================
+--- misc/setting.h (revision 1647)
++++ misc/setting.h (working copy)
+@@ -63,6 +63,7 @@
+ // save nothing (automatically)
+ AUTOMATIC_SAVINGS = BOOL_FIRST,
+ SAVE_PARTY_CHANGES,
++ ADDITIONAL_PARTY_SETTINGS,
+ SHOW_SPLASH_SCREEN,
+ SPLASH_SCREEN_TRANSPARENT,
+ SHOW_BUG_REPORT_BUTTON_IN_GAME_FINISHED_WINDOW,
+--- ui/gtkmm/dokolounge/lounge.cpp.orig 2013-12-07 14:04:22.000000000 +0100
++++ ui/gtkmm/dokolounge/lounge.cpp 2014-10-01 22:08:18.939094067 +0200
+@@ -238,7 +238,7 @@
+ ::setting(Setting::DOKOLOUNGE_NAME))
+ + "</b>");
+ //this->name->set_markup("<b><big>Name</big></b>");
+- this->get_vbox()->pack_start(*this->name, Gtk::PACK_SHRINK, 2 ex);
++ this->get_vbox()->pack_start(*this->name, Gtk::PACK_SHRINK, 2 EX);
+ } // name
+ { // buttons
+ Gtk::HBox* box = Gtk::manage(new Gtk::HBox(true, 0));
+--- ui/gtkmm/ui.init.cpp.orig 2013-12-07 14:04:22.000000000 +0100
++++ ui/gtkmm/ui.init.cpp 2014-10-01 22:09:32.630089195 +0200
+@@ -358,11 +358,11 @@
+ int const width_hint = static_cast<int>(7 * this->cards->height());
+ int const height_hint = static_cast<int>(6 * this->cards->height());
+ int const width = std::min(width_hint,
+- Gdk::Screen::get_default()->get_width() - 2 em);
++ Gdk::Screen::get_default()->get_width() - 2 EM);
+ int const height = std::min(height_hint,
+- Gdk::Screen::get_default()->get_height() - 2 ex);
++ Gdk::Screen::get_default()->get_height() - 2 EX);
+ this->main_window->set_default_size(width, height);
+- //this->main_window->set_default_size(width_hint - 1 em, height_hint - 1 ex);
++ //this->main_window->set_default_size(width_hint - 1 em, height_hint - 1 EX);
+ } // set the size of the main window
+
+ Gtk::Window::set_auto_startup_notification(true);
+--- ui/gtkmm/game_summary.cpp.orig 2013-12-07 14:04:22.000000000 +0100
++++ ui/gtkmm/game_summary.cpp 2014-10-01 22:10:09.284076508 +0200
+@@ -115,14 +115,14 @@
+ void
+ GameSummary::init()
+ {
+- this->set_border_width(1 em);
+- this->set_spacing(1 em);
++ this->set_border_width(1 EM);
++ this->set_spacing(1 EM);
+
+ { // left column
+ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox());
+
+- vbox->set_border_width(1 ex);
+- vbox->set_spacing(1 ex);
++ vbox->set_border_width(1 EX);
++ vbox->set_spacing(1 EX);
+
+ this->add(*vbox);
+
+@@ -192,7 +192,7 @@
+ = Gtk::manage(new Gtk::Alignment(Gtk::ALIGN_CENTER,
+ Gtk::ALIGN_CENTER,
+ 0, 1));
+- alignment->set_border_width(1 ex);
++ alignment->set_border_width(1 EX);
+ alignment->add(*this->bock_triggers_treeview);
+ vbox->pack_start(*alignment, false, true);
+ } // bock triggers
+@@ -201,8 +201,8 @@
+ { // right column
+ Gtk::VBox* vbox = Gtk::manage(new Gtk::VBox());
+
+- vbox->set_border_width(1 ex);
+- vbox->set_spacing(1 ex);
++ vbox->set_border_width(1 EX);
++ vbox->set_spacing(1 EX);
+
+ this->add(*vbox);
+