Hi,

Here is a method to allow the shortcuts in Gtk applications.
You also need the code in the GtkExtend/GtkAccelGroup.st in the GtkLauncher 
SVN

Cheers,
Gwenael

static void
accel_group_connect (OOP accel_group,
                     guint accel_key,
                     GdkModifierType accel_mods,
                     GtkAccelFlags accel_flags,
                     OOP receiver,
                     OOP selector)
{
  GtkAccelGroup *cObject = _gst_vm_proxy->OOPToCObject (accel_group);
  int n_params;
  GClosure *closure;
  OOP oop_sel_args;

  oop_sel_args = _gst_vm_proxy->strMsgSend (selector, "numArgs", NULL);
  if (oop_sel_args == _gst_vm_proxy->nilOOP)
    return ; /* Invalid selector */

  /* Check the number of arguments in the selector against the number of
     arguments in the event callback */
  /* We can return fewer arguments than are in the event, if the others aren't
     wanted, but we can't return more, and returning nilOOPs instead is not
     100% satisfactory, so fail. */
  n_params = _gst_vm_proxy->OOPToInt (oop_sel_args);
  if (n_params > 4)
    return ;

  /* Receiver is assumed to be OK, no matter what it is */
  /* Parameters OK, so carry on and connect the signal */

  accel_group = narrow_oop_for_g_object ( G_OBJECT (cObject), accel_group);

  closure = create_smalltalk_closure (receiver, selector, NULL,
                                      accel_group, n_params);
  gtk_accel_group_connect (cObject, accel_key, accel_mods, accel_flags, 
closure);
}
-- 

GtkLauncher for GNU Smalltalk : http://gtklauncher.bioskop.fr/


_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to