tMore tweaks to GTK+ New Game dialog; now understands ServerName=(Prompt) etc. … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 93331be9af913e2a14cdf0c878fef43c2cd549af | |
parent 2a470e2fc73fd94ceb29647b965239a69db7a589 | |
Author: Ben Webb <[email protected]> | |
Date: Tue, 3 Apr 2001 00:29:00 +0000 | |
More tweaks to GTK+ New Game dialog; now understands ServerName=(Prompt) etc. | |
Diffstat: | |
M src/curses_client.c | 6 +++--- | |
M src/dopewars.h | 5 +++++ | |
M src/gtk_client.c | 24 +++++++++++++++++++++--- | |
3 files changed, 29 insertions(+), 6 deletions(-) | |
--- | |
diff --git a/src/curses_client.c b/src/curses_client.c | |
t@@ -289,14 +289,14 @@ static char ConnectToServer(Player *Play) { | |
char *pt=NULL,*MetaError=NULL; | |
gchar *text; | |
int c; | |
- if (strcasecmp(ServerName,"(MetaServer)")==0 || ConnectMethod==CM_META) { | |
+ if (strcasecmp(ServerName,SN_META)==0 || ConnectMethod==CM_META) { | |
ConnectMethod=CM_META; | |
MetaError=SelectServerFromMetaServer(); | |
- } else if (strcasecmp(ServerName,"(Prompt)")==0 || | |
+ } else if (strcasecmp(ServerName,SN_PROMPT)==0 || | |
ConnectMethod==CM_PROMPT) { | |
ConnectMethod=CM_PROMPT; | |
SelectServerManually(); | |
- } else if (strcasecmp(ServerName,"(Single)")==0 || | |
+ } else if (strcasecmp(ServerName,SN_SINGLE)==0 || | |
ConnectMethod==CM_SINGLE) { | |
ConnectMethod=CM_SINGLE; | |
return TRUE; | |
diff --git a/src/dopewars.h b/src/dopewars.h | |
t@@ -304,6 +304,11 @@ struct PLAYER_T { | |
#define CM_PROMPT 1 | |
#define CM_META 2 | |
#define CM_SINGLE 3 | |
+ | |
+#define SN_PROMPT "(Prompt)" | |
+#define SN_META "(MetaServer)" | |
+#define SN_SINGLE "(Single)" | |
+ | |
typedef struct tag_serverdata { | |
char *Name; | |
int Port; | |
diff --git a/src/gtk_client.c b/src/gtk_client.c | |
t@@ -62,6 +62,9 @@ | |
#define ET_SPY 0 | |
#define ET_TIPOFF 1 | |
+/* Which notebook page to display in the New Game dialog */ | |
+static gint NewGameType=0; | |
+ | |
struct InventoryWidgets { | |
GtkWidget *HereList,*CarriedList; | |
GtkWidget *HereFrame,*CarriedFrame; | |
t@@ -1823,9 +1826,10 @@ void NewGameDialog() { | |
GtkWidget *table,*clist,*scrollwin,*dialog,*hbbox; | |
GtkAccelGroup *accel_group; | |
gchar *text; | |
- gchar *server_titles[5]; | |
+ gchar *server_titles[5],*ServerEntry; | |
static struct StartGameStruct widgets; | |
guint AccelKey; | |
+ gboolean UpdateMeta=FALSE; | |
server_titles[0]=_("Server"); | |
server_titles[1]=_("Port"); | |
t@@ -1880,7 +1884,16 @@ void NewGameDialog() { | |
gtk_table_attach(GTK_TABLE(table),label,0,1,0,1, | |
GTK_SHRINK,GTK_SHRINK,0,0); | |
entry=widgets.hostname=gtk_entry_new(); | |
- gtk_entry_set_text(GTK_ENTRY(entry),ServerName); | |
+ | |
+ ServerEntry = "localhost"; | |
+ if (strcasecmp(ServerName,SN_META)==0) { | |
+ NewGameType=2; | |
+ UpdateMeta=TRUE; | |
+ } else if (strcasecmp(ServerName,SN_PROMPT)==0) NewGameType=0; | |
+ else if (strcasecmp(ServerName,SN_SINGLE)==0) NewGameType=1; | |
+ else ServerEntry = ServerName; | |
+ | |
+ gtk_entry_set_text(GTK_ENTRY(entry),ServerEntry); | |
gtk_table_attach(GTK_TABLE(table),entry,1,2,0,1, | |
GTK_EXPAND|GTK_SHRINK|GTK_FILL, | |
GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0); | |
t@@ -1973,9 +1986,14 @@ void NewGameDialog() { | |
gtk_container_add(GTK_CONTAINER(widgets.dialog),vbox); | |
gtk_widget_grab_focus(widgets.name); | |
- FillMetaServerList(&widgets); | |
+ if (UpdateMeta) { | |
+ UpdateMetaServerList(NULL,&widgets); | |
+ } else { | |
+ FillMetaServerList(&widgets); | |
+ } | |
gtk_widget_show_all(widgets.dialog); | |
+ gtk_notebook_set_page(GTK_NOTEBOOK(notebook),NewGameType); | |
} | |
#ifndef CYGWIN |