tGTK+ options dialog now honours the MinVal Globals attribute for lists, so it … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 5923e75b8649a3a8f822de277a58e03160fc0510 | |
parent 8489be5297890ee645af9829744b84dc55b9223d | |
Author: Ben Webb <[email protected]> | |
Date: Sat, 6 Apr 2002 19:53:12 +0000 | |
GTK+ options dialog now honours the MinVal Globals attribute for lists, | |
so it cannot be used to create blank Locations or Drugs lists. | |
Diffstat: | |
M src/gui_client/optdialog.c | 21 ++++++++++++++++++--- | |
1 file changed, 18 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/src/gui_client/optdialog.c b/src/gui_client/optdialog.c | |
t@@ -315,11 +315,14 @@ static void swap_rows(GtkCList *clist, gint selrow, gint… | |
static void list_delete(GtkWidget *widget, gchar *structname) | |
{ | |
GtkCList *clist; | |
+ int minlistlength; | |
clist = GTK_CLIST(gtk_object_get_data(GTK_OBJECT(widget), "clist")); | |
g_assert(clist); | |
+ minlistlength = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), | |
+ "minlistlength")); | |
- if (clist->rows > 1 && clist->selection) { | |
+ if (clist->rows > minlistlength && clist->selection) { | |
GSList *listpt; | |
int row = GPOINTER_TO_INT(clist->selection->data); | |
t@@ -415,12 +418,15 @@ static void list_row_select(GtkCList *clist, gint row, g… | |
{ | |
GSList *listpt; | |
GtkWidget *delbut, *upbut, *downbut; | |
+ int minlistlength; | |
+ minlistlength = GPOINTER_TO_INT(gtk_object_get_data(GTK_OBJECT(clist), | |
+ "minlistlength")); | |
delbut = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(clist), "delete")); | |
upbut = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(clist), "up")); | |
downbut = GTK_WIDGET(gtk_object_get_data(GTK_OBJECT(clist), "down")); | |
g_assert(delbut && upbut && downbut); | |
- gtk_widget_set_sensitive(delbut, TRUE); | |
+ gtk_widget_set_sensitive(delbut, clist->rows > minlistlength); | |
gtk_widget_set_sensitive(upbut, row > 0); | |
gtk_widget_set_sensitive(downbut, row < clist->rows - 1); | |
t@@ -577,7 +583,7 @@ static GtkWidget *CreateList(gchar *structname, struct Con… | |
{ | |
GtkWidget *hbox, *vbox, *hbbox, *clist, *scrollwin, *button, *table; | |
gchar *titles[3]; | |
- int ind; | |
+ int ind, minlistlength = 0; | |
gint i, row, nummembers; | |
struct GLOBALS *gvar; | |
struct ConfigMembers namemember = { "Name", "Name" }; | |
t@@ -587,6 +593,13 @@ static GtkWidget *CreateList(gchar *structname, struct Co… | |
gvar = &Globals[ind]; | |
g_assert(gvar->StringVal && gvar->MaxIndex); | |
+ for (i = 0; i < NUMGLOB; i++) { | |
+ if (Globals[i].StructListPt == gvar->StructListPt | |
+ && Globals[i].ResizeFunc) { | |
+ minlistlength = Globals[i].MinVal; | |
+ } | |
+ } | |
+ | |
nummembers = 0; | |
while (members && members[nummembers].label) { | |
nummembers++; | |
t@@ -627,6 +640,8 @@ static GtkWidget *CreateList(gchar *structname, struct Con… | |
gtk_widget_set_sensitive(button, FALSE); | |
gtk_object_set_data(GTK_OBJECT(button), "clist", clist); | |
gtk_object_set_data(GTK_OBJECT(clist), "delete", button); | |
+ gtk_object_set_data(GTK_OBJECT(clist), "minlistlength", | |
+ GINT_TO_POINTER(minlistlength)); | |
gtk_signal_connect(GTK_OBJECT(button), "clicked", | |
GTK_SIGNAL_FUNC(list_delete), structname); | |
gtk_box_pack_start(GTK_BOX(hbbox), button, TRUE, TRUE, 0); |