tGTK+ client lists players at startup, and ends games less abruptly - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 329fbfb0e6375f7b2cf783a6afa9bb9e188ebfd7
 (DIR) parent b947413073f021dad64d7f2b19dbaa4873fe8bb4
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Sun, 12 Nov 2000 20:16:31 +0000
       
       GTK+ client lists players at startup, and ends games less abruptly
       
       
       Diffstat:
         M src/gtk_client.c                    |      25 ++++++++++++++++++-------
       
       1 file changed, 18 insertions(+), 7 deletions(-)
       ---
 (DIR) diff --git a/src/gtk_client.c b/src/gtk_client.c
       t@@ -97,7 +97,7 @@ static void SetSocketWriteTest(Player *Play,gboolean WriteTest);
        static void HandleClientMessage(char *buf,Player *Play);
        static void PrepareHighScoreDialog();
        static void AddScoreToDialog(char *Data);
       -static void CompleteHighScoreDialog();
       +static void CompleteHighScoreDialog(gboolean AtEnd);
        static void PrintMessage(char *Data);
        static void DisplayFightMessage(char *Data);
        static GtkWidget *CreateStatusWidgets(struct StatusWidgets *Status);
       t@@ -300,8 +300,7 @@ void HandleClientMessage(char *pt,Player *Play) {
              case C_HISCORE:
                 AddScoreToDialog(Data); break;
              case C_ENDHISCORE:
       -         CompleteHighScoreDialog();
       -         if (strcmp(Data,"end")==0) EndGame();
       +         CompleteHighScoreDialog((strcmp(Data,"end")==0));
                 break;
              case C_PRINTMESSAGE:
                 PrintMessage(Data);
       t@@ -371,6 +370,7 @@ void HandleClientMessage(char *pt,Player *Play) {
                                                      "<main>/Errands/Tipoff");
                 gtk_label_parse_uline(GTK_LABEL(GTK_BIN(MenuItem)->child),text);
                 g_free(text);
       +         if (FirstClient->next) ListPlayers(NULL,NULL);
                 break;
              case C_UPDATE:
                 if (From==&Noone) {
       t@@ -431,13 +431,24 @@ void AddScoreToDialog(char *Data) {
           gtk_widget_show(label);
        }
        
       -void CompleteHighScoreDialog() {
       +static void EndHighScore(GtkWidget *widget) {
       +   gtk_widget_destroy(widget);
       +   EndGame();
       +}
       +
       +void CompleteHighScoreDialog(gboolean AtEnd) {
           GtkWidget *OKButton,*dialog;
           dialog=HiScoreDialog.dialog;
           OKButton=gtk_button_new_with_label(_("OK"));
       -   gtk_signal_connect_object(GTK_OBJECT(OKButton),"clicked",
       -                             GTK_SIGNAL_FUNC(gtk_widget_destroy),
       -                             (gpointer)dialog);
       +   if (AtEnd) {
       +      gtk_signal_connect_object(GTK_OBJECT(OKButton),"clicked",
       +                                GTK_SIGNAL_FUNC(EndHighScore),
       +                                (gpointer)dialog);
       +   } else {
       +      gtk_signal_connect_object(GTK_OBJECT(OKButton),"clicked",
       +                                GTK_SIGNAL_FUNC(gtk_widget_destroy),
       +                                (gpointer)dialog);
       +   }
           gtk_box_pack_start(GTK_BOX(HiScoreDialog.vbox),OKButton,TRUE,TRUE,0);
         
           GTK_WIDGET_SET_FLAGS(OKButton,GTK_CAN_DEFAULT);