1.1 --- a/epoc32/include/stdapis/glib-2.0/gobject/gsignal.h Tue Nov 24 13:55:44 2009 +0000
1.2 +++ b/epoc32/include/stdapis/glib-2.0/gobject/gsignal.h Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -1,1 +1,272 @@
1.4 -gsignal.h
1.5 +/* GObject - GLib Type, Object, Parameter and Signal Library
1.6 + * Copyright (C) 2000-2001 Red Hat, Inc.
1.7 + * Portions copyright (c) 2006 Nokia Corporation. All rights reserved.
1.8 + *
1.9 + * This library is free software; you can redistribute it and/or
1.10 + * modify it under the terms of the GNU Lesser General Public
1.11 + * License as published by the Free Software Foundation; either
1.12 + * version 2 of the License, or (at your option) any later version.
1.13 + *
1.14 + * This library is distributed in the hope that it will be useful,
1.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1.17 + * Lesser General Public License for more details.
1.18 + *
1.19 + * You should have received a copy of the GNU Lesser General
1.20 + * Public License along with this library; if not, write to the
1.21 + * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
1.22 + * Boston, MA 02111-1307, USA.
1.23 + */
1.24 +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
1.25 +#error "Only <glib-object.h> can be included directly."
1.26 +#endif
1.27 +
1.28 +#ifndef __G_SIGNAL_H__
1.29 +#define __G_SIGNAL_H__
1.30 +
1.31 +#include <_ansi.h>
1.32 +#include <gobject/gclosure.h>
1.33 +#include <gobject/gvalue.h>
1.34 +#include <gobject/gparam.h>
1.35 +#include <gobject/gmarshal.h>
1.36 +
1.37 +G_BEGIN_DECLS
1.38 +
1.39 +/* --- typedefs --- */
1.40 +typedef struct _GSignalQuery GSignalQuery;
1.41 +typedef struct _GSignalInvocationHint GSignalInvocationHint;
1.42 +typedef GClosureMarshal GSignalCMarshaller;
1.43 +typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint,
1.44 + guint n_param_values,
1.45 + const GValue *param_values,
1.46 + gpointer data);
1.47 +typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint,
1.48 + GValue *return_accu,
1.49 + const GValue *handler_return,
1.50 + gpointer data);
1.51 +
1.52 +
1.53 +/* --- run, match and connect types --- */
1.54 +typedef enum
1.55 +{
1.56 + G_SIGNAL_RUN_FIRST = 1 << 0,
1.57 + G_SIGNAL_RUN_LAST = 1 << 1,
1.58 + G_SIGNAL_RUN_CLEANUP = 1 << 2,
1.59 + G_SIGNAL_NO_RECURSE = 1 << 3,
1.60 + G_SIGNAL_DETAILED = 1 << 4,
1.61 + G_SIGNAL_ACTION = 1 << 5,
1.62 + G_SIGNAL_NO_HOOKS = 1 << 6
1.63 +} GSignalFlags;
1.64 +#define G_SIGNAL_FLAGS_MASK 0x7f
1.65 +typedef enum
1.66 +{
1.67 + G_CONNECT_AFTER = 1 << 0,
1.68 + G_CONNECT_SWAPPED = 1 << 1
1.69 +} GConnectFlags;
1.70 +typedef enum
1.71 +{
1.72 + G_SIGNAL_MATCH_ID = 1 << 0,
1.73 + G_SIGNAL_MATCH_DETAIL = 1 << 1,
1.74 + G_SIGNAL_MATCH_CLOSURE = 1 << 2,
1.75 + G_SIGNAL_MATCH_FUNC = 1 << 3,
1.76 + G_SIGNAL_MATCH_DATA = 1 << 4,
1.77 + G_SIGNAL_MATCH_UNBLOCKED = 1 << 5
1.78 +} GSignalMatchType;
1.79 +#define G_SIGNAL_MATCH_MASK 0x3f
1.80 +#define G_SIGNAL_TYPE_STATIC_SCOPE (G_TYPE_FLAG_RESERVED_ID_BIT)
1.81 +
1.82 +
1.83 +/* --- signal information --- */
1.84 +struct _GSignalInvocationHint
1.85 +{
1.86 + guint signal_id;
1.87 + GQuark detail;
1.88 + GSignalFlags run_type;
1.89 +};
1.90 +struct _GSignalQuery
1.91 +{
1.92 + guint signal_id;
1.93 + const gchar *signal_name;
1.94 + GType itype;
1.95 + GSignalFlags signal_flags;
1.96 + GType return_type; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */
1.97 + guint n_params;
1.98 + const GType *param_types; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */
1.99 +};
1.100 +
1.101 +
1.102 +/* --- signals --- */
1.103 +IMPORT_C guint g_signal_newv (const gchar *signal_name,
1.104 + GType itype,
1.105 + GSignalFlags signal_flags,
1.106 + GClosure *class_closure,
1.107 + GSignalAccumulator accumulator,
1.108 + gpointer accu_data,
1.109 + GSignalCMarshaller c_marshaller,
1.110 + GType return_type,
1.111 + guint n_params,
1.112 + GType *param_types);
1.113 +IMPORT_C guint g_signal_new_valist (const gchar *signal_name,
1.114 + GType itype,
1.115 + GSignalFlags signal_flags,
1.116 + GClosure *class_closure,
1.117 + GSignalAccumulator accumulator,
1.118 + gpointer accu_data,
1.119 + GSignalCMarshaller c_marshaller,
1.120 + GType return_type,
1.121 + guint n_params,
1.122 + va_list args);
1.123 +IMPORT_C guint g_signal_new (const gchar *signal_name,
1.124 + GType itype,
1.125 + GSignalFlags signal_flags,
1.126 + guint class_offset,
1.127 + GSignalAccumulator accumulator,
1.128 + gpointer accu_data,
1.129 + GSignalCMarshaller c_marshaller,
1.130 + GType return_type,
1.131 + guint n_params,
1.132 + ...);
1.133 +IMPORT_C void g_signal_emitv (const GValue *instance_and_params,
1.134 + guint signal_id,
1.135 + GQuark detail,
1.136 + GValue *return_value);
1.137 +IMPORT_C void g_signal_emit_valist (gpointer instance,
1.138 + guint signal_id,
1.139 + GQuark detail,
1.140 + va_list var_args);
1.141 +IMPORT_C void g_signal_emit (gpointer instance,
1.142 + guint signal_id,
1.143 + GQuark detail,
1.144 + ...);
1.145 +IMPORT_C void g_signal_emit_by_name (gpointer instance,
1.146 + const gchar *detailed_signal,
1.147 + ...);
1.148 +IMPORT_C guint g_signal_lookup (const gchar *name,
1.149 + GType itype);
1.150 +IMPORT_C G_CONST_RETURN gchar* g_signal_name (guint signal_id);
1.151 +IMPORT_C void g_signal_query (guint signal_id,
1.152 + GSignalQuery *query);
1.153 +IMPORT_C guint* g_signal_list_ids (GType itype,
1.154 + guint *n_ids);
1.155 +IMPORT_C gboolean g_signal_parse_name (const gchar *detailed_signal,
1.156 + GType itype,
1.157 + guint *signal_id_p,
1.158 + GQuark *detail_p,
1.159 + gboolean force_detail_quark);
1.160 +IMPORT_C GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance);
1.161 +
1.162 +
1.163 +/* --- signal emissions --- */
1.164 +IMPORT_C void g_signal_stop_emission (gpointer instance,
1.165 + guint signal_id,
1.166 + GQuark detail);
1.167 +IMPORT_C void g_signal_stop_emission_by_name (gpointer instance,
1.168 + const gchar *detailed_signal);
1.169 +IMPORT_C gulong g_signal_add_emission_hook (guint signal_id,
1.170 + GQuark detail,
1.171 + GSignalEmissionHook hook_func,
1.172 + gpointer hook_data,
1.173 + GDestroyNotify data_destroy);
1.174 +IMPORT_C void g_signal_remove_emission_hook (guint signal_id,
1.175 + gulong hook_id);
1.176 +
1.177 +
1.178 +/* --- signal handlers --- */
1.179 +IMPORT_C gboolean g_signal_has_handler_pending (gpointer instance,
1.180 + guint signal_id,
1.181 + GQuark detail,
1.182 + gboolean may_be_blocked);
1.183 +IMPORT_C gulong g_signal_connect_closure_by_id (gpointer instance,
1.184 + guint signal_id,
1.185 + GQuark detail,
1.186 + GClosure *closure,
1.187 + gboolean after);
1.188 +IMPORT_C gulong g_signal_connect_closure (gpointer instance,
1.189 + const gchar *detailed_signal,
1.190 + GClosure *closure,
1.191 + gboolean after);
1.192 +IMPORT_C gulong g_signal_connect_data (gpointer instance,
1.193 + const gchar *detailed_signal,
1.194 + GCallback c_handler,
1.195 + gpointer data,
1.196 + GClosureNotify destroy_data,
1.197 + GConnectFlags connect_flags);
1.198 +IMPORT_C void g_signal_handler_block (gpointer instance,
1.199 + gulong handler_id);
1.200 +IMPORT_C void g_signal_handler_unblock (gpointer instance,
1.201 + gulong handler_id);
1.202 +IMPORT_C void g_signal_handler_disconnect (gpointer instance,
1.203 + gulong handler_id);
1.204 +IMPORT_C gboolean g_signal_handler_is_connected (gpointer instance,
1.205 + gulong handler_id);
1.206 +IMPORT_C gulong g_signal_handler_find (gpointer instance,
1.207 + GSignalMatchType mask,
1.208 + guint signal_id,
1.209 + GQuark detail,
1.210 + GClosure *closure,
1.211 + gpointer func,
1.212 + gpointer data);
1.213 +IMPORT_C guint g_signal_handlers_block_matched (gpointer instance,
1.214 + GSignalMatchType mask,
1.215 + guint signal_id,
1.216 + GQuark detail,
1.217 + GClosure *closure,
1.218 + gpointer func,
1.219 + gpointer data);
1.220 +IMPORT_C guint g_signal_handlers_unblock_matched (gpointer instance,
1.221 + GSignalMatchType mask,
1.222 + guint signal_id,
1.223 + GQuark detail,
1.224 + GClosure *closure,
1.225 + gpointer func,
1.226 + gpointer data);
1.227 +IMPORT_C guint g_signal_handlers_disconnect_matched (gpointer instance,
1.228 + GSignalMatchType mask,
1.229 + guint signal_id,
1.230 + GQuark detail,
1.231 + GClosure *closure,
1.232 + gpointer func,
1.233 + gpointer data);
1.234 +
1.235 +
1.236 +/* --- chaining for language bindings --- */
1.237 +IMPORT_C void g_signal_override_class_closure (guint signal_id,
1.238 + GType instance_type,
1.239 + GClosure *class_closure);
1.240 +IMPORT_C void g_signal_chain_from_overridden (const GValue *instance_and_params,
1.241 + GValue *return_value);
1.242 +
1.243 +
1.244 +/* --- convenience --- */
1.245 +#define g_signal_connect(instance, detailed_signal, c_handler, data) \
1.246 + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0)
1.247 +#define g_signal_connect_after(instance, detailed_signal, c_handler, data) \
1.248 + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_AFTER)
1.249 +#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) \
1.250 + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_SWAPPED)
1.251 +#define g_signal_handlers_disconnect_by_func(instance, func, data) \
1.252 + g_signal_handlers_disconnect_matched ((instance), \
1.253 + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \
1.254 + 0, 0, NULL, (func), (data))
1.255 +#define g_signal_handlers_block_by_func(instance, func, data) \
1.256 + g_signal_handlers_block_matched ((instance), \
1.257 + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \
1.258 + 0, 0, NULL, (func), (data))
1.259 +#define g_signal_handlers_unblock_by_func(instance, func, data) \
1.260 + g_signal_handlers_unblock_matched ((instance), \
1.261 + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \
1.262 + 0, 0, NULL, (func), (data))
1.263 +
1.264 +
1.265 +IMPORT_C gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint,
1.266 + GValue *return_accu,
1.267 + const GValue *handler_return,
1.268 + gpointer dummy);
1.269 +
1.270 +/*< private >*/
1.271 +IMPORT_C void g_signal_handlers_destroy (gpointer instance);
1.272 +void _g_signals_destroy (GType itype);
1.273 +
1.274 +G_END_DECLS
1.275 +
1.276 +#endif /* __G_SIGNAL_H__ */