summaryrefslogtreecommitdiff
path: root/gtkgame.c
diff options
context:
space:
mode:
authorRuss Allbery <rra@debian.org>2017-12-20 21:48:48 -0800
committerRuss Allbery <rra@debian.org>2017-12-20 21:48:48 -0800
commit89adbd59353dd3a0944de2c86288976329f2b1dc (patch)
tree050c4b8b379636dda63d2e9290df797cb3ec2d7a /gtkgame.c
parenta92a560637b87da633f44af0049f55e419a0dd05 (diff)
New upstream version 1.06.001
Diffstat (limited to 'gtkgame.c')
-rw-r--r--gtkgame.c512
1 files changed, 449 insertions, 63 deletions
diff --git a/gtkgame.c b/gtkgame.c
index b4f47ab..8efccfe 100644
--- a/gtkgame.c
+++ b/gtkgame.c
@@ -16,12 +16,11 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id: gtkgame.c,v 1.900 2016/05/14 22:28:32 plm Exp $
+ * $Id: gtkgame.c,v 1.917 2017/11/07 22:29:56 plm Exp $
*/
#include "config.h"
#include "gnubgmodule.h"
-#include "gtklocdefs.h"
#include "gtkuidefs.h"
#include <glib.h>
@@ -857,7 +856,6 @@ extern void
GTKFreeze(void)
{
- GL_Freeze();
frozen = TRUE;
}
@@ -865,7 +863,6 @@ extern void
GTKThaw(void)
{
- GL_Thaw();
frozen = FALSE;
/* Make sure analysis window is correct */
if (plLastMove)
@@ -1034,7 +1031,11 @@ SetAnnotation(moverecord * pmr)
fMoveOld = ms.fMove;
fTurnOld = ms.fTurn;
+#if GTK_CHECK_VERSION(3,0,0)
+ pwAnalysis = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwAnalysis = gtk_vbox_new(FALSE, 0);
+#endif
pwBox = gtk_table_new(2, 3, FALSE);
gtk_box_pack_start(GTK_BOX(pwAnalysis), pwBox, FALSE, FALSE, 4);
@@ -1049,7 +1050,7 @@ SetAnnotation(moverecord * pmr)
GetMatchStateCubeInfo(&ci, &ms);
if (GetDPEq(NULL, NULL, &ci)) {
- gtk_table_attach_defaults(GTK_TABLE(pwBox), gtk_label_new(_("Didn't double")), 0, 1, 0, 1);
+ gtk_table_attach_defaults(GTK_TABLE(pwBox), gtk_label_new(pmr->stCube == SKILL_NONE ? "" : _("Didn't double")), 0, 1, 0, 1);
gtk_table_attach_defaults(GTK_TABLE(pwBox), skill_label(pmr->stCube), 0, 1, 1, 2);
}
@@ -1124,9 +1125,14 @@ SetAnnotation(moverecord * pmr)
dt = DoubleType(ms.fDoubled, ms.fMove, ms.fTurn);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwAnalysis = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ pwBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwAnalysis = gtk_vbox_new(FALSE, 0);
+ pwBox = gtk_vbox_new(FALSE, 0);
+#endif
- pwBox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(pwBox), gtk_label_new(Q_(aszDoubleTypes[dt])), FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(pwBox), skill_label(pmr->stCube), FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(pwAnalysis), pwBox, FALSE, FALSE, 0);
@@ -1148,9 +1154,14 @@ SetAnnotation(moverecord * pmr)
tt = (taketype) DoubleType(ms.fDoubled, ms.fMove, ms.fTurn);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwAnalysis = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+ pwBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwAnalysis = gtk_vbox_new(FALSE, 0);
-
pwBox = gtk_vbox_new(FALSE, 0);
+#endif
+
gtk_box_pack_start(GTK_BOX(pwBox),
gtk_label_new(pmr->mt == MOVE_TAKE ? _("Take") : _("Drop")), FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(pwBox), skill_label(pmr->stCube), FALSE, FALSE, 2);
@@ -1167,7 +1178,11 @@ SetAnnotation(moverecord * pmr)
break;
case MOVE_RESIGN:
+#if GTK_CHECK_VERSION(3,0,0)
+ pwAnalysis = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwAnalysis = gtk_vbox_new(FALSE, 0);
+#endif
/* equities for resign */
@@ -1176,7 +1191,11 @@ SetAnnotation(moverecord * pmr)
/* skill for resignation */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwBox), gtk_label_new(_("Resign")), FALSE, FALSE, 2);
pwAlign = gtk_alignment_new(0.5f, 0.5f, 0.0f, 0.0f);
@@ -1186,7 +1205,11 @@ SetAnnotation(moverecord * pmr)
/* skill for accept */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwBox), gtk_label_new(_("Accept")), FALSE, FALSE, 2);
pwAlign = gtk_alignment_new(0.5f, 0.5f, 0.0f, 0.0f);
@@ -1290,6 +1313,7 @@ SwapBoardToPanel(int ToPanel, int updateEvents)
gtk_widget_hide(pwGameBox);
gtk_paned_set_position(GTK_PANED(hpaned), allocation.width - panelSize);
+#if ! GTK_CHECK_VERSION(3,0,0)
{ /* Hack to sort out widget positions - may be removed if works in later version of gtk */
GtkAllocation temp = allocation;
temp.height++;
@@ -1297,6 +1321,7 @@ SwapBoardToPanel(int ToPanel, int updateEvents)
temp.height--;
gtk_widget_size_allocate(pwMain, &temp);
}
+#endif
} else {
/* Need to hide these, as handle box seems to be buggy and gets confused */
gtk_widget_hide(gtk_widget_get_parent(pwMenuBar));
@@ -1317,6 +1342,7 @@ SwapBoardToPanel(int ToPanel, int updateEvents)
}
}
+#if ! GTK_CHECK_VERSION(3,0,0)
static void
MainSize(GtkWidget * pw, GtkRequisition * preq, gpointer p)
{
@@ -1339,7 +1365,7 @@ MainSize(GtkWidget * pw, GtkRequisition * preq, gpointer p)
else
gtk_paned_set_position(GTK_PANED(hpaned), preq->width - panelSize);
}
-
+#endif
#if !defined(USE_GTKUIMANAGER)
static gchar *
@@ -1426,7 +1452,7 @@ static void
CopyAsGOL(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
{
- UserCommand("export position gol2clipboard");
+ UserCommand("export position bgo2clipboard");
}
@@ -1602,11 +1628,7 @@ SetSwitchModeMenuText(void)
text = _("Switch to 3D view");
else
text = _("Switch to 2D view");
-#if defined(USE_GTKUIMANAGER)
gtk_label_set_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(pMenuItem))), text);
-#else
- gtk_label_set_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(pMenuItem))), text);
-#endif
gtk_widget_set_sensitive(pMenuItem, gtk_gl_init_success);
}
@@ -2034,7 +2056,11 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
if (pfOK)
*pfOK = FALSE;
+#if GTK_CHECK_VERSION(3,0,0)
+ pwEval = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwEval = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pwEval), 8);
pew = malloc(sizeof *pew);
@@ -2050,7 +2076,11 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
pwFrame = gtk_frame_new(_("Predefined settings"));
gtk_container_add(GTK_CONTAINER(pwev), pwFrame);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
+#else
pw2 = gtk_vbox_new(FALSE, 8);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame), pw2);
gtk_container_set_border_width(GTK_CONTAINER(pw2), 8);
@@ -2060,7 +2090,7 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
gtk_widget_set_tooltip_text(pwev,
_("Select a predefined setting, ranging from "
- "beginner's play to the grandmaster setting " "that will test your patience"));
+ "beginner's play to the 4ply setting."));
pew->pwOptionMenu = gtk_combo_box_text_new();
@@ -2079,7 +2109,11 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
pwFrame = gtk_frame_new(_("User defined settings"));
gtk_container_add(GTK_CONTAINER(pwEval), pwFrame);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
+#else
pw2 = gtk_vbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw2), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw2);
@@ -2093,12 +2127,16 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
_("Specify how many rolls GNU Backgammon should "
"lookahead. Each ply costs approximately a factor "
"of 21 in computational time. Also note that "
- "2-ply is equivalent to Snowie's 3-ply setting."));
+ "2-ply is equivalent to Snowie and XG's 3-ply setting."));
pwFrame2 = gtk_frame_new(_("Lookahead"));
gtk_container_add(GTK_CONTAINER(pwev), pwFrame2);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pw = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame2), pw);
pew->padjPlies = GTK_ADJUSTMENT(gtk_adjustment_new(pec->nPlies, 0, 7, 1, 1, 0));
@@ -2118,7 +2156,7 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
_("Instruct GNU Backgammon to use a set of neural networks "
"just to prune away move candidates within a deeper ply search. "
"This increases the speed considerably at a negligible cost in playing strength. "
- "It is recommended to enable this option"));
+ "It is recommended to enable this option."));
/* cubeful */
@@ -2143,7 +2181,7 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
"cubeful evaluations for cube decisions. "
"Disabling this option will make GNU Backgammon "
"use cubeless evaluations in the interval nodes "
- "of higher ply evaluations. It is recommended " "to enable this option"));
+ "of higher ply evaluations. It is recommended " "to enable this option."));
/* noise */
@@ -2154,22 +2192,29 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
gtk_widget_set_tooltip_text(pwev,
_("You can use this option to introduce noise "
"or errors in the evaluations. This is useful for "
- "introducing levels below 0-ply. The lower rated "
- "bots (e.g., GGotter) on the GamesGrid backgammon "
- "server uses this technique. "
+ "introducing levels below 0-ply. The weaker levels "
+ "(beginner to advanced) use this technique. "
"The introduced noise can be "
"deterministic, i.e., always the same noise for "
- "the same position, or it can be random"));
+ "the same position, or it can be random."));
pwFrame2 = gtk_frame_new(_("Noise"));
gtk_container_add(GTK_CONTAINER(pwev), pwFrame2);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pw3 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame2), pw3);
pew->padjNoise = GTK_ADJUSTMENT(gtk_adjustment_new(pec->rNoise, 0, 1, 0.001, 0.001, 0.0));
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pw = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw3), pw);
gtk_container_add(GTK_CONTAINER(pw), gtk_label_new(_("Noise:")));
gtk_container_add(GTK_CONTAINER(pw), gtk_spin_button_new(pew->padjNoise, 0.001, 3));
@@ -2199,11 +2244,11 @@ EvalWidget(evalcontext * pec, movefilter * pmf, int *pfOK, const int fMoveFilter
gtk_widget_set_tooltip_text(pwev,
_("GNU Backgammon will evaluate all moves at "
"0-ply. The move filter controls how many "
- "moves to be evaluted at higher plies. "
+ "moves will be evaluated at higher plies. "
"A \"smaller\" filter will be faster, but "
"GNU Backgammon may not find the best move. "
"Power users may set up their own filters "
- "by clicking on the [Modify] button"));
+ "by clicking on the [Modify] button."));
} else
pew->pwMoveFilter = NULL;
@@ -2341,7 +2386,12 @@ ShowDetailedAnalysis(GtkWidget * button, AnalysisDetails * pDetails)
DT_INFO, button, DIALOG_FLAG_MODAL | DIALOG_FLAG_CLOSEBUTTON,
G_CALLBACK(DetailedAnalysisOK), pDetails);
+#if GTK_CHECK_VERSION(3,0,0)
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hbox = gtk_hbox_new(FALSE, 0);
+#endif
+
gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), hbox);
pwFrame = gtk_frame_new(_("Chequer play"));
@@ -2356,7 +2406,11 @@ ShowDetailedAnalysis(GtkWidget * button, AnalysisDetails * pDetails)
gtk_box_pack_start(GTK_BOX(hbox), pwFrame, TRUE, TRUE, 0);
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwvbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwvbox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame), pwvbox);
gtk_box_pack_start(GTK_BOX(pwvbox),
@@ -2395,18 +2449,30 @@ AddLevelSettings(GtkWidget * pwFrame, AnalysisDetails * pAnalDetails)
GtkWidget *vbox, *hbox, *pw2, *pwDetails, *vboxSpacer;
int i;
+#if GTK_CHECK_VERSION(3,0,0)
+ vboxSpacer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vboxSpacer = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(vboxSpacer), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), vboxSpacer);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(vboxSpacer), vbox);
/*
* Frame with prefined settings
*/
+#if GTK_CHECK_VERSION(3,0,0)
+ pw2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
+#else
pw2 = gtk_vbox_new(FALSE, 4);
+#endif
gtk_box_pack_start(GTK_BOX(vbox), pw2, FALSE, FALSE, 0);
/* option menu with selection of predefined settings */
@@ -2421,7 +2487,11 @@ AddLevelSettings(GtkWidget * pwFrame, AnalysisDetails * pAnalDetails)
pwDetails = gtk_button_new_with_label(_("Advanced Settings..."));
g_signal_connect(G_OBJECT(pwDetails), "clicked", G_CALLBACK(ShowDetailedAnalysis), (void *) pAnalDetails);
+#if GTK_CHECK_VERSION(3,0,0)
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(hbox), pwDetails, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 4);
UpdateSummaryEvalMenuSetting(pAnalDetails);
@@ -2575,22 +2645,42 @@ SetAnalysis(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
pwDialog = GTKCreateDialog(_("GNU Backgammon - Analysis Settings"),
DT_QUESTION, NULL, DIALOG_FLAG_MODAL, G_CALLBACK(AnalysisOK), &aw);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwPage = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 6);
+#else
pwPage = gtk_hbox_new(FALSE, 6);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pwPage), 8);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox1 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwPage), vbox1, TRUE, TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ hboxTop = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hboxTop = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(vbox1), hboxTop, TRUE, TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ hboxBottom = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hboxBottom = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(vbox1), hboxBottom, TRUE, TRUE, 0);
pwFrame = gtk_frame_new(_("Analysis"));
gtk_box_pack_start(GTK_BOX(hboxTop), pwFrame, TRUE, TRUE, 0);
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox2 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame), vbox2);
aw.pwMoves = gtk_check_button_new_with_label(_("Chequer play"));
@@ -2629,7 +2719,7 @@ SetAnalysis(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
for (i = 0; i < 3; i++) {
aw.apadjSkill[i] = GTK_ADJUSTMENT(gtk_adjustment_new(1, 0, 1, 0.01, 0.05, 0));
- pwSpin = gtk_spin_button_new(GTK_ADJUSTMENT(aw.apadjSkill[i]), 1, 2);
+ pwSpin = gtk_spin_button_new(GTK_ADJUSTMENT(aw.apadjSkill[i]), 1, 3);
gtk_table_attach(GTK_TABLE(pwTable), pwSpin, 1, 2, i, i + 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(pwSpin), TRUE);
@@ -2663,28 +2753,48 @@ SetAnalysis(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
pwFrame = gtk_frame_new(_("Analysis Level"));
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox1 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(hboxTop), vbox1, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox1), pwFrame, FALSE, FALSE, 0);
pAnalDetailSettings1 = CreateEvalSettings(pwFrame, _("Analysis settings"),
&aw.esChequer.ec, (movefilter *) & aw.aamf, &aw.esCube.ec, NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_box_pack_start(GTK_BOX(pwPage), gtk_separator_new(GTK_ORIENTATION_VERTICAL), TRUE, TRUE, 0);
+#else
gtk_box_pack_start(GTK_BOX(pwPage), gtk_vseparator_new(), TRUE, TRUE, 0);
+#endif
pwFrame = gtk_frame_new(_("Eval Hint/Tutor Level"));
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox2 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(vbox2), pwFrame, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pwPage), vbox2, FALSE, FALSE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
vbox1 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame), vbox1);
aw.pwHintSame = gtk_check_button_new_with_label(_("Same as analysis"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(aw.pwHintSame), fEvalSameAsAnalysis);
g_signal_connect(G_OBJECT(aw.pwHintSame), "toggled", G_CALLBACK(HintSameToggled), &aw);
+#if GTK_CHECK_VERSION(3,0,0)
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(hbox), aw.pwHintSame, FALSE, FALSE, 8);
gtk_box_pack_start(GTK_BOX(vbox1), hbox, FALSE, FALSE, 0);
@@ -2734,10 +2844,18 @@ PlayersPage(playerswidget * ppw, int i, const char *title)
pwFrame = gtk_frame_new(title);
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwFrame), pwVBox);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pw = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 4);
gtk_container_add(GTK_CONTAINER(pwVBox), pw);
gtk_container_add(GTK_CONTAINER(pw), gtk_label_new(_("Default Name:")));
@@ -2762,7 +2880,11 @@ PlayersPage(playerswidget * ppw, int i, const char *title)
ppw->apwRadio[i][2] =
gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(ppw->apwRadio[i][0]),
_("External")));
+#if GTK_CHECK_VERSION(3,0,0)
+ ppw->apwExternal[i] = pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
ppw->apwExternal[i] = pw = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 4);
gtk_widget_set_sensitive(pw, ap[i].pt == PLAYER_EXTERNAL);
gtk_container_add(GTK_CONTAINER(pwVBox), pw);
@@ -2819,7 +2941,13 @@ SetPlayers(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
GTKCreateDialog(_("GNU Backgammon - Players"), DT_QUESTION,
NULL, DIALOG_FLAG_MODAL, G_CALLBACK(PlayersOK), &plw);
- gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwHBox = gtk_hbox_new(FALSE, 0));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
+
+ gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwHBox);
gtk_box_pack_start(GTK_BOX(pwHBox), PlayersPage(&plw, 0, _("Player 0")), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pwHBox), PlayersPage(&plw, 1, _("Player 1")), FALSE, FALSE, 0);
PlayerTypeToggled(NULL, &plw);
@@ -2997,7 +3125,11 @@ GetFlagWidget(char *language, char *langCode, const char *flagfilename)
gtk_widget_modify_bg(eb2, GTK_STATE_INSENSITIVE, &gtk_widget_get_style(pwMain)->bg[GTK_STATE_NORMAL]);
gtk_container_add(GTK_CONTAINER(frame), eb2);
+#if GTK_CHECK_VERSION(3,0,0)
+ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
+#else
vbox = gtk_vbox_new(FALSE, 5);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
gtk_container_add(GTK_CONTAINER(eb2), vbox);
@@ -3068,7 +3200,11 @@ AddLangWidgets(GtkWidget * cont)
{
int i, numLangs;
GtkWidget *pwVbox, *pwHbox, *selLang = NULL;
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVbox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(cont), pwVbox);
pwLangRadio1 = gtk_radio_button_new_with_label(NULL, "");
@@ -3094,7 +3230,11 @@ AddLangWidgets(GtkWidget * cont)
if (!StrCaseCmp(szLang, aaszLang[i + 1][1]))
selLang = flag;
}
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwHbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwVbox), pwHbox, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pwHbox), pwLangTable, FALSE, FALSE, 20);
@@ -3138,7 +3278,7 @@ SetLanguage(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(w))
static void
ReportBug(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pwEvent))
{
- OpenURL("http://savannah.gnu.org/bugs/?func=additem&group=gnubg");
+ OpenURL("https://savannah.gnu.org/bugs/?func=additem&group=gnubg");
}
#if defined(USE_GTKUIMANAGER)
@@ -3165,7 +3305,7 @@ static GtkActionEntry actionEntries[] = {
{"CopyAsMenuAction", NULL, N_("Copy as"), NULL, NULL, G_CALLBACK(NULL)},
{"CopyPosAsAsciiAction", NULL, N_("Position as ASCII"), NULL, NULL, G_CALLBACK(CommandCopy)},
- {"CopyAsGammOnLineAction", NULL, N_("GammOnLine (HTML)"), NULL, NULL, G_CALLBACK(CopyAsGOL)},
+ {"CopyAsGammOnLineAction", NULL, N_("BGonline (HTML)"), NULL, NULL, G_CALLBACK(CopyAsGOL)},
{"PasteIDAction", GTK_STOCK_PASTE, N_("_Paste ID"), "<control>V", NULL, G_CALLBACK(PasteIDs)},
@@ -3360,7 +3500,7 @@ static GtkItemFactoryEntry aife[] = {
{N_("/_Edit/Copy as"), NULL, NULL, 0, "<Branch>", NULL},
{N_("/_Edit/Copy as/Position as ASCII"), NULL,
CommandCopy, 0, NULL, NULL},
- {N_("/_Edit/Copy as/GammOnLine (HTML)"), NULL,
+ {N_("/_Edit/Copy as/BGonline (HTML)"), NULL,
CopyAsGOL, 0, NULL, NULL},
{N_("/_Edit/_Paste ID"), "<control>V", PasteIDs, 0,
@@ -3661,7 +3801,13 @@ CreateMainWindow(void)
gtk_drag_dest_set(pwMain, GTK_DEST_DEFAULT_ALL, &fileDrop, 1, GDK_ACTION_DEFAULT);
g_signal_connect(G_OBJECT(pwMain), "drag_data_received", G_CALLBACK(FileDragDropped), NULL);
- gtk_container_add(GTK_CONTAINER(pwMain), pwVbox = gtk_vbox_new(FALSE, 0));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
+ pwVbox = gtk_vbox_new(FALSE, 0);
+#endif
+
+ gtk_container_add(GTK_CONTAINER(pwMain), pwVbox);
#if defined(USE_GTKUIMANAGER)
GError *error = NULL;
@@ -3711,7 +3857,12 @@ CreateMainWindow(void)
TRUE);
gtk_window_add_accel_group(GTK_WINDOW(pwMain), pagMain);
#endif
- gtk_box_pack_start(GTK_BOX(pwVbox), pwHandle = gtk_handle_box_new(), FALSE, FALSE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHandle = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
+ pwHandle = gtk_vbox_new(FALSE, 0);
+#endif
+ gtk_box_pack_start(GTK_BOX(pwVbox), pwHandle, FALSE, FALSE, 0);
#if defined(USE_GTKUIMANAGER)
pwMenuBar = gtk_ui_manager_get_widget(puim, "/MainMenu");
gtk_container_add(GTK_CONTAINER(pwHandle), pwMenuBar);
@@ -3720,13 +3871,28 @@ CreateMainWindow(void)
gtk_container_add(GTK_CONTAINER(pwHandle), pwMenuBar = gtk_item_factory_get_widget(pif, "<main>"));
#endif
- gtk_box_pack_start(GTK_BOX(pwVbox), pwHandle = gtk_handle_box_new(), FALSE, TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHandle = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
+ pwHandle = gtk_vbox_new(FALSE, 0);
+#endif
+ gtk_box_pack_start(GTK_BOX(pwVbox), pwHandle, FALSE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(pwHandle), pwToolbar = ToolbarNew());
- gtk_box_pack_start(GTK_BOX(pwVbox), pwGameBox = gtk_hbox_new(FALSE, 0), TRUE, TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwGameBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwGameBox = gtk_hbox_new(FALSE, 0);
+#endif
+ gtk_box_pack_start(GTK_BOX(pwVbox), pwGameBox, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(pwVbox), hpaned = gtk_hpaned_new(), TRUE, TRUE, 0);
- gtk_paned_add1(GTK_PANED(hpaned), pwPanelGameBox = gtk_hbox_new(FALSE, 0));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwPanelGameBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwPanelGameBox = gtk_hbox_new(FALSE, 0);
+#endif
+ gtk_paned_add1(GTK_PANED(hpaned), pwPanelGameBox);
gtk_container_add(GTK_CONTAINER(pwPanelGameBox), pwEventBox = gtk_event_box_new());
gtk_event_box_set_visible_window(GTK_EVENT_BOX(pwEventBox), FALSE);
@@ -3734,9 +3900,18 @@ CreateMainWindow(void)
g_signal_connect(G_OBJECT(pwEventBox), "button-press-event", G_CALLBACK(board_button_press),
BOARD(pwBoard)->board_data);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwPanelHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwPanelHbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_paned_pack2(GTK_PANED(hpaned), pwPanelHbox, FALSE, FALSE);
- gtk_box_pack_start(GTK_BOX(pwPanelHbox), pwPanelVbox = gtk_vbox_new(FALSE, 1), TRUE, TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwPanelVbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 1);
+#else
+ pwPanelVbox = gtk_vbox_new(FALSE, 1);
+#endif
+ gtk_box_pack_start(GTK_BOX(pwPanelHbox), pwPanelVbox, TRUE, TRUE, 0);
/* Do this so that the menu is packed now instead of in the idle loop */
#if defined(USE_GTKUIMANAGER)
@@ -3747,7 +3922,12 @@ CreateMainWindow(void)
/* Status bar */
- gtk_box_pack_end(GTK_BOX(pwVbox), pwHbox = gtk_hbox_new(FALSE, 0), FALSE, FALSE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwHbox = gtk_hbox_new(FALSE, 0);
+#endif
+ gtk_box_pack_end(GTK_BOX(pwVbox), pwHbox, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(pwHbox), pwStatus = gtk_statusbar_new(), TRUE, TRUE, 0);
@@ -3774,7 +3954,11 @@ CreateMainWindow(void)
pwIDBox = gtk_event_box_new();
gtk_box_pack_start(GTK_BOX(pwHbox), pwIDBox, FALSE, FALSE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwHbox2 = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwIDBox), pwHbox2);
gtk_box_pack_start(GTK_BOX(pwHbox2), gtk_label_new("GNUbg ID:"), FALSE, FALSE, 0);
@@ -3786,7 +3970,7 @@ CreateMainWindow(void)
gtk_container_set_border_width(GTK_CONTAINER(pwFrame), 2);
gtk_widget_set_tooltip_text(pwIDBox, _("This is a unique id for this position."
- " Ctrl+C copies the current ID and Ctrl+V pastes an ID from the clipboard"));
+ " Ctrl+C copies the current ID and Ctrl+V pastes an ID from the clipboard."));
g_signal_connect(G_OBJECT(pwIDBox), "button-press-event", G_CALLBACK(ContextMenu), idMenu);
pwStop = gtk_event_box_new();
@@ -3802,6 +3986,9 @@ CreateMainWindow(void)
gtk_box_pack_start(GTK_BOX(pwHbox), pwProgress = gtk_progress_bar_new(), FALSE, FALSE, 0);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(pwProgress), 0.0);
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_progress_bar_set_show_text(GTK_PROGRESS_BAR(pwProgress), TRUE);
+#endif
/* This is a kludge to work around an ugly bug in GTK: we don't want to
* show text in the progress bar yet, but we might later. So we have to
* pretend we want text in order to be sized correctly, and then set the
@@ -3809,7 +3996,9 @@ CreateMainWindow(void)
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(pwProgress), " ");
g_signal_connect(G_OBJECT(pwMain), "configure_event", G_CALLBACK(configure_event), NULL);
+#if ! GTK_CHECK_VERSION(3,0,0)
g_signal_connect(G_OBJECT(pwMain), "size-request", G_CALLBACK(MainSize), NULL);
+#endif
g_signal_connect(G_OBJECT(pwMain), "delete_event", G_CALLBACK(main_delete), NULL);
g_signal_connect(G_OBJECT(pwMain), "destroy", G_CALLBACK(gtk_main_quit), NULL);
}
@@ -3851,6 +4040,24 @@ gnubg_set_default_icon(void)
#endif
}
+static void
+ApplyDefaultCss(void)
+{
+ GtkCssProvider *cssProvider;
+ char *cssPath;
+
+ cssProvider = gtk_css_provider_new();
+ cssPath = BuildFilename("gnubg.css");
+ gtk_css_provider_load_from_path(cssProvider, cssPath, NULL);
+ gtk_style_context_add_provider_for_screen(gtk_window_get_screen(GTK_WINDOW(pwMain)),
+ GTK_STYLE_PROVIDER(cssProvider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+ g_free(cssPath);
+ if (cssProvider)
+ g_object_unref(G_OBJECT(cssProvider));
+}
+
extern void
InitGTK(int *argc, char ***argv)
{
@@ -3891,6 +4098,7 @@ InitGTK(int *argc, char ***argv)
gnubg_set_default_icon();
CreateMainWindow();
+ ApplyDefaultCss();
/*Create string for handling messages from output* functions */
output_str = g_string_new(NULL);
@@ -4035,9 +4243,9 @@ RunGTK(GtkWidget * pwSplash, char *commands, char *python_script, char *match)
if (python_script) {
#ifdef WIN32
- outputerrf(_("The MS windows GTK interface doesn't support the '-p' option. Use the cl interface instead"));
+ outputerrf(_("The Windows GTK interface does not support the '-p' option. Use the command-line interface instead."));
#else
-#if USE_PYTHON
+#if defined(USE_PYTHON)
g_idle_add(python_run_file, g_strdup(python_script));
#endif
#endif
@@ -4333,22 +4541,27 @@ ToolButtonPressed(GtkWidget * pw, newwidget * pnw)
extern int
edit_new(unsigned int length)
{
- matchstate ms;
+ matchstate lms;
- ms.anDice[0] = ms.anDice[1] = 0;
- ms.fTurn = ms.fMove = 1;
- ms.fResigned = 0;
- ms.fDoubled = 0;
- ms.fCubeOwner = -1;
- ms.fCrawford = FALSE;
- ms.fJacoby = fJacoby;
- ms.anScore[0] = ms.anScore[1] = 0;
- ms.nCube = 0;
- ms.gs = GAME_PLAYING;
+ lms.anDice[0] = ms.anDice[0];
+ lms.anDice[1] = ms.anDice[1];
+
+ lms.fTurn = lms.fMove = 1;
+ lms.fResigned = 0;
+ lms.fDoubled = 0;
+ if (ms.fCubeOwner == -1)
+ lms.fCubeOwner = ms.fCubeOwner;
+ else
+ lms.fCubeOwner = (ms.fTurn == 1 ? ms.fCubeOwner : !ms.fCubeOwner);
+ lms.fCrawford = FALSE;
+ lms.fJacoby = fJacoby;
+ lms.anScore[0] = lms.anScore[1] = 0;
+ lms.nCube = ms.nCube;
+ lms.gs = GAME_PLAYING;
- ms.nMatchTo = length;
+ lms.nMatchTo = length;
- CommandSetMatchID(MatchIDFromMatchState(&ms));
+ CommandSetMatchID(MatchIDFromMatchState(&lms));
return 0;
}
@@ -4370,7 +4583,11 @@ NewWidget(newwidget * pnw)
GtkWidget *pwVbox, *pwHbox, *pwLabel, *pwToolbar;
GtkWidget *pwButtons, *pwFrame, *pwVbox2;
GtkToolItem *pwToolButton;
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVbox = gtk_vbox_new(FALSE, 0);
+#endif
pwToolbar = gtk_toolbar_new();
toolbar_set_orientation(GTK_TOOLBAR(pwToolbar), GTK_ORIENTATION_HORIZONTAL);
@@ -4419,7 +4636,12 @@ NewWidget(newwidget * pnw)
}
pwFrame = gtk_frame_new(_("Match settings"));
+
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwHbox = gtk_hbox_new(FALSE, 0);
+#endif
pwLabel = gtk_label_new(_("Length:"));
gtk_label_set_justify(GTK_LABEL(pwLabel), GTK_JUSTIFY_RIGHT);
@@ -4435,8 +4657,13 @@ NewWidget(newwidget * pnw)
pwFrame = gtk_frame_new(_("Player settings"));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ pwVbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwHbox = gtk_hbox_new(FALSE, 0);
pwVbox2 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwHbox), pwVbox2);
@@ -4456,7 +4683,11 @@ NewWidget(newwidget * pnw)
g_signal_connect(G_OBJECT(pwButtons), "clicked", G_CALLBACK(SettingsPressed), NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVbox2 = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwHbox), pwVbox2);
@@ -4798,13 +5029,21 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
GtkWidget *pwHBox;
GtkWidget *pwTable, *pwFrame;
+#if GTK_CHECK_VERSION(3,0,0)
+ pwPage = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwPage = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pwPage), 8);
prpw->padjSeed = GTK_ADJUSTMENT(gtk_adjustment_new(prw->rcRollout.nSeed, 0, INT_MAX, 1, 1, 0));
prpw->padjTrials = GTK_ADJUSTMENT(gtk_adjustment_new(prw->rcRollout.nTrials, 1, 1296 * 1296, 36, 36, 0));
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pw = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwPage), pw);
gtk_container_add(GTK_CONTAINER(pw), gtk_label_new(_("Seed:")));
@@ -4816,7 +5055,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
pwFrame = gtk_frame_new(_("Truncation"));
gtk_container_add(GTK_CONTAINER(pwPage), pwFrame);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
pw = gtk_hbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw);
@@ -4825,7 +5068,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prpw->pwDoTrunc), prw->rcRollout.fDoTruncate);
g_signal_connect(G_OBJECT(prpw->pwDoTrunc), "toggled", G_CALLBACK(TruncEnableToggled), prw);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwAdjTruncPlies = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwAdjTruncPlies = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("Truncate at ply:")));
@@ -4836,7 +5083,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
pwFrame = gtk_frame_new(_("Evaluation for later plies"));
gtk_container_add(GTK_CONTAINER(pwPage), pwFrame);
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
pw = gtk_hbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw);
@@ -4845,7 +5096,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prw->prwGeneral->pwDoLate), prw->rcRollout.fLateEvals);
g_signal_connect(G_OBJECT(prw->prwGeneral->pwDoLate), "toggled", G_CALLBACK(LateEvalToggled), prw);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwAdjLatePlies = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwAdjLatePlies = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("Change eval after ply:")));
@@ -4856,7 +5111,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_container_add(GTK_CONTAINER(pwPage), pwFrame);
/* an hbox for the pane */
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
pw = gtk_hbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw);
@@ -4866,11 +5125,18 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
g_signal_connect(G_OBJECT(prw->prwGeneral->pwDoSTDStop), "toggled", G_CALLBACK(STDStopToggled), prw);
/* a vbox for the adjusters */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwv = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwv = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw), pwv);
-
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwAdjMinGames = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwAdjMinGames = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwv), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("Minimum Trials:")));
@@ -4880,7 +5146,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_container_add(GTK_CONTAINER(pwHBox), prpw->pwMinGames);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwAdjMaxError = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwAdjMaxError = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwv), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("Equity Standard Deviation:")));
@@ -4895,12 +5165,20 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_container_add(GTK_CONTAINER(pwPage), pwFrame);
/* an hbox for the frame */
+#if GTK_CHECK_VERSION(3,0,0)
+ pw = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
pw = gtk_hbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw);
/* a vbox for the check boxes */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwv = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwv = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw), pwv);
prpw->pwJsdDoStop = gtk_check_button_new_with_label(_("Enable Stop on JSD"));
@@ -4909,10 +5187,18 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
g_signal_connect(G_OBJECT(prw->prwGeneral->pwJsdDoStop), "toggled", G_CALLBACK(JsdStopToggled), prw);
/* a vbox for the adjusters */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwv = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwv = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pw), pwv);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwJsdAdjMinGames = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwJsdAdjMinGames = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwv), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("Minimum Trials:")));
@@ -4923,7 +5209,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
gtk_container_add(GTK_CONTAINER(pwHBox), prpw->pwJsdMinGames);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwJsdAdjLimit = pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
prpw->pwJsdAdjLimit = pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwv), pwHBox);
gtk_container_add(GTK_CONTAINER(pwHBox), gtk_label_new(_("JSDs from best choice")));
@@ -4935,7 +5225,11 @@ RolloutPageGeneral(rolloutpagegeneral * prpw, rolloutwidget * prw)
pwFrame = gtk_frame_new(_("Bearoff Truncation"));
gtk_container_add(GTK_CONTAINER(pwPage), pwFrame);
+#if GTK_CHECK_VERSION(3,0,0)
+ prpw->pwTruncBearoffOpts = pw = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
+#else
prpw->pwTruncBearoffOpts = pw = gtk_vbox_new(FALSE, 8);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pw), 8);
gtk_container_add(GTK_CONTAINER(pwFrame), pw);
@@ -5106,7 +5400,11 @@ SetRollouts(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pwIgnore))
gtk_notebook_append_page(GTK_NOTEBOOK(rw.RolloutNotebook),
RolloutPageGeneral(rw.prwGeneral, &rw), gtk_label_new(_("General Settings")));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_notebook_append_page(GTK_NOTEBOOK(rw.RolloutNotebook), pwVBox, gtk_label_new(_("Play settings")));
pwTable = gtk_table_new(3, 2, FALSE);
@@ -5119,7 +5417,7 @@ SetRollouts(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pwIgnore))
(GtkAttachOptions) 0, (GtkAttachOptions) 0, 4, 4);
rw.analysisDetails[2] = RolloutPage(rw.prpwPages[2], _("Later Play (0) "), TRUE, &rw.frame[1]);
gtk_table_attach(GTK_TABLE(pwTable), gtk_widget_get_parent(rw.analysisDetails[2]->pwSettingWidgets), 0, 1, 1, 2,
- (GtkAttachOptions) 0, (GtkAttachOptions) 0, 4, 4);
+ (GtkAttachOptions) 0, (GtkAttachOptions) 0, 4, 4);
rw.analysisDetails[3] = RolloutPage(rw.prpwPages[3], _("Later Play (1) "), TRUE, NULL);
gtk_table_attach(GTK_TABLE(pwTable), gtk_widget_get_parent(rw.analysisDetails[3]->pwSettingWidgets), 1, 2, 1, 2,
(GtkAttachOptions) 0, (GtkAttachOptions) 0, 4, 4);
@@ -5616,7 +5914,6 @@ GTKShowScoreSheet(void)
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkListStore *store;
- int numRows = 0;
char title[100];
listOLD *pl;
@@ -5627,14 +5924,22 @@ GTKShowScoreSheet(void)
strcat(title, _("Money Session"));
pwDialog = GTKCreateDialog(title, DT_INFO, NULL, DIALOG_FLAG_MODAL, NULL, NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pwBox), 8);
gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwBox);
gtk_container_set_border_width(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
hbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), hbox);
store = gtk_list_store_new(2, G_TYPE_INT, G_TYPE_INT);
@@ -5666,7 +5971,6 @@ GTKShowScoreSheet(void)
}
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter, 0, score[0], 1, score[1], -1);
- numRows++;
}
pwScrolled = gtk_scrolled_window_new(NULL, NULL);
@@ -5711,6 +6015,7 @@ GtkShowEngine(GtkWidget * parent)
szBuffer[1] = NULL;
EvalStatus(szBuffer[0]);
ShowList(szBuffer, _("Evaluation Engine"), parent);
+ g_free(szBuffer[0]);
}
extern void
@@ -5732,7 +6037,11 @@ GTKShowVersion(void)
gtk_box_pack_start(GTK_BOX(DialogArea(pwDialog, DA_MAIN)), image, FALSE, FALSE, 0);
/* Buttons on right side */
+#if GTK_CHECK_VERSION(3,0,0)
+ pwButtonBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwButtonBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(DialogArea(pwDialog, DA_MAIN)), pwButtonBox, FALSE, FALSE, 8);
gtk_box_pack_start(GTK_BOX(pwButtonBox), pwButton = gtk_button_new_with_label(_("Credits")), FALSE, FALSE, 8);
@@ -5772,19 +6081,31 @@ GTKShowBuildInfo(GtkWidget * UNUSED(pw), GtkWidget * pwParent)
const char *pch;
pwDialog = GTKCreateDialog(_("GNU Backgammon - Build Info"), DT_INFO, pwParent, DIALOG_FLAG_MODAL, NULL, NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_container_set_border_width(GTK_CONTAINER(pwBox), 8);
gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwBox);
gtk_box_pack_start(GTK_BOX(pwBox), SelectableLabel(pwDialog, "Version " VERSION_STRING), FALSE, FALSE, 4);
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_box_pack_start(GTK_BOX(pwBox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 4);
+#else
gtk_box_pack_start(GTK_BOX(pwBox), gtk_hseparator_new(), FALSE, FALSE, 4);
+#endif
while ((pch = GetBuildInfoString()))
gtk_box_pack_start(GTK_BOX(pwBox), pwPrompt = gtk_label_new(gettext(pch)), FALSE, FALSE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_box_pack_start(GTK_BOX(pwBox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 4);
+#else
gtk_box_pack_start(GTK_BOX(pwBox), gtk_hseparator_new(), FALSE, FALSE, 4);
+#endif
gtk_box_pack_start(GTK_BOX(pwBox), gtk_label_new(_(aszCOPYRIGHT)), FALSE, FALSE, 4);
@@ -5802,7 +6123,13 @@ static void
AddTitle(GtkWidget * pwBox, char *Title)
{
GtkRcStyle *ps = gtk_rc_style_new();
- GtkWidget *pwTitle = gtk_label_new(Title), *pwHBox = gtk_hbox_new(TRUE, 0);
+ GtkWidget *pwTitle = gtk_label_new(Title), *pwHBox;
+
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwBox), pwHBox, FALSE, FALSE, 4);
ps->font_desc = pango_font_description_new();
@@ -5861,22 +6188,38 @@ GTKCommandShowCredits(GtkWidget * UNUSED(pw), GtkWidget * pwParent)
pwDialog = GTKCreateDialog(_("GNU Backgammon - Credits"), DT_INFO, pwParent, DIALOG_FLAG_MODAL, NULL, NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwMainHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwMainHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwMainHBox);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwMainHBox), pwBox, FALSE, FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(pwBox), 8);
while (credit->Title) {
/* Two columns, so new hbox every-other one */
if (i / 2 == (i + 1) / 2) {
- pwHBox = gtk_hbox_new(TRUE, 0);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
+ pwHBox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwBox), pwHBox, TRUE, FALSE, 0);
}
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwHBox), pwVBox, FALSE, FALSE, 0);
AddTitle(pwVBox, _(credit->Title));
@@ -5887,12 +6230,20 @@ GTKCommandShowCredits(GtkWidget * UNUSED(pw), GtkWidget * pwParent)
ce++;
}
if (i == 1)
+#if GTK_CHECK_VERSION(3,0,0)
+ gtk_box_pack_start(GTK_BOX(pwBox), gtk_separator_new(GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 4);
+#else
gtk_box_pack_start(GTK_BOX(pwBox), gtk_hseparator_new(), FALSE, FALSE, 4);
+#endif
credit++;
i++;
}
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVBox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pwVBox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pwMainHBox), pwVBox, FALSE, FALSE, 0);
AddTitle(pwVBox, _("Special thanks"));
@@ -5920,10 +6271,13 @@ GTKCommandShowCredits(GtkWidget * UNUSED(pw), GtkWidget * pwParent)
gtk_container_set_border_width(GTK_CONTAINER(pwVBox), 8);
gtk_box_pack_start(GTK_BOX(pwVBox), pwScrolled, TRUE, TRUE, 0);
gtk_widget_set_size_request(pwScrolled, 150, -1);
+#if GTK_CHECK_VERSION(3, 8, 0)
+ gtk_container_add(GTK_CONTAINER(pwScrolled), treeview);
+#else
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(pwScrolled), treeview);
+#endif
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(pwScrolled), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
-
GTKRunDialog(pwDialog);
}
@@ -6653,7 +7007,11 @@ AddNavigation(GtkWidget * pvbox)
sprintf(sz, _("All games: %s %d, %s %d"), ap[0].szName, anFinalScore[0], ap[1].szName, anFinalScore[1]);
else
sprintf(sz, _("All games: %s, %s"), ap[0].szName, ap[1].szName);
+#if GTK_CHECK_VERSION(3,0,0)
+ phbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
phbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pvbox), phbox, FALSE, FALSE, 4);
pw = button_from_image(gtk_image_new_from_stock(GNUBG_STOCK_GO_PREV_GAME, GTK_ICON_SIZE_LARGE_TOOLBAR));
g_signal_connect(G_OBJECT(pw), "clicked", G_CALLBACK(StatsPreviousGame), box);
@@ -6807,7 +7165,11 @@ GTKDumpStatcontext(int game)
gtk_notebook_set_scrollable(GTK_NOTEBOOK(pwNotebook), TRUE);
gtk_notebook_popup_disable(GTK_NOTEBOOK(pwNotebook));
+#if GTK_CHECK_VERSION(3,0,0)
+ pvbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
+#else
pvbox = gtk_vbox_new(FALSE, 0);
+#endif
gtk_box_pack_start(GTK_BOX(pvbox), pwNotebook, TRUE, TRUE, 0);
gtk_notebook_append_page(GTK_NOTEBOOK(pwNotebook), statViews[FORMATGS_OVERALL] = CreateList(),
@@ -6855,7 +7217,7 @@ GTKDumpStatcontext(int game)
#endif
pwUsePanels = gtk_check_button_new_with_label(_("Split statistics into panels"));
- gtk_widget_set_tooltip_text(pwUsePanels, "Show data in a single list or split other several panels");
+ gtk_widget_set_tooltip_text(pwUsePanels, "Show data in a single list or split into several panels");
gtk_box_pack_start(GTK_BOX(pvbox), pwUsePanels, FALSE, FALSE, 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pwUsePanels), fGUIUseStatsPanel);
g_signal_connect(G_OBJECT(pwUsePanels), "toggled", G_CALLBACK(toggle_fGUIUseStatsPanel), NULL);
@@ -7119,9 +7481,19 @@ GTKShowCalibration(void)
/* FIXME should be modal but presently causes crash and/or killing of the main window */
pwDialog = GTKCreateDialog(_("GNU Backgammon - Speed estimate"), DT_QUESTION,
NULL, 0, G_CALLBACK(CalibrationOK), pwspin);
- gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwvbox = gtk_vbox_new(FALSE, 8));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwvbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 8);
+#else
+ pwvbox = gtk_vbox_new(FALSE, 8);
+#endif
+ gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwvbox);
gtk_container_set_border_width(GTK_CONTAINER(pwvbox), 8);
- gtk_container_add(GTK_CONTAINER(pwvbox), pwhbox = gtk_hbox_new(FALSE, 8));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
+ pwhbox = gtk_hbox_new(FALSE, 8);
+#endif
+ gtk_container_add(GTK_CONTAINER(pwvbox), pwhbox);
gtk_container_add(GTK_CONTAINER(pwhbox), pwenable = gtk_check_button_new_with_label(_("Speed recorded:")));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pwenable), rEvalsPerSec > 0);
@@ -7141,7 +7513,7 @@ GTKShowCalibration(void)
}
static gboolean
-CalibrationCancel(GtkObject * UNUSED(po), gpointer UNUSED(p))
+CalibrationCancel(GObject * UNUSED(po), gpointer UNUSED(p))
{
fInterrupt = TRUE;
@@ -7157,7 +7529,12 @@ GTKCalibrationStart(void)
pwDialog = GTKCreateDialog(_("GNU Backgammon - Calibration"), DT_INFO,
NULL, DIALOG_FLAG_MODAL | DIALOG_FLAG_NOTIDY, G_CALLBACK(CalibrationCancel), NULL);
- gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwhbox = gtk_hbox_new(FALSE, 8));
+#if GTK_CHECK_VERSION(3,0,0)
+ pwhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
+#else
+ pwhbox = gtk_hbox_new(FALSE, 8);
+#endif
+ gtk_container_add(GTK_CONTAINER(DialogArea(pwDialog, DA_MAIN)), pwhbox);
gtk_container_set_border_width(GTK_CONTAINER(pwhbox), 8);
gtk_container_add(GTK_CONTAINER(pwhbox), gtk_label_new(_("Calibrating:")));
gtk_container_add(GTK_CONTAINER(pwhbox), pwResult = gtk_label_new(_(" (n/a) ")));
@@ -7235,11 +7612,20 @@ GTKResign(gpointer UNUSED(p), guint UNUSED(n), GtkWidget * UNUSED(pw))
}
pwDialog = GTKCreateDialog(_("Resign"), DT_QUESTION, NULL, DIALOG_FLAG_MODAL | DIALOG_FLAG_NOOK, NULL, NULL);
+#if GTK_CHECK_VERSION(3,0,0)
+ pwVbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
+ /* FIXME: how do we set homogenous to TRUE in gtk3 ? */
+#else
pwVbox = gtk_vbox_new(TRUE, 5);
+#endif
for (i = 0; i < 3; i++) {
pwButtons = gtk_button_new();
+#if GTK_CHECK_VERSION(3,0,0)
+ pwHbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+#else
pwHbox = gtk_hbox_new(FALSE, 0);
+#endif
gtk_container_add(GTK_CONTAINER(pwButtons), pwHbox);
gtk_box_pack_start(GTK_BOX(pwHbox), gtk_image_new_from_stock(resign_stocks[i], GTK_ICON_SIZE_LARGE_TOOLBAR),
FALSE, FALSE, 0);