[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Get ascii code from GdkEventKey-Keyval
- From: Don Dudley <ddudley mybearcreek com>
- To: Daniel Miralles García <namarie oasi upc es>
- Cc: "gtk-app-devel-list gnome org" <gtk-app-devel-list gnome org>
- Subject: Re: Get ascii code from GdkEventKey-Keyval
- Date: 26 Dec 2003 12:04:12 -0700
I don't know if you're using it, but if not you might install a key
snooper with gtk_key_snooper install(). If so, I assume this is your
handler function.
I did a similar thing, and you might have a look at the gdk function
gdk_keyval_name() which converts a key value to a symbolic name, or
gdk_keyval_from_name(), which converts a key name to an actual key
value.
Reference manual is
developer.gnome.org/doc/API/2.0/gdk
Good Luck,
Don
> Hi, everyone.
>
> This is my first attempt to ask something here... err... hello ^_^
>
> I've got Mandrake 8 (I think) "upgraded" to 9.2. This "upgrading" was made
> manually and not as well as I wanted, but that's another story. I'm saying
> this only to tell that I'm still programming with gdk 1.2 (or 1.3, I mean
> it's not 2.x).
>
> Got a code like:
>
> void key_pressed (GtkWidget *widget, GdkEvent *event, gpointer func_data)
> {
> GdkEventKey *keyev;
>
> keyev = event;
>
> if (event->type == GDK_KEY_PRESS)
> {
> switch (keyev->keyval)
>
> /* A thing I don't understand: you can't access a "keyval" for directly
> "event", i've got to "move" event to a GdkEventKey before */
>
> {
> case GDK_Return:
> somewhere = ev_ok; somearg = 0; break;
> case GDK_Escape:
> somwehere = ev_cancel; somearg = 0; break;
> case GDK_F1:
> somewhere = ev_help; somearg = 0; break;
> /* and so */
> }
> }
> }
>
> As you can see I Scan the "keyval". If it's a "special key" it stores
> "somewhere" = some "special" code for me, and somearg=0.
>
> I want (if possible) that for each number / character, "somwehere" =
> ev_key and somearg = the ASCII code for this key (I want to print later
> sprintf (somearg) for instance).
>
> That is (my english is not good and my brain worst), I want to "catch" the
> key pressed (I've done it! Gracias, Miguel P!); but if the key is just a
> letter/number (A, B, ..., Z, 5, 8) just store a "ev_key". I though about:
>
> case GDK_f: somewhere = ev_ok; somearg = "f"; break;
>
> but it's a little hard doing it for each letter, number... and I think
> it's far better readable any code as
>
> ... default:
> somewhere = ev_character;
> somearg = get_ascii_code(evtecla->keyval);
> break;
>
>
> Have i explained it clearly? I hope so!
>
> Regards and thanks in advance,
>
> .-:Namarie:-.
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]