+2003-01-05 Dani Carbonell <bocata@panete.net>
+
+ * TODO: updated.
+
+ * src/dialogs.c (connectingdialog_new): fixed behaviour when opening
+ more than one window, now it presents the existing one.
+ (teamdialog_new):likewise.
+ (prefdialog_new):likewise.
+
+ * src/tetrinet.c (tetrinet_key): we were giving focus to the gmsginput
+ even if there was no such input visible, now we only give focus if
+ gmsgstate == 1 (while writing message).
+
+ * src/gtetrinet.c (main): gtk_window_set_policy is deprecated,
+ changed to gtk_window_set_resizable.
+
2003-01-05 Jordi Mallach <jordi@sindominio.net>
* Adapt patch from Jan Bretschneider with some UI improvements that
+ problem when typing composed letters (รก) in fields messages
+ add real tooltips
+ port deprecated widgets (-DGTK_DISABLE_DEPRECATED)
- + pressing a key when a game is in progress, but you are not playing it,
- causes a Gtk-CRITICAL
+ detaching and reattaching the Menu Bar causes two Bonobo-CRITICAL
- Make gtetrinet resizeable (at least the fields messages bit)
- Write a User Manual
void connectingdialog_new (void)
{
- if (connectingdialog) return;
+ if (connectingdialog)
+ {
+ gtk_window_present (GTK_WINDOW (connectingdialog));
+ return;
+ }
connectingdialog = gnome_dialog_new (_("Connect to server"),
GNOME_STOCK_BUTTON_CANCEL,
NULL);
void teamdialog_new (void)
{
- GtkWidget *dialog, *table, *widget, *entry;
+ static GtkWidget *dialog;
+ GtkWidget *table, *widget, *entry;
+
+ if (dialog)
+ {
+ gtk_window_present (GTK_WINDOW (dialog));
+ return;
+ }
+
dialog = gnome_dialog_new (_("Change team"),
GNOME_STOCK_BUTTON_OK,
GNOME_STOCK_BUTTON_CANCEL,
GtkWidget *widget, *table1, *table2, *frame;
gchar *aux;
/* check if dialog is already displayed */
- if (connecting) return;
+ if (connectdialog)
+ {
+ gtk_window_present (GTK_WINDOW (connectdialog));
+ return;
+ }
connecting = TRUE;
/* save some stuff */
gtk_box_pack_start (GTK_BOX(GNOME_DIALOG(dialog)->vbox),
label, TRUE, TRUE, GNOME_PAD_SMALL);
gnome_dialog_set_close (GNOME_DIALOG(dialog), TRUE);
- g_signal_connect (G_OBJECT(dialog), "key_press_event",
+ g_signal_connect (G_OBJECT(dialog), "key-press-event",
GTK_SIGNAL_FUNC(key_dialog_callback), NULL);
gtk_widget_set_events (dialog, GDK_KEY_PRESS_MASK);
keydialog_key = 0;
GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
GtkTreeSelection *theme_selection, *keys_selection;
int i;
+
+ if (prefdialog)
+ {
+ gtk_window_present (GTK_WINDOW (prefdialog));
+ return;
+ }
prefdialog = gnome_property_box_new();
gmsginput = gtk_entry_new_with_max_length (128);
gtk_widget_show (gmsginput);
/* eat up key messages */
- g_signal_connect (G_OBJECT(gmsginput), "key_press_event",
+ g_signal_connect (G_OBJECT(gmsginput), "key-press-event",
GTK_SIGNAL_FUNC(fields_eatkey), NULL);
gtk_table_attach (GTK_TABLE(table2), gmsginput, 0, 1, 1, 2,
GTK_FILL | GTK_EXPAND, 0, 0, 0);
gint fields_eatkey (GtkWidget *widget, GdkEventKey *key)
{
- gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_press_event");
+ gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-press-event");
return TRUE;
}
static GtkWidget *pixmapdata_label (char **d, char *str);
static int gtetrinet_key (int keyval, int mod);
-gint keypress (GtkWidget *widget, GdkEventKey *key);
-gint keyrelease (GtkWidget *widget, GdkEventKey *key);
+gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data);
+gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data);
static GtkWidget *app, *pfields, *pparty, *pwinlist;
static GtkWidget *winlistwidget, *partywidget, *fieldswidget;
g_signal_connect (G_OBJECT(app), "destroy",
GTK_SIGNAL_FUNC(destroymain), NULL);
- g_signal_connect (G_OBJECT(app), "key_press_event",
+ g_signal_connect (G_OBJECT(app), "key-press-event",
GTK_SIGNAL_FUNC(keypress), NULL);
- g_signal_connect (G_OBJECT(app), "key_release_event",
+ g_signal_connect (G_OBJECT(app), "key-release-event",
GTK_SIGNAL_FUNC(keyrelease), NULL);
gtk_widget_set_events (app, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
- gtk_window_set_policy (GTK_WINDOW(app), FALSE, FALSE, TRUE);
+ gtk_window_set_resizable (GTK_WINDOW (app), FALSE);
/* create and set the window icon */
icon_pixbuf = gdk_pixbuf_new_from_file (PIXMAPSDIR "/gtetrinet.png", NULL);
return FALSE;
}
-gint keypress (GtkWidget *widget, GdkEventKey *key)
+gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data)
{
int game_area;
return FALSE;
}
-gint keyrelease (GtkWidget *widget, GdkEventKey *key)
+gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data)
{
int game_area;
{
k = *key;
keytimeoutid = gtk_timeout_add (10, keytimeout, 0);
- gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_release_event");
+ gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-release-event");
return TRUE;
}
return FALSE;
gtk_container_set_border_width (GTK_CONTAINER (newWindow), 0);
/* Attach key events to window */
- g_signal_connect (G_OBJECT(newWindow), "key_press_event",
+ g_signal_connect (G_OBJECT(newWindow), "key-press-event",
GTK_SIGNAL_FUNC(keypress), NULL);
- g_signal_connect (G_OBJECT(newWindow), "key_release_event",
+ g_signal_connect (G_OBJECT(newWindow), "key-release-event",
GTK_SIGNAL_FUNC(keyrelease), NULL);
gtk_widget_set_events (newWindow, GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
gtk_window_set_policy (GTK_WINDOW(newWindow), FALSE, TRUE, FALSE);
extern int gamemode;
extern void destroymain (GtkWidget *widget, gpointer data);
-extern gint keypress (GtkWidget *widget, GdkEventKey *key);
-extern gint keyrelease (GtkWidget *widget, GdkEventKey *key);
+extern gint keypress (GtkWidget *widget, GdkEventKey *key, gpointer data);
+extern gint keyrelease (GtkWidget *widget, GdkEventKey *key, gpointer data);
extern void move_current_page_to_window (void);
extern void show_fields_page (void);
extern void show_partyline_page (void);
entrybox = gtk_entry_new_with_max_length (200);
g_signal_connect (G_OBJECT(entrybox), "activate",
GTK_SIGNAL_FUNC(textentry), NULL);
- g_signal_connect (G_OBJECT(entrybox), "key_press_event",
+ 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);
printf ("history: %d %d %d %s\n", plh_start, plh_end, plh_cur,
plhistory[plh_cur]);
#endif
- gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key_press_event");
+ gtk_signal_emit_stop_by_name (GTK_OBJECT(widget), "key-press-event");
return TRUE;
}
else if (keyval == GDK_Left || keyval == GDK_Right) {
}
notfieldkey:
if (!ingame) return FALSE;
- fields_gmsginputactivate (TRUE);
/* gmsg keys */
if (gmsgstate == 1) {
+ fields_gmsginputactivate (TRUE);
switch (keyval) {
case GDK_Return:
{