tImpose minimum and maximum limits on all relevant configuration file variables… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c298f118abbdadcdef3682ec893d7879d1127a82 | |
parent 001aedbb201916005753e3ffde2355546018f4de | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 23 Jun 2003 11:35:28 +0000 | |
Impose minimum and maximum limits on all relevant configuration file | |
variables, and enforce this in the GUI client Options dialog. | |
Diffstat: | |
M ChangeLog | 2 ++ | |
M TODO | 2 -- | |
M src/gui_client/optdialog.c | 32 +++++++++++++++++++++++++++--… | |
3 files changed, 30 insertions(+), 6 deletions(-) | |
--- | |
diff --git a/ChangeLog b/ChangeLog | |
t@@ -3,6 +3,8 @@ cvs | |
by the cops | |
- Some problems with the curses client missing screen resize events fixed | |
- Logging to a file should now work properly again | |
+ - Minimum and maximum limits on all relevant integer configuration | |
+ file variables are now imposed for sanity | |
1.5.9 07-06-2003 | |
- The messages window in the curses client can now be scrolled with the | |
diff --git a/TODO b/TODO | |
t@@ -14,8 +14,6 @@ | |
- Track down server memory corruption bug! | |
- Implement server option to buy more than one bitch at a time in the Pub. | |
- Allow customisation of GtkTextView tag colours | |
-- Impose sensible limits on numbers in Options dialog (e.g. percentages) | |
- (should also enforce this for config file / server admin) | |
- Admin of running NT Service servers | |
- GSS_API SOCKS support? | |
- Fix problem with dialogs popping up while menus are open | |
diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c | |
t@@ -107,6 +107,12 @@ static void SaveConfigWidget(struct GLOBALS *gvar, struct… | |
intpt = GetGlobalInt(cwid->globind, structind); | |
newset = atoi(text); | |
+ if (newset < gvar->MinVal) { | |
+ newset = gvar->MinVal; | |
+ } | |
+ if (gvar->MaxVal > gvar->MinVal && newset > gvar->MaxVal) { | |
+ newset = gvar->MaxVal; | |
+ } | |
changed = (*intpt != newset); | |
*intpt = newset; | |
} else if (gvar->PriceVal) { | |
t@@ -243,9 +249,20 @@ static GtkWidget *NewConfigEntry(gchar *name) | |
if (gvar->StringVal) { | |
gtk_entry_set_text(GTK_ENTRY(entry), *gvar->StringVal); | |
} else if (gvar->IntVal) { | |
- tmpstr = g_strdup_printf("%d", *gvar->IntVal); | |
- gtk_entry_set_text(GTK_ENTRY(entry), tmpstr); | |
- g_free(tmpstr); | |
+ if (gvar->MaxVal > gvar->MinVal) { | |
+ GtkAdjustment *spin_adj; | |
+ | |
+ gtk_widget_destroy(entry); | |
+ spin_adj = (GtkAdjustment *)gtk_adjustment_new(*gvar->IntVal, | |
+ gvar->MinVal, | |
+ gvar->MaxVal, | |
+ 1.0, 10.0, 10.0); | |
+ entry = gtk_spin_button_new(spin_adj, 1.0, 0); | |
+ } else { | |
+ tmpstr = g_strdup_printf("%d", *gvar->IntVal); | |
+ gtk_entry_set_text(GTK_ENTRY(entry), tmpstr); | |
+ g_free(tmpstr); | |
+ } | |
} else if (gvar->PriceVal) { | |
tmpstr = pricetostr(*gvar->PriceVal); | |
gtk_entry_set_text(GTK_ENTRY(entry), tmpstr); | |
t@@ -279,7 +296,14 @@ static void AddStructConfig(GtkWidget *table, int row, gc… | |
label = gtk_label_new(_(member->label)); | |
gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row + 1, | |
GTK_SHRINK, GTK_SHRINK, 0, 0); | |
- entry = gtk_entry_new(); | |
+ if (gvar->IntVal && gvar->MaxVal > gvar->MinVal) { | |
+ GtkAdjustment *spin_adj = (GtkAdjustment *) | |
+ gtk_adjustment_new(gvar->MinVal, gvar->MinVal, gvar->MaxVal, | |
+ 1.0, 10.0, 10.0); | |
+ entry = gtk_spin_button_new(spin_adj, 1.0, 0); | |
+ } else { | |
+ entry = gtk_entry_new(); | |
+ } | |
gtk_table_attach_defaults(GTK_TABLE(table), entry, 1, 2, row, row + 1); | |
AddConfigWidget(entry, ind); | |
} |