Re: Adding a user signal to a widget
- From: Olexiy Avramchenko <olexiy ctech cn ua>
- To: Hans Oesterholt <hdnews gawab com>
- Cc: gtk-list gnome org
- Subject: Re: Adding a user signal to a widget
- Date: Fri, 16 Sep 2005 09:48:50 +0300
Hans Oesterholt wrote:
Can anyone tell me how to add a user signal of type G_RUN_ACTION to a 
widget?
- I can't find G_RUN_ACTION in any header file I have.
Use G_SIGNAL_ACTION instead. There was a type in the reference, as I 
remember.
- I can't find |gtk_object_class_user_signal_new |in any header file I have.
It's from gtk+-1.2, use g_signal_new() in GTK2.
The following defines new signal for GtkWindow class with 
G_SIGNAL_ACTION flag:
-- C
#include <gtk/gtk.h>
static void
catcher ()
{
  g_print ("signal catched\n");
}
static void
emitter (GtkWidget * window)
{
  g_signal_emit_by_name (window, "user-signal");
}
int
main (int argc, char **argv)
{
  GtkWidget *window;
  GtkWidget *button;
  gtk_init (&argc, &argv);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_container_set_border_width (GTK_CONTAINER (window), 6);
  g_signal_connect (window, "delete-event", G_CALLBACK (gtk_main_quit), 0);
  g_signal_new ("user-signal",
                gtk_window_get_type (),
                G_SIGNAL_ACTION,
                0,
                NULL, NULL,
                g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0
  );
  g_signal_connect (window, "user-signal", G_CALLBACK (catcher), 0);
  button = gtk_button_new_with_label ("emit");
  g_signal_connect_swapped (button, "clicked", G_CALLBACK (emitter), 
window);
  gtk_container_add (GTK_CONTAINER (window), button);
  gtk_widget_show_all (window);
  gtk_main ();
  return 0;
}
-- C
	Olexiy
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]