On Sun, 2001-08-26 at 20:38, Zeljko wrote: > > Please HELP about this . > > Calling for this function is from > > gtk_signal_connect(entry,'key_press_event'......etc > > Function callback_of_some_entry(widget:PGtkWidget; event:PGDKEvent; > data:pgpointer): gint; cdecl; > > Begin > case <WHAT??> of > GDK_Return : Do_THIS; > GDK_Tab : Do_That; > GDK_F1 : do_something_else; > End; > > callback_of_some_entry:=0; > End; > > Could be C example also It is going to be, 'cause I don't have any pascal bindings around, and it has been at least 10 years since I last touched pascal. Hope it's helpful anyway. The attached file shows an example of this. The <WHAT??> in the above is event->key.keyval (in C that is. Don't know the equivalent in pascal). /mailund -- And the Lord spake unto Elvis, "Thou hast spoken against me Elvis, and I curse thee to have thy blue suede shoes trod upon for all time..."
#include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> static void key_event (GtkEntry *entry, GdkEvent *event) { switch (event->key.keyval) { case GDK_Tab: if (strcmp ("a", gtk_entry_get_text (entry)) == 0) gtk_entry_set_text (entry, "ape"); else if (strcmp ("b", gtk_entry_get_text (entry)) == 0) gtk_entry_set_text (entry, "bonobo"); else if (strcmp ("c", gtk_entry_get_text (entry)) == 0) gtk_entry_set_text (entry, "chimpanzee"); break; case GDK_Return: g_print ("text is now \"%s\"\n", gtk_entry_get_text (entry)); break; case GDK_F1: gtk_entry_set_text (entry, "...<< F1 >>..."); break; } } int main (int argc, char *argv[]) { GtkWidget *win; GtkWidget *entry; gtk_init (&argc, &argv); win = gtk_window_new (GTK_WINDOW_TOPLEVEL); entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (win), entry); gtk_signal_connect (GTK_OBJECT (entry), "key_press_event", GTK_SIGNAL_FUNC (key_event), entry); gtk_widget_show_all (win); gtk_main (); return 0; }
Attachment:
pgpIxKXBaZam5.pgp
Description: PGP signature