On 9/12/06, Matt Hoosier <[EMAIL PROTECTED]> wrote:
> On 9/12/06, Murray Cumming <[EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > > This is a friendly inquiry to see whether the wrappings for
> > > GtkAccelGroup's "connect" and "connect_by_path" methods have been
> > > omitted by design.
> > >
> > >   
> > > http://developer.gnome.org/doc/API/2.0/gtk/gtk-Keyboard-Accelerators.html#gtk-accel-group-connect
> > >
> > > The .hg file for the AccelGroup class has those two methods tucked
> > > inside an _IGNORE() block, but no comment exists to say whether
> > > there's fundamental brokenness about them, or perhaps they just
> > > haven't been requested up to this point.
> >
> > The main reason that they are not wrapped is that they take GClosure
> > parameters, which suggests that they are some funky thing only needed for
> > GTK+ internals or only needed rarely.
> >
> > Hopefully the same effect can be achieved with other parts of the API.
> > Does that seem to be the case?
> >
> > For instance, by specifying the accelerator and callback slot when
> > creating the Gtk::Action. I don't understand why anybody would want a
> > separate callback for an accelerator, instead of one callback for both the
> > accelerator and normal activation.
>
> Okay, that seems reasonable. I suppose that the slot gets attached by
> fetching the Gtk::Action::signal_activate object, but how does one
> specify the actual accelerator (for purposes of argument, suppose it's
> the Escape key) that should be used to activate the action? I don't
> see any obvious function on the Action class which attaches an
> accelerator.
>
> Suppose we've got the following already:
>
>   Gtk::Window w;
>   Glib::RefPtr<Gtk::Action> refAction = Gtk::Action::create ();
>   Glib::RefPtr<Gtk::AccelGroup> refGroup = Gtk::AccelGroup::create ();
>
>   w.add_accel_group (w);
>   refAction.signal_activate ().connect ( ... );
>   // what next?

Cancel that query. The following works well:

  Glib::ustring path = "<HelloWorld>/Category/Action";
  refAction->set_accel_group (refGroup);
  refAction->set_accel_path (path);
  refAction->connect_accelerator ();
  Gtk::AccelMap::add_entry (path, GDK_Escape, (Gdk::ModifierType) 0);

>
>
> This question seems to be straying into just questions about Gtk+ API;
> feel free to direct me to gtk-list instead.
>
> >
> > Murray Cumming
> > [EMAIL PROTECTED]
> > www.murrayc.com
> > www.openismus.com
> >
> >
>
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to