]> hydra-www.ietfng.org Git - gtetrinet/commitdiff
New patch from Dani Carbonell. Fix creation of multiple about dialogs. Convert theme...
authorJordi Albornoz <jordi@src.gnome.org>
Sun, 5 Jan 2003 01:25:51 +0000 (01:25 +0000)
committerJordi Albornoz <jordi@src.gnome.org>
Sun, 5 Jan 2003 01:25:51 +0000 (01:25 +0000)
ChangeLog
TODO
src/commands.c
src/dialogs.c
src/gtetrinet.h
src/misc.c
src/partyline.c
src/tetrinet.c
src/winlist.c

index c4d812870f0947c6f5a853fe28f17d4d9d5b05ed..3a9230060869738b61256c88e91239f88352955a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2003-01-05  Jordi Mallach  <jordi@sindominio.net>
+
+       * TODO: add missing item.
+
+       * New patch from Dani Carbonell:
+
+       * src/commands.c (about_command): only create dialog if it doesn't
+       exist. If it does, raise it.
+
+       * src/dialogs.c (connectingdialog_destroy): remove timeouttag only if
+       it isn't 0.
+
+       * src/misc.c (leftlabel_set): convert theme info to UTF-8 before
+       displaying.
+       * src/winlist.c (winlist_additem): convert winlist items to UTF-8.
+
+       * src/partyline.c (partyline_page_new): port gtk_signal_connect to
+       g_signal_connect.
+
 2003-01-05  Jordi Mallach  <jordi@sindominio.net>
 
        * AUTHORS: add Dani Carbonell.
diff --git a/TODO b/TODO
index 67dcf873c3ac3620b19d97b4bce0dd3a83c3c22a..343d1400ebe8a7ad014972cd0b8c64c3c3f92e75 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,4 +7,5 @@ GTetrinet's TODO list
   + keybindings
   + multiple about windows (raise already open window)
   + playfields messages cleared when games start
+  + problem when typing composed letters (รก) in fields messages.
 - Make gtetrinet resizeable (at least the fields messages bit).
index 91a215b0f4b682c7784ed6f5c62237df1b2f2012..fb3ea0445dd46c6f94a33149a21a3326186d96bc 100644 (file)
@@ -34,6 +34,8 @@
 #include "commands.h"
 #include "dialogs.h"
 
+extern GtkWidget *about;
+
 GnomeUIInfo gamemenu[] = {
     GNOMEUIINFO_ITEM(N_("_Connect to server..."), NULL, connect_command, NULL),
     GNOMEUIINFO_ITEM(N_("_Disconnect from server"), NULL, disconnect_command, NULL),
@@ -219,40 +221,47 @@ void commands_checkstate ()
 
 void about_command (GtkWidget *widget, gpointer data)
 {
-    GtkWidget *about, *hbox;
+    GtkWidget *hbox;
     GdkPixbuf *logo;
 
-    const char *authors[] = {N_("Ka-shu Wong <kswong@zip.com.au>"),
-                             N_("James Antill <james@and.org>"),
-                            N_("Jordi Mallach <jordi@sindominio.net>"),
-                            N_("Dani Carbonell <bocata@panete.net>"),
-                             NULL};
-    const char *documenters[] = {N_("Jordi Mallach <jordi@sindominio.net>"),
-                                 NULL};
-    /* Translators: translate as your names & emails */
-    const char *translators = _("translator_credits");
-
-    logo = gdk_pixbuf_new_from_file (PIXMAPSDIR "/gtetrinet.png", NULL);
+    if (!GTK_IS_WINDOW (about))
+    {
+      const char *authors[] = {N_("Ka-shu Wong <kswong@zip.com.au>"),
+                               N_("James Antill <james@and.org>"),
+                              N_("Jordi Mallach <jordi@sindominio.net>"),
+                              N_("Dani Carbonell <bocata@panete.net>"),
+                               NULL};
+      const char *documenters[] = {N_("Jordi Mallach <jordi@sindominio.net>"),
+                                   NULL};
+      /* Translators: translate as your names & emails */
+      const char *translators = _("translator_credits");
+
+      logo = gdk_pixbuf_new_from_file (PIXMAPSDIR "/gtetrinet.png", NULL);
     
-    about = gnome_about_new (APPNAME, APPVERSION,
-                             _("(C) 1999, 2000, 2001, 2002 Ka-shu Wong"),
-                             _("A Tetrinet client for GNOME.\n"),
-                             authors,
-                             documenters,
-                            strcmp (translators, "translator_credits") != 0 ?
-                                    translators : NULL,
-                            logo);
-
-    if (logo != NULL)
-               g_object_unref (logo);
-
-    hbox = gtk_hbox_new (TRUE, 0);
-    gtk_box_pack_start (GTK_BOX (hbox),
-               gnome_href_new ("http://gtetrinet.sourceforge.net/", _("GTetrinet Home Page")),
-               FALSE, FALSE, 0);
-    gtk_box_pack_start (GTK_BOX (GTK_DIALOG (about)->vbox),
-                       hbox, TRUE, FALSE, 0);
-    gtk_widget_show_all (hbox);
-
-    gtk_widget_show (about);
+      about = gnome_about_new (APPNAME, APPVERSION,
+                               _("(C) 1999, 2000, 2001, 2002 Ka-shu Wong"),
+                               _("A Tetrinet client for GNOME.\n"),
+                               authors,
+                               documenters,
+                             strcmp (translators, "translator_credits") != 0 ?
+                                      translators : NULL,
+                             logo);
+
+      if (logo != NULL)
+                 g_object_unref (logo);
+
+      hbox = gtk_hbox_new (TRUE, 0);
+      gtk_box_pack_start (GTK_BOX (hbox),
+                 gnome_href_new ("http://gtetrinet.sourceforge.net/", _("GTetrinet Home Page")),
+                 FALSE, FALSE, 0);
+      gtk_box_pack_start (GTK_BOX (GTK_DIALOG (about)->vbox),
+                         hbox, TRUE, FALSE, 0);
+      gtk_widget_show_all (hbox);
+
+      gtk_widget_show (about);
+    }
+    else
+    {
+      gtk_window_present (GTK_WINDOW (about));
+    }
 }
index 7ec4670ea420154d54df578bd5fc18495ae702bc..ad16b1614584ebdadec00bc2f9998a47dca203d7 100644 (file)
@@ -96,7 +96,7 @@ void connectingdialog_new (void)
 
 void connectingdialog_destroy (void)
 {
-    gtk_timeout_remove (timeouttag);
+    if (timeouttag != 0) gtk_timeout_remove (timeouttag);
     timeouttag = 0;
     if (connectingdialog == 0) return;
     gtk_widget_destroy (connectingdialog);
@@ -728,7 +728,7 @@ void prefdialog_new (void)
     theme_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (themelist));
     gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (themelist), FALSE);
     gtk_widget_set_usize (themelist, 160, 0);
-    gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (themelist), -1, _("Theme"), renderer,
+    gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (themelist), -1, "theme", renderer,
                                                  "text", 0, NULL);
     gtk_widget_show (themelist);
 
index 05d5d4541a65d22a78a7fe94a771da43cdafe7a7..1b4fe27c21d78011cf20cd1d1006ebf8728734fc 100644 (file)
@@ -7,6 +7,8 @@
 
 extern int gamemode;
 
+GtkWidget *about;
+
 extern void destroymain (GtkWidget *widget, gpointer data);
 extern gint keypress (GtkWidget *widget, GdkEventKey *key);
 extern gint keyrelease (GtkWidget *widget, GdkEventKey *key);
index 600a15491d6e0bc0d5e12cecf3bc507dd2f208b3..f41d55e02033e3970f8a4a514c7812bac58003c1 100644 (file)
@@ -41,7 +41,11 @@ GtkWidget *leftlabel_new (char *str)
 
 void leftlabel_set (GtkWidget *align, char *str)
 {
-    gtk_label_set (GTK_LABEL(GTK_BIN(align)->child), str);
+    gchar *aux;
+  
+    aux = g_locale_to_utf8 (str, -1, NULL, NULL, NULL);
+    gtk_label_set (GTK_LABEL(GTK_BIN(align)->child), aux);
+    g_free (aux);
 }
 
 /* returns a random number in the range 0 to n-1 --
index ce640cfc62fe9221a421dc797cbf19b1f2600d10..1733c62c203e7b50344b504b2b53f1d8660a50b8 100644 (file)
@@ -74,10 +74,10 @@ GtkWidget *partyline_page_new (void)
     gtk_box_pack_start (GTK_BOX(leftbox), textboxscroll, TRUE, TRUE, 0);
     /* entry box */
     entrybox = gtk_entry_new_with_max_length (200);
-    gtk_signal_connect (GTK_OBJECT(entrybox), "activate",
-                        GTK_SIGNAL_FUNC(textentry), NULL);
-    gtk_signal_connect (GTK_OBJECT(entrybox), "key_press_event",
-                        GTK_SIGNAL_FUNC(entrykey), NULL);
+    g_signal_connect (G_OBJECT(entrybox), "activate",
+                      GTK_SIGNAL_FUNC(textentry), NULL);
+    g_signal_connect (G_OBJECT(entrybox), "key_press_event",
+                      GTK_SIGNAL_FUNC(entrykey), NULL);
     gtk_widget_show (entrybox);
     gtk_box_pack_start (GTK_BOX(leftbox), entrybox, FALSE, FALSE, 0);
     gtk_widget_show (leftbox);
index 5b792eefedefd40998e21c77dd96add4f0917d63..9dee5e8b2c152c4bb044e8349d7616c515c9bd7d 100644 (file)
@@ -649,8 +649,9 @@ void tetrinet_inmessage (enum inmsg_type msgtype, char *data)
             token = strtok (data, " ");
             if (token == NULL) break;
             g_snprintf (buf, sizeof(buf),
-                        _("%c*** You have joined %c%s"),
-                        TETRI_TB_C_DARK_BLUE, TETRI_TB_BOLD, token);
+                        _("%c*** You have joined %c%s%c%c"),
+                        TETRI_TB_C_DARK_BLUE, TETRI_TB_BOLD, token,
+                       TETRI_TB_RESET, TETRI_TB_C_DARK_BLUE);
             partyline_text (buf);
             while ((token = strtok (NULL, " ")) != NULL) speclist_add (token);
             playerlistupdate ();
index aa8dd04748cf8565cd3dd9486d191f788e111a53..7a491c4e50ed629f957c859bacbd0971fe1b384e 100644 (file)
@@ -70,17 +70,19 @@ void winlist_additem (int team, char *name, int score)
     GtkListStore *winlist_model = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (winlist)));
     GtkTreeIter iter;
     char buf[16], *item[3];
+    gchar *name_utf8;
 
     if (team) item[0] = "T";
     else item[0] = "";
     item[1] = nocolor (name);
+    name_utf8 = g_locale_to_utf8 (item[1], -1, NULL, NULL, NULL);
     g_snprintf (buf, sizeof(buf), "%d", score);
     item[2] = buf;
 
     gtk_list_store_append (winlist_model, &iter);
     gtk_list_store_set (winlist_model, &iter,
                         0, item[0],
-                        1, item[1],
+                        1, name_utf8,
                         2, item[2],
                         -1);
 }