Re: simple key-binding (up,left,down,right)...
- From: Paul Pogonyshev <pogonyshev gmx net>
- To: gtk-app-devel-list gnome org
- Subject: Re: simple key-binding (up,left,down,right)...
- Date: Sun, 27 Jun 2004 13:50:13 +0300
jozix wrote:
Hi, I didn't find any tutorials or refernce manuals to keybindig. I want to ask you for a very simple
example for binding basic keys like up, down, left, right...
Thank you very much
This sample code creates a "navigate" signal which will be emitted
when left/right/down/up key is pressed with different parameters.
Signal prototype is
void navigate(GtkXYZ *xyz, int parameter);
where parameter is one of NAVIGATE_(LEFT|RIGHT|UP|DOWN).
typedef struct _GtkUtilsBindingInfo GtkUtilsBindingInfo;
struct _GtkUtilsBindingInfo {
guint keyval;
GdkModifierType modifiers;
gint signal_parameter;
};
void
gtk_utils_add_similar_bindings(GtkBindingSet *binding_set,
const gchar *signal_name,
GtkUtilsBindingInfo *bindings,
int num_bindings)
{
int k;
assert(binding_set);
assert(signal_name);
assert(bindings);
assert(num_bindings > 0);
for (k = 0; k < num_bindings; k++) {
gtk_binding_entry_add_signal(binding_set,
bindings[k].keyval, bindings[k].modifiers,
signal_name,
1, G_TYPE_INT, bindings[k].signal_parameter);
}
}
static void
gtk_xyz_class_init(GtkXYZClass *class)
{
static GtkUtilsBindingInfo navigation_bindings[] = {
{ GDK_Left, 0, NAVIGATE_LEFT },
{ GDK_Right, 0, NAVIGATE_RIGHT },
{ GDK_Up, 0, NAVIGATE_UP },
{ GDK_Down, 0, NAVIGATE_DOWN },
};
GtkBindingSet *binding_set;
binding_set = gtk_binding_set_by_class(class);
gtk_utils_add_similar_bindings(binding_set, "navigate", navigation_bindings,
(sizeof(navigation_bindings)
/ sizeof(GtkUtilsBindingInfo)));
}
Paul
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]