Re: Tab pressing



In that case, I can see your point.

I have an app. though, where I wanted to override the space-bar key. I
used the ui-manager facility and created an action with an accelerator
consisting of a space key. It works really well. Plus I can control
when I want to respect that spacebar by de/re-sensitizing the action.
Of course, my application consists of only one window.

On 12/13/05, Bob Caryl <bob fis-cal com> wrote:
> That is a really good question, and frankly I don't know the answer.
> The reason I was using the Gtk::Main::signal_key_snooper in my
> applications was to invoke my help browser, and the only way I could
> find to get the keystroke regardless of what widget had the focus was to
> use that signal.  Paul's (dreadful idea) message before expresses a
> concern that is admittedly valid, e.g. it smacks of using a global
> variable, but if one is careful in its implementation, it should work.
> That's why I tested for a GdkEventKey::type of GDK_KEY_PRESS along with
> GdkEventKey::keyval so I'd only perform the desired action when the key
> went down, and not when it came back up again.
>
> Bob
>
> R. Douglas Barbieri wrote:
>
> >Wouldn't it work to listen to the keypress event in the container
> >widget of the controls he wants to tab through? Or do the child
> >widgets grab up the events before you get them?
> >
> >If that's the case, the child widgets would still have to listen to
> >their own key_press events, but then pass on tabs to the containing
> >widget.
> >
> >On 12/13/05, Bob Caryl <bob fis-cal com> wrote:
> >
> >
> >>R. Douglas Barbieri wrote:
> >>
> >>"You can also assign a keypress signal to any widget: signal_key_press_event()."
> >>
> >>
> >>This is true, but I think Volosatov is looking for a way for forces his
> >>widgets to duplicate the behavior they exhibit when they receive a
> >>GDK_Tab keystroke, to wit:  The next widget in the tab order grabs
> >>focus.  If Volosatov were to connect to all his widget's
> >>signal_key_press_event(s) I suppose he could artificially duplicate this
> >>behavior using grab_focus calls. . .    seems kinda kludgey to me.
> >>Nevertheless, if kludgey is the only way to do it, so be it.
> >>
> >>Bob
> >>
> >>R. Douglas Barbieri wrote:
> >>
> >>
> >>
> >>>You can also assign a keypress signal to any widget: signal_key_press_event().
> >>>
> >>>On 12/13/05, Bob Caryl <bob fis-cal com> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>First you must intercept the <Enter> keystroke event before it is
> >>>>propagated to the widgets contained in your application window(s).  To
> >>>>do this, you must connect your own callback slot to
> >>>>Gtk::Main::signal_key_snooper like this:
> >>>>
> >>>>Gtk::Main::signal_key_snooper().connect(sigc::mem_fun(*this,&YourClass::on_enter_key_pressed));
> >>>>
> >>>>This callback slot will receive a Gtk::Widget pointer and a GdkEventKey
> >>>>pointer; so you can determine whether or not the enter key has been
> >>>>pressed.  I attempted to use gtk_propagate_event to propagate a TAB
> >>>>keypress, but I was unable to get it to work.  The code below definitely
> >>>>intercepts the <Enter> keystroke.
> >>>>
> >>>>// code begins
> >>>>YourClass::on_enter_key_pressed(Gtk::Widget* widget, GdkEventKey *keyevent)
> >>>>{
> >>>>
> >>>>   if(keyevent->keyval == GDK_Enter && keyevent->type == GDK_KEY_PRESS)
> >>>>   {
> >>>>
> >>>>   }
> >>>>
> >>>>   return 1;
> >>>>
> >>>>}
> >>>>// code ends
> >>>>
> >>>>Disclaimer:  I could not find anything on what the return value from the
> >>>>callback should be or why.
> >>>>
> >>>>Can anyone help with code to propagate a tab key press for Volosatov?
> >>>>
> >>>>Bob
> >>>>
> >>>>Volosatov Alexander wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>I need when user press <Enter>, emit <Tab> pressing.
> >>>>>What function I must use and how?
> >>>>>
> >>>>>Alex
> >>>>>_______________________________________________
> >>>>>gtkmm-list mailing list
> >>>>>gtkmm-list gnome org
> >>>>>http://mail.gnome.org/mailman/listinfo/gtkmm-list
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>_______________________________________________
> >>>>gtkmm-list mailing list
> >>>>gtkmm-list gnome org
> >>>>http://mail.gnome.org/mailman/listinfo/gtkmm-list
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>--
> >>>R. Douglas Barbieri
> >>>doug dooglio net
> >>>
> >>>
> >>>
> >>>
> >>>
> >
> >
> >--
> >R. Douglas Barbieri
> >doug dooglio net
> >
> >
> >
>


--
R. Douglas Barbieri
doug dooglio net



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]