aboutsummaryrefslogtreecommitdiffstats
path: root/games/freedoko
diff options
context:
space:
mode:
authorkwm <kwm@FreeBSD.org>2014-11-19 19:49:04 +0800
committerkwm <kwm@FreeBSD.org>2014-11-19 19:49:04 +0800
commitbe884cd42990f2e755c2c06bc38c8042cb8b0325 (patch)
tree1ad98a4e8faecd0e2fa9ac2c18e65da4cf89c236 /games/freedoko
parent1c38992aaca771dc7aab7ae768e5753c6381ecd3 (diff)
downloadfreebsd-ports-gnome-be884cd42990f2e755c2c06bc38c8042cb8b0325.tar.gz
freebsd-ports-gnome-be884cd42990f2e755c2c06bc38c8042cb8b0325.tar.zst
freebsd-ports-gnome-be884cd42990f2e755c2c06bc38c8042cb8b0325.zip
The FreeBSD GNOME team proudly presents GNOME 3.14 and Cinnamon 2.2.
Gnome 3.14.1 and Cinnamon 2.2.16 are supported on FreeBSD 9.3-RELEASE and up. This commit removes the old GNOME 2 desktop, bindings and some ports that can't be compiled. A few ports where updated to more recent versions to allow them to compile with this update. Apart from updating ports to newer versions GDM is more integrated with gnome-shell now, and handles several things for the GNOME desktop such as screen locking. If you want to use GNOME 3 via startx, you will have to add your own lock screen/screensaver. For example xscreensaver can be used for sessions started without GDM. Shell Extensions can be installed via https://extensions.gnome.org/ , we have ported a few that can't be installed via this way. The old gnome-utils and gnome-games ports where split up into single ports and where converted to meta-ports. gnome-terminal requires a UTF-8 locale to run, gdm handles this already, but if you use startx you need to do this yourself. Upgrade instructions: Delete the old and conflicting packages: # pkg delete clutter gnome-utils gnome-panel gnome-keyring vala-vapigen \ guile gcalctool gnome-media libgnomekbd # pkg delete gnome-screensaver gnome-applets bug-buddy evolution-exchange \ evolution-webcal gnome-system-tools seahorse-plugins gnome-control-center For package users the following lines will be enough: # pkg upgrade # pkg install gnome3 For ports users should do the following: # portmaster -a # portmaster x11/gnome3 We are currently aware of two issues. The first issue is a bug in the file monitoring code in the glib20 port. This bug causes glib programs to crash when files in a monitored directory are added or removed. Upstream is aware of the problem, but since the problem is quite complex there is no solution yet. This problem isn't restricted to BSD. The second issue is that on certain video cards totem will display a purple/pink overlay on the video. It not clear yet where the issues comes from. Major thanks goes to Gustau Perez for being a driving force behind getting GNOME 3 up to speed again. Also thanks to Antoine Brodin for running the exp-runs. This update was also made possible by: Joe Maloney Kris Moore Beeblebrox Ryan Lortie Antoine Jacoutot and everyone I missed
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);
+