⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtksignal.c

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 C
📖 第 1 页 / 共 4 页
字号:
}voidgtk_signal_emitv (GtkObject           *object,		  guint                signal_id,		  GtkArg              *params){  GtkSignal *signal;  g_return_if_fail (object != NULL);  g_return_if_fail (signal_id >= 1);    signal = LOOKUP_SIGNAL_ID (signal_id);  g_return_if_fail (signal != NULL);  g_return_if_fail (gtk_type_is_a (GTK_OBJECT_TYPE (object), signal->object_type));  if (signal->nparams > 0)    g_return_if_fail (params != NULL);  gtk_signal_real_emit (object, signal_id, params);}voidgtk_signal_emit (GtkObject *object,		 guint	    signal_id,		 ...){  GtkSignal *signal;  va_list    args;  GtkArg     params[MAX_SIGNAL_PARAMS + 1];  gboolean   abort;  g_return_if_fail (object != NULL);  g_return_if_fail (signal_id >= 1);    signal = LOOKUP_SIGNAL_ID (signal_id);  g_return_if_fail (signal != NULL);  g_return_if_fail (gtk_type_is_a (GTK_OBJECT_TYPE (object), signal->object_type));  va_start (args, signal_id);  abort = gtk_signal_collect_params (params,				     signal->nparams,				     signal->params,				     signal->return_val,				     args);  va_end (args);  if (!abort)    gtk_signal_real_emit (object, signal_id, params);}voidgtk_signal_emitv_by_name (GtkObject           *object,			  const gchar         *name,			  GtkArg              *params){  guint signal_id;    g_return_if_fail (object != NULL);  g_return_if_fail (name != NULL);  g_return_if_fail (params != NULL);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));    if (signal_id >= 1)    {      GtkSignal *signal;            signal = LOOKUP_SIGNAL_ID (signal_id);      g_return_if_fail (signal != NULL);      g_return_if_fail (gtk_type_is_a (GTK_OBJECT_TYPE (object), signal->object_type));      gtk_signal_real_emit (object, signal_id, params);    }  else    {      g_warning ("gtk_signal_emitv_by_name(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));    }}voidgtk_signal_emit_by_name (GtkObject	 *object,			 const gchar	 *name,			 ...){  guint signal_id;    g_return_if_fail (object != NULL);  g_return_if_fail (name != NULL);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));    if (signal_id >= 1)    {      GtkSignal *signal;      GtkArg     params[MAX_SIGNAL_PARAMS + 1];      va_list    args;      gboolean   abort;            signal = LOOKUP_SIGNAL_ID (signal_id);      g_return_if_fail (signal != NULL);      g_return_if_fail (gtk_type_is_a (GTK_OBJECT_TYPE (object), signal->object_type));      va_start (args, name);      abort = gtk_signal_collect_params (params,					 signal->nparams,					 signal->params,					 signal->return_val,					 args);      va_end (args);      if (!abort)	gtk_signal_real_emit (object, signal_id, params);    }  else    {      g_warning ("gtk_signal_emit_by_name(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));    }}voidgtk_signal_emit_stop (GtkObject *object,		      guint	  signal_id){  gint state;  g_return_if_fail (object != NULL);  g_return_if_fail (signal_id >= 1);    state = gtk_emission_check (current_emissions, object, signal_id);  if (state > 1)    g_warning ("gtk_signal_emit_stop(): emission (%u) for object `%s' cannot be stopped from emission hook",	       signal_id,	       gtk_type_name (GTK_OBJECT_TYPE (object)));  else if (state)    {      if (!gtk_emission_check (stop_emissions, object, signal_id))	gtk_emission_add (&stop_emissions, object, signal_id);    }  else    g_warning ("gtk_signal_emit_stop(): no current emission (%u) for object `%s'",	       signal_id,	       gtk_type_name (GTK_OBJECT_TYPE (object)));}voidgtk_signal_emit_stop_by_name (GtkObject	      *object,			      const gchar     *name){  guint signal_id;    g_return_if_fail (object != NULL);  g_return_if_fail (name != NULL);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (signal_id)    gtk_signal_emit_stop (object, signal_id);  else    g_warning ("gtk_signal_emit_stop_by_name(): could not find signal \"%s\" in the `%s' class ancestry",	       name,	       gtk_type_name (GTK_OBJECT_TYPE (object)));}guintgtk_signal_n_emissions (GtkObject  *object,			guint	    signal_id){  GtkEmission *emission;  guint n;    g_return_val_if_fail (object != NULL, 0);  g_return_val_if_fail (GTK_IS_OBJECT (object), 0);    n = 0;  for (emission = current_emissions; emission; emission = emission->next)    {      if (emission->object == object && emission->signal_id == signal_id)	n++;    }    return n;}guintgtk_signal_n_emissions_by_name (GtkObject	*object,				const gchar	*name){  guint signal_id;  guint n;    g_return_val_if_fail (object != NULL, 0);  g_return_val_if_fail (GTK_IS_OBJECT (object), 0);  g_return_val_if_fail (name != NULL, 0);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (signal_id)    n = gtk_signal_n_emissions (object, signal_id);  else    {      g_warning ("gtk_signal_n_emissions_by_name(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      n = 0;    }    return n;}guintgtk_signal_connect (GtkObject	  *object,		    const gchar	  *name,		    GtkSignalFunc  func,		    gpointer	   func_data){  guint signal_id;    g_return_val_if_fail (object != NULL, 0);  g_return_val_if_fail (GTK_IS_OBJECT (object), 0);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (!signal_id)    {      g_warning ("gtk_signal_connect(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      return 0;    }    return gtk_signal_connect_by_type (object, signal_id, 				     func, func_data, NULL,				     FALSE, FALSE, FALSE);}guintgtk_signal_connect_after (GtkObject	*object,			  const gchar	*name,			  GtkSignalFunc	 func,			  gpointer	 func_data){  guint signal_id;    g_return_val_if_fail (object != NULL, 0);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (!signal_id)    {      g_warning ("gtk_signal_connect_after(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      return 0;    }    return gtk_signal_connect_by_type (object, signal_id, 				     func, func_data, NULL,				     FALSE, TRUE, FALSE);}guint	gtk_signal_connect_full (GtkObject	     *object,			 const gchar	     *name,			 GtkSignalFunc	      func,			 GtkCallbackMarshal   marshal,			 gpointer	      func_data,			 GtkDestroyNotify     destroy_func,			 gint		      object_signal,			 gint		      after){  guint signal_id;    g_return_val_if_fail (object != NULL, 0);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (!signal_id)    {      g_warning ("gtk_signal_connect_full(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      return 0;    }    if (marshal)    return gtk_signal_connect_by_type (object, signal_id, (GtkSignalFunc) marshal, 				       func_data, destroy_func, 				       object_signal, after, TRUE);  else    return gtk_signal_connect_by_type (object, signal_id, func, 				       func_data, destroy_func, 				       object_signal, after, FALSE);}guintgtk_signal_connect_object (GtkObject	 *object,			   const gchar	 *name,			   GtkSignalFunc  func,			   GtkObject	 *slot_object){  guint signal_id;    g_return_val_if_fail (object != NULL, 0);  /* slot_object needs to be treated as ordinary pointer   */    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (!signal_id)    {      g_warning ("gtk_signal_connect_object(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      return 0;    }    return gtk_signal_connect_by_type (object, signal_id, 				     func, slot_object, NULL,				     TRUE, FALSE, FALSE);}guintgtk_signal_connect_object_after (GtkObject     *object,				 const gchar   *name,				 GtkSignalFunc	func,				 GtkObject     *slot_object){  guint signal_id;    g_return_val_if_fail (object != NULL, 0);    signal_id = gtk_signal_lookup (name, GTK_OBJECT_TYPE (object));  if (!signal_id)    {      g_warning ("gtk_signal_connect_object_after(): could not find signal \"%s\" in the `%s' class ancestry",		 name,		 gtk_type_name (GTK_OBJECT_TYPE (object)));      return 0;    }    return gtk_signal_connect_by_type (object, signal_id, 				     func, slot_object, NULL,				     TRUE, TRUE, FALSE);}voidgtk_signal_connect_while_alive (GtkObject	 *object,				const gchar	 *signal,				GtkSignalFunc	  func,				gpointer	  func_data,				GtkObject	 *alive_object){  GtkDisconnectInfo *info;    g_return_if_fail (object != NULL);  g_return_if_fail (GTK_IS_OBJECT (object));  g_return_if_fail (signal != NULL);  g_return_if_fail (func != NULL);  g_return_if_fail (alive_object != NULL);  g_return_if_fail (GTK_IS_OBJECT (alive_object));    info = g_chunk_new (GtkDisconnectInfo, gtk_disconnect_info_mem_chunk);  info->object1 = object;  info->object2 = alive_object;    info->signal_handler = gtk_signal_connect (object, signal, func, func_data);  info->disconnect_handler1 =    gtk_signal_connect_object (info->object1,			       "destroy",			       GTK_SIGNAL_FUNC (gtk_alive_disconnecter),			       (GtkObject*) info);  info->disconnect_handler2 =    gtk_signal_connect_object (info->object2,			       "destroy",			       GTK_SIGNAL_FUNC (gtk_alive_disconnecter),			       (GtkObject*) info);}voidgtk_signal_connect_object_while_alive (GtkObject	*object,				       const gchar	*signal,				       GtkSignalFunc	 func,				       GtkObject	*alive_object){  GtkDisconnectInfo *info;    g_return_if_fail (object != NULL);  g_return_if_fail (GTK_IS_OBJECT (object));  g_return_if_fail (signal != NULL);  g_return_if_fail (func != NULL);  g_return_if_fail (alive_object != NULL);  g_return_if_fail (GTK_IS_OBJECT (alive_object));    info = g_chunk_new (GtkDisconnectInfo, gtk_disconnect_info_mem_chunk);  info->object1 = object;  info->object2 = alive_object;    info->signal_handler = gtk_signal_connect_object (object, signal, func, alive_object);  info->disconnect_handler1 =    gtk_signal_connect_object (info->object1,			       "destroy",			       GTK_SIGNAL_FUNC (gtk_alive_disconnecter),			       (GtkObject*) info);  info->disconnect_handler2 =    gtk_signal_connect_object (info->object2,			       "destroy",			       GTK_SIGNAL_FUNC (gtk_alive_disconnecter),			       (GtkObject*) info);}voidgtk_signal_disconnect (GtkObject *object,		       guint	  handler_id){  GtkHandler *handler;    g_return_if_fail (object != NULL);  g_return_if_fail (handler_id > 0);    handler = gtk_object_get_data_by_id (object, gtk_handler_quark);    while (handler)    {      if (handler->id == handler_id)	{	  handler->id = 0;	  handler->blocked += 1;	  gtk_signal_handler_unref (handler, object);	  return;	}      handler = handler->next;    }    g_warning ("gtk_signal_disconnect(): could not find handler (%u)", handler_id);}voidgtk_signal_disconnect_by_func (GtkObject     *object,			       GtkSignalFunc  func,			       gpointer	      data){  GtkHandler *handler;  gint found_one;    g_return_if_fail (object != NULL);  g_return_if_fail (func != NULL);    found_one = FALSE;  handler = gtk_object_get_data_by_id (object, gtk_handler_quark);    while (handler)    {      GtkHandler *handler_next;            handler_next = handler->next;      if ((handler->id > 0) &&	  (handler->func == func) &&	  (handler->func_data == data))	{	  found_one = TRUE;	  handler->id = 0;	  handler->blocked += 1;	  gtk_signal_handler_unref (handler, object);	}      handler = handler_next;    }    if (!found_one)    g_warning ("gtk_signal_disconnect_by_func(): could not find handler (0x%0lX) containing data (0x%0lX)", (long) func, (long) data);}voidgtk_signal_disconnect_by_data (GtkObject *object,			       gpointer	  data){  GtkHandler *handler;  gint found_one;    g_return_if_fail (object != NULL);    found_one = FALSE;  handler = gtk_object_get_data_by_id (object, gtk_handler_quark);    while (handler)    {      GtkHandler *handler_next;            handler_next = handler->next;      if ((handler->id > 0) &&	  (handler->func_data == data))	{	  found_one = TRUE;	  handler->id = 0;	  handler->blocked += 1;	  gtk_signal_handler_unref (handler, object);	}      handler = handler_next;    }    if (!found_one)    g_warning ("gtk_signal_disconnect_by_data(): could not find handler containing data (0x%0lX)", (long) data);}void

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -