On Wed, 19 Sep 2007 21:21:19 -0700
Arthur Barlow <[EMAIL PROTECTED]> wrote:


>So, my question is simple.  What is the best way for the main form to  
>catch a key press event?  Any snippets of code would be appreciated.

I'm a Perl guy, so excuse any c sloppiness. 


/* cc -g `pkg-config --cflags --libs gtk+-2.0` -o keywatch keywatch.c */

#include <gtk/gtk.h>
#include <stdlib.h>
#include <gdk/gdkkeysyms.h>


gboolean on_key_press (GtkWidget * window,
                          GdkEventKey*  pKey,
                          gpointer userdata){
                          
   if (pKey->type == GDK_KEY_PRESS){
         
        g_print("%i\n", pKey->keyval);

          switch (pKey->keyval)
                {
                        case GDK_Escape :
                                gtk_main_quit ();
                        break;
                }
        }

        return FALSE;
}


int
main (int argc,
      char *argv[])
{
        GtkWidget * window;

        /* Gtk2->init; */
        gtk_init (&argc, &argv);

        /* my $window = new Gtk2::Window; */
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

        g_signal_connect (window, "destroy",
                          G_CALLBACK (gtk_main_quit), NULL);

        g_signal_connect (window,
                         "key-press-event",
                          G_CALLBACK (on_key_press),
                          NULL);


        /* $window->show_all(); */
        gtk_widget_show_all (window);

        /* Gtk2->main; */
        gtk_main ();

        return 0;
}


zentara

-- 
I'm not really a human, but I play one on earth.
http://zentara.net/japh.html
_______________________________________________
gtk-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to