[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ayttm-commits] CVS: ayttm/src dialog.c,1.19,1.20
From: |
Colin Leroy <address@hidden> |
Subject: |
[Ayttm-commits] CVS: ayttm/src dialog.c,1.19,1.20 |
Date: |
Sat, 22 Mar 2003 07:07:01 -0500 |
Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv4439/src
Modified Files:
dialog.c
Log Message:
plug ESC and ENTER in dialogs
Index: dialog.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/dialog.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- dialog.c 22 Mar 2003 11:32:53 -0000 1.19
+++ dialog.c 22 Mar 2003 12:06:58 -0000 1.20
@@ -27,6 +27,7 @@
#include <string.h>
#include <stdlib.h>
#include <gdk/gdkprivate.h>
+#include <gdk/gdkkeysyms.h>
#include "dialog.h"
#include "gtk_globals.h"
@@ -271,7 +272,12 @@
hbox = gtk_hbox_new(FALSE, 0);
- icon = gdk_pixmap_create_from_xpm_d(w->window, &mask, NULL, xpm);
+ /* w may not be realised, prefer to use statuswindow if it is */
+ if (!w->window && statuswindow)
+ icon = gdk_pixmap_create_from_xpm_d(statuswindow->window,
&mask, NULL, xpm);
+ else
+ icon = gdk_pixmap_create_from_xpm_d(w->window, &mask, NULL,
xpm);
+
iconwid = gtk_pixmap_new(icon, mask);
blabel = gtk_label_new(label);
@@ -293,12 +299,33 @@
return button;
}
+typedef struct _dialog_buttons {
+ GtkWidget *yes;
+ GtkWidget *no;
+} dialog_buttons;
+
+static void dialog_close(GtkWidget *widget, GdkEventAny *event, gpointer data)
+{
+ dialog_buttons *b = (dialog_buttons *)data;
+ if (event->type == GDK_KEY_PRESS) {
+ if (((GdkEventKey *)event)->keyval == GDK_Escape) {
+ gtk_signal_emit_by_name(GTK_OBJECT(b->no), "clicked");
+ } else if (((GdkEventKey *)event)->keyval == GDK_KP_Enter) {
+ gtk_signal_emit_by_name(GTK_OBJECT(b->yes), "clicked");
+ } else if (((GdkEventKey *)event)->keyval == GDK_Return) {
+ gtk_signal_emit_by_name(GTK_OBJECT(b->yes), "clicked");
+ }
+
+ }
+}
+
void do_dialog( gchar * message, gchar * title, void (*action)(GtkWidget *
widget, gpointer data), gpointer data )
{
GtkWidget *dialog_window;
GtkWidget *label;
GtkWidget *hbox2;
GtkWidget *button;
+ dialog_buttons *buttons = g_new0(dialog_buttons, 1);
dialog_window = gtk_dialog_new();
label = gtk_label_new(message);
@@ -319,6 +346,8 @@
gtk_object_set_user_data(GTK_OBJECT(button), (gpointer)0);
gtk_widget_show(button);
+ buttons->no = button;
+
hbox2 = gtk_hbox_new(FALSE,0);
gtk_box_pack_end(GTK_BOX(hbox2), button, FALSE, FALSE, 0);
@@ -331,6 +360,11 @@
(gpointer)dialog_window);
gtk_object_set_user_data(GTK_OBJECT(button), (gpointer)1);
gtk_widget_show(button);
+
+ buttons->yes = button;
+
+ gtk_signal_connect(GTK_OBJECT(dialog_window), "key_press_event",
+ GTK_SIGNAL_FUNC(dialog_close), buttons);
gtk_box_pack_end(GTK_BOX(hbox2), button, FALSE, FALSE, 0);
@@ -362,7 +396,8 @@
GtkWidget *d;
GtkWidget *label;
GtkWidget *close, *hbox2;
-
+ dialog_buttons *buttons = g_new0(dialog_buttons, 1);
+
d = gtk_dialog_new();
label = gtk_label_new(message);
gtk_widget_set_usize(label, 340, -1);
@@ -385,6 +420,11 @@
gtk_window_set_title(GTK_WINDOW(d), title);
gtk_window_set_position(GTK_WINDOW(d), GTK_WIN_POS_MOUSE);
gtk_signal_connect_object(GTK_OBJECT(close), "clicked",
GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(d));
+
+ buttons->yes = buttons->no = close;
+ gtk_signal_connect(GTK_OBJECT(d), "key_press_event",
+ GTK_SIGNAL_FUNC(dialog_close), buttons);
+
gtk_window_set_modal(GTK_WINDOW(d), modal);
gtk_widget_set_usize(d, 350, d->requisition.height<150?
150:d->requisition.height);
gtk_widget_show(d);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Ayttm-commits] CVS: ayttm/src dialog.c,1.19,1.20,
Colin Leroy <address@hidden> <=
- Prev by Date:
[Ayttm-commits] CVS: ayttm ChangeLog,1.372,1.373 configure.in,1.367,1.368
- Next by Date:
[Ayttm-commits] CVS: ayttm/src away_window.c,1.15,1.16 chat_room.c,1.55,1.56 dialog.c,1.20,1.21 edit_account_window.c,1.13,1.14prefs_window.c,1.4,1.5
- Previous by thread:
[Ayttm-commits] CVS: ayttm ChangeLog,1.372,1.373 configure.in,1.367,1.368
- Next by thread:
[Ayttm-commits] CVS: ayttm/src away_window.c,1.15,1.16 chat_room.c,1.55,1.56 dialog.c,1.20,1.21 edit_account_window.c,1.13,1.14prefs_window.c,1.4,1.5
- Index(es):