Software: Apache/2.0.54 (Fedora). PHP/5.0.4 uname -a: Linux mina-info.me 2.6.17-1.2142_FC4smp #1 SMP Tue Jul 11 22:57:02 EDT 2006 i686 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/gtk-doc/html/gobject/ drwxr-xr-x |
Viewing file: Select action/file-type:
Synopsis#include <glib-object.h> GSignalInvocationHint; gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint, GValue *return_accu, const GValue *handler_return, gpointer data); typedef GSignalCMarshaller; gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint, guint n_param_values, const GValue *param_values, gpointer data); enum GSignalFlags; enum GSignalMatchType; GSignalQuery; #define G_SIGNAL_TYPE_STATIC_SCOPE #define G_SIGNAL_MATCH_MASK #define G_SIGNAL_FLAGS_MASK guint g_signal_new (const gchar *signal_name, GType itype, GSignalFlags signal_flags, guint class_offset, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, ...); guint g_signal_newv (const gchar *signal_name, GType itype, GSignalFlags signal_flags, GClosure *class_closure, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, GType *param_types); guint g_signal_new_valist (const gchar *signal_name, GType itype, GSignalFlags signal_flags, GClosure *class_closure, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, va_list args); void g_signal_query (guint signal_id, GSignalQuery *query); guint g_signal_lookup (const gchar *name, GType itype); const gchar* g_signal_name (guint signal_id); guint* g_signal_list_ids (GType itype, guint *n_ids); void g_signal_emit (gpointer instance, guint signal_id, GQuark detail, ...); void g_signal_emit_by_name (gpointer instance, const gchar *detailed_signal, ...); void g_signal_emitv (const GValue *instance_and_params, guint signal_id, GQuark detail, GValue *return_value); void g_signal_emit_valist (gpointer instance, guint signal_id, GQuark detail, va_list var_args); #define g_signal_connect (instance, detailed_signal, c_handler, data) #define g_signal_connect_after (instance, detailed_signal, c_handler, data) #define g_signal_connect_swapped (instance, detailed_signal, c_handler, data) gulong g_signal_connect_object (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer gobject, GConnectFlags connect_flags); enum GConnectFlags; gulong g_signal_connect_data (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags); gulong g_signal_connect_closure (gpointer instance, const gchar *detailed_signal, GClosure *closure, gboolean after); gulong g_signal_connect_closure_by_id (gpointer instance, guint signal_id, GQuark detail, GClosure *closure, gboolean after); void g_signal_handler_block (gpointer instance, gulong handler_id); void g_signal_handler_unblock (gpointer instance, gulong handler_id); void g_signal_handler_disconnect (gpointer instance, gulong handler_id); gulong g_signal_handler_find (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data); guint g_signal_handlers_block_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data); guint g_signal_handlers_unblock_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data); guint g_signal_handlers_disconnect_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data); gboolean g_signal_handler_is_connected (gpointer instance, gulong handler_id); #define g_signal_handlers_block_by_func (instance, func, data) #define g_signal_handlers_unblock_by_func(instance, func, data) #define g_signal_handlers_disconnect_by_func(instance, func, data) gboolean g_signal_has_handler_pending (gpointer instance, guint signal_id, GQuark detail, gboolean may_be_blocked); void g_signal_stop_emission (gpointer instance, guint signal_id, GQuark detail); void g_signal_stop_emission_by_name (gpointer instance, const gchar *detailed_signal); void g_signal_override_class_closure (guint signal_id, GType instance_type, GClosure *class_closure); void g_signal_chain_from_overridden (const GValue *instance_and_params, GValue *return_value); gulong g_signal_add_emission_hook (guint signal_id, GQuark detail, GSignalEmissionHook hook_func, gpointer hook_data, GDestroyNotify data_destroy); void g_signal_remove_emission_hook (guint signal_id, gulong hook_id); gboolean g_signal_parse_name (const gchar *detailed_signal, GType itype, guint *signal_id_p, GQuark *detail_p, gboolean force_detail_quark); GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance); GClosure* g_signal_type_cclosure_new (GType itype, guint struct_offset); gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint, GValue *return_accu, const GValue *handler_return, gpointer dummy); DescriptionThe basic concept of the signal system is that of the emission of a signal. Signals are introduced per-type and are identified through strings. Signals introduced for a parent type are available in derived types as well, so basically they are a per-type facility that is inherited. A signal emission mainly involves invocation of a certain set of callbacks in precisely defined manner. There are two main categories of such callbacks, per-object [1] ones and user provided ones. The per-object callbacks are most often referred to as "object method handler" or "default (signal) handler", while user provided callbacks are usually just called "signal handler". The object method handler is provided at signal creation time (this most frequently happens at the end of an object class' creation), while user provided handlers are frequently connected and disconnected to/from a certain signal on certain object instances. A signal emission consists of five stages, unless prematurely stopped:
The user-provided signal handlers are called in the order they were
connected in.
All handlers may prematurely stop a signal emission, and any number of
handlers may be connected, disconnected, blocked or unblocked during
a signal emission.
There are certain criteria for skipping user handlers in stages 2 and 4
of a signal emission.
First, user handlers may be blocked, blocked handlers are omitted
during callback invocation, to return from the "blocked" state, a
handler has to get unblocked exactly the same amount of times
it has been blocked before.
Second, upon emission of a DetailsGSignalInvocationHinttypedef struct { guint signal_id; GQuark detail; GSignalFlags run_type; } GSignalInvocationHint; The GSignalInvocationHint structure is used to pass on additional information to callbacks during a signal emission.
GSignalAccumulator ()gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint, GValue *return_accu, const GValue *handler_return, gpointer data);
The signal accumulator is a special callback function that can be used
to collect return values of the various callbacks that are called
during a signal emission. The signal accumulator is specified at signal
creation time, if it is left
GSignalCMarshallertypedef GClosureMarshal GSignalCMarshaller; This is the signature of marshaller functions, required to marshall arrays of parameter values to signal emissions into C language callback invocations. It is merely an alias to GClosureMarshal since the GClosure mechanism takes over responsibility of actual function invocation for the signal system. GSignalEmissionHook ()gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint, guint n_param_values, const GValue *param_values, gpointer data); A simple function pointer to get invoked when the signal is emitted. This allows you to tie a hook to the signal type, so that it will trap all emissions of that signal, from any object. You may not attach these to signals created with the G_SIGNAL_NO_HOOKS flag.
enum GSignalFlagstypedef enum { G_SIGNAL_RUN_FIRST = 1 << 0, G_SIGNAL_RUN_LAST = 1 << 1, G_SIGNAL_RUN_CLEANUP = 1 << 2, G_SIGNAL_NO_RECURSE = 1 << 3, G_SIGNAL_DETAILED = 1 << 4, G_SIGNAL_ACTION = 1 << 5, G_SIGNAL_NO_HOOKS = 1 << 6 } GSignalFlags; The signal flags are used to specify a signal's behaviour, the overall signal description outlines how especially the RUN flags control the stages of a signal emission.
enum GSignalMatchTypetypedef enum { G_SIGNAL_MATCH_ID = 1 << 0, G_SIGNAL_MATCH_DETAIL = 1 << 1, G_SIGNAL_MATCH_CLOSURE = 1 << 2, G_SIGNAL_MATCH_FUNC = 1 << 3, G_SIGNAL_MATCH_DATA = 1 << 4, G_SIGNAL_MATCH_UNBLOCKED = 1 << 5 } GSignalMatchType;
The match types specify what
GSignalQuerytypedef struct { guint signal_id; const gchar *signal_name; GType itype; GSignalFlags signal_flags; GType return_type; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ guint n_params; const GType *param_types; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ } GSignalQuery;
A structure holding in-depth information for a specific signal. It is
filled in by the
G_SIGNAL_TYPE_STATIC_SCOPE#define G_SIGNAL_TYPE_STATIC_SCOPE (G_TYPE_FLAG_RESERVED_ID_BIT) This macro flags signal argument types for which the signal system may assume that instances thereof remain persistent across all signal emissions they are used in. This is only useful for non ref-counted, value-copy types.
To flag a signal argument in this way, add
g_signal_new ("size_request", G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkWidgetClass, size_request), NULL, NULL, _gtk_marshal_VOID__BOXED, G_TYPE_NONE, 1, GTK_TYPE_REQUISITION | G_SIGNAL_TYPE_STATIC_SCOPE); g_signal_new ()guint g_signal_new (const gchar *signal_name, GType itype, GSignalFlags signal_flags, guint class_offset, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, ...); Creates a new signal. (This is usually done in the class initializer.) A signal name consists of segments consisting of ASCII letters and digits, separated by either the '-' or '_' character. The first character of a signal name must be a letter. Names which violate these rules lead to undefined behaviour of the GSignal system. When registering a signal and looking up a signal, either separator can be used, but they cannot be mixed.
g_signal_newv ()guint g_signal_newv (const gchar *signal_name, GType itype, GSignalFlags signal_flags, GClosure *class_closure, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, GType *param_types); Creates a new signal. (This is usually done in the class initializer.)
See
g_signal_new_valist ()guint g_signal_new_valist (const gchar *signal_name, GType itype, GSignalFlags signal_flags, GClosure *class_closure, GSignalAccumulator accumulator, gpointer accu_data, GSignalCMarshaller c_marshaller, GType return_type, guint n_params, va_list args); Creates a new signal. (This is usually done in the class initializer.)
See
g_signal_query ()void g_signal_query (guint signal_id, GSignalQuery *query);
Queries the signal system for in-depth information about a
specific signal. This function will fill in a user-provided
structure to hold signal-specific information. If an invalid
signal id is passed in, the
g_signal_lookup ()guint g_signal_lookup (const gchar *name, GType itype); Given the name of the signal and the type of object it connects to, gets the signal's identifying integer. Emitting the signal by number is somewhat faster than using the name each time. Also tries the ancestors of the given type.
See
g_signal_name ()const gchar* g_signal_name (guint signal_id); Given the signal's identifier, finds its name. Two different signals may have the same name, if they have differing types.
g_signal_list_ids ()guint* g_signal_list_ids (GType itype, guint *n_ids);
Lists the signals by id that a certain instance or interface type
created. Further information about the signals can be acquired through
g_signal_emit ()void g_signal_emit (gpointer instance, guint signal_id, GQuark detail, ...); Emits a signal.
Note that
g_signal_emit_by_name ()void g_signal_emit_by_name (gpointer instance, const gchar *detailed_signal, ...); Emits a signal.
Note that
g_signal_emitv ()void g_signal_emitv (const GValue *instance_and_params, guint signal_id, GQuark detail, GValue *return_value); Emits a signal.
Note that
g_signal_emit_valist ()void g_signal_emit_valist (gpointer instance, guint signal_id, GQuark detail, va_list var_args); Emits a signal.
Note that
g_signal_connect()#define g_signal_connect(instance, detailed_signal, c_handler, data) Connects a GCallback function to a signal for a particular object. The handler will be called before the default handler of the signal.
g_signal_connect_after()#define g_signal_connect_after(instance, detailed_signal, c_handler, data) Connects a GCallback function to a signal for a particular object. The handler will be called after the default handler of the signal.
g_signal_connect_swapped()#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) Connects a GCallback function to a signal for a particular object.
The instance on which the signal is emitted and
g_signal_connect_object ()gulong g_signal_connect_object (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer gobject, GConnectFlags connect_flags);
This is similar to
Note that there is a bug in GObject that makes this function
much less useful than it might seem otherwise. Once It's possible to work around this problem in a way that will continue to work with future versions of GObject by checking that the signal handler is still connected before disconnected it: if (g_signal_handler_is_connected (instance, id)) g_signal_handler_disconnect (instance, id);
enum GConnectFlagstypedef enum { G_CONNECT_AFTER = 1 << 0, G_CONNECT_SWAPPED = 1 << 1 } GConnectFlags; The connection flags are used to specify the behaviour of a signal's connection.
g_signal_connect_data ()gulong g_signal_connect_data (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer data, GClosureNotify destroy_data, GConnectFlags connect_flags);
Connects a GCallback function to a signal for a particular object. Similar
to
g_signal_connect_closure ()gulong g_signal_connect_closure (gpointer instance, const gchar *detailed_signal, GClosure *closure, gboolean after); Connects a closure to a signal for a particular object.
g_signal_connect_closure_by_id ()gulong g_signal_connect_closure_by_id (gpointer instance, guint signal_id, GQuark detail, GClosure *closure, gboolean after); Connects a closure to a signal for a particular object.
g_signal_handler_block ()void g_signal_handler_block (gpointer instance, gulong handler_id); Blocks a handler of an instance so it will not be called during any signal emissions unless it is unblocked again. Thus "blocking" a signal handler means to temporarily deactive it, a signal handler has to be unblocked exactly the same amount of times it has been blocked before to become active again.
The
g_signal_handler_unblock ()void g_signal_handler_unblock (gpointer instance, gulong handler_id);
Undoes the effect of a previous
The
g_signal_handler_disconnect ()void g_signal_handler_disconnect (gpointer instance, gulong handler_id);
Disconnects a handler from an instance so it will not be called during
any future or currently ongoing emissions of the signal it has been
connected to. The
The
g_signal_handler_find ()gulong g_signal_handler_find (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
Finds the first signal handler that matches certain selection criteria.
The criteria mask is passed as an OR-ed combination of GSignalMatchType
flags, and the criteria values are passed as arguments.
The match
g_signal_handlers_block_matched ()guint g_signal_handlers_block_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
Blocks all handlers on an instance that match a certain selection criteria.
The criteria mask is passed as an OR-ed combination of GSignalMatchType
flags, and the criteria values are passed as arguments.
Passing at least one of the
g_signal_handlers_unblock_matched ()guint g_signal_handlers_unblock_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
Unblocks all handlers on an instance that match a certain selection
criteria. The criteria mask is passed as an OR-ed combination of
GSignalMatchType flags, and the criteria values are passed as arguments.
Passing at least one of the
g_signal_handlers_disconnect_matched ()guint g_signal_handlers_disconnect_matched (gpointer instance, GSignalMatchType mask, guint signal_id, GQuark detail, GClosure *closure, gpointer func, gpointer data);
Disconnects all handlers on an instance that match a certain selection
criteria. The criteria mask is passed as an OR-ed combination of
GSignalMatchType flags, and the criteria values are passed as arguments.
Passing at least one of the
g_signal_handler_is_connected ()gboolean g_signal_handler_is_connected (gpointer instance, gulong handler_id);
Returns whether
g_signal_handlers_block_by_func()#define g_signal_handlers_block_by_func(instance, func, data)
Blocks all handlers on an instance that match
g_signal_handlers_unblock_by_func()#define g_signal_handlers_unblock_by_func(instance, func, data)
Unblocks all handlers on an instance that match
g_signal_handlers_disconnect_by_func()#define g_signal_handlers_disconnect_by_func(instance, func, data)
Disconnects all handlers on an instance that match
g_signal_has_handler_pending ()gboolean g_signal_has_handler_pending (gpointer instance, guint signal_id, GQuark detail, gboolean may_be_blocked);
Returns whether there are any handlers connected to One example of when you might use this is when the arguments to the signal are difficult to compute. A class implementor may opt to not emit the signal if no one is attached anyway, thus saving the cost of building the arguments.
g_signal_stop_emission ()void g_signal_stop_emission (gpointer instance, guint signal_id, GQuark detail); Stops a signal's current emission.
This will prevent the default method from running, if the signal was
Prints a warning if used on a signal which isn't being emitted.
g_signal_stop_emission_by_name ()void g_signal_stop_emission_by_name (gpointer instance, const gchar *detailed_signal); Stops a signal's current emission.
This is just like
g_signal_override_class_closure ()void g_signal_override_class_closure (guint signal_id, GType instance_type, GClosure *class_closure);
Overrides the class closure (i.e. the default handler) for the given signal
for emissions on instances of
g_signal_chain_from_overridden ()void g_signal_chain_from_overridden (const GValue *instance_and_params, GValue *return_value);
Calls the original class closure of a signal. This function should only
be called from an overridden class closure; see
g_signal_add_emission_hook ()gulong g_signal_add_emission_hook (guint signal_id, GQuark detail, GSignalEmissionHook hook_func, gpointer hook_data, GDestroyNotify data_destroy); Adds an emission hook for a signal, which will get called for any emission of that signal, independent of the instance. This is possible only for signals which don't have G_SIGNAL_NO_HOOKS flag set.
g_signal_remove_emission_hook ()void g_signal_remove_emission_hook (guint signal_id, gulong hook_id); Deletes an emission hook.
g_signal_parse_name ()gboolean g_signal_parse_name (const gchar *detailed_signal, GType itype, guint *signal_id_p, GQuark *detail_p, gboolean force_detail_quark);
Internal function to parse a signal name into its
g_signal_get_invocation_hint ()GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance); Returns the invocation hint of the innermost signal emission of instance.
g_signal_type_cclosure_new ()GClosure* g_signal_type_cclosure_new (GType itype, guint struct_offset);
Creates a new closure which invokes the function found at the offset
g_signal_accumulator_true_handled ()gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint, GValue *return_accu, const GValue *handler_return, gpointer dummy);
A predefined GSignalAccumulator for signals that return a
boolean values. The behavior that this accumulator gives is
that a return of
Since 2.4 [1] Although signals can deal with any kind of instantiatable type, i'm referring to those types as "object types" in the following, simply because that is the context most users will encounter signals in.
|
:: Command execute :: | |
--[ c99shell v. 1.0 pre-release build #16 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0032 ]-- |