61
64
typedef struct _IBusProxy IBusProxy;
62
65
typedef struct _IBusProxyClass IBusProxyClass;
67
#define IBUS_PROXY_FLAGS(obj) (IBUS_PROXY (obj)->flags)
68
#define IBUS_PROXY_SET_FLAGS(obj,flag) G_STMT_START{ (IBUS_PROXY_FLAGS (obj) |= (flag)); }G_STMT_END
69
#define IBUS_PROXY_UNSET_FLAGS(obj,flag) G_STMT_START{ (IBUS_PROXY_FLAGS (obj) &= ~(flag)); }G_STMT_END
70
#define IBUS_PROXY_DESTROYED(obj) (IBUS_PROXY_FLAGS (obj) & IBUS_DESTROYED)
67
75
* An opaque data type representing an IBusProxy.
69
77
struct _IBusProxy {
71
79
/* instance members */
74
84
struct _IBusProxyClass {
75
IBusObjectClass parent;
85
GDBusProxyClass parent;
77
87
/* class members */
78
gboolean (* ibus_signal) (IBusProxy *proxy,
79
IBusMessage *message);
88
void (* destroy) (IBusProxy *proxy);
82
91
gpointer pdummy[7];
85
GType ibus_proxy_get_type (void);
89
* @name: The service name of proxy object.
90
* @path: The path of proxy object.
91
* @connection: An IBusConnection.
92
* @returns: A newly allocated IBusProxy instance.
94
* New an IBusProxy instance.
95
* Property IBusProxy:name is set as @name, and
96
* IBusProxy:path is set as @path.
98
IBusProxy *ibus_proxy_new (const gchar *name,
100
IBusConnection *connection);
104
* @proxy: An IBusProxy.
105
* @message: The IBusMessage to be sent.
106
* @returns: TRUE if succeed; FALSE otherwise.
108
* Send an #IBusMessage to the corresponding service.
110
* @see_also ibus_proxy_call(), ibus_proxy_send_with_reply(), ibus_proxy_send_with_reply_and_block().
112
gboolean ibus_proxy_send (IBusProxy *proxy,
113
IBusMessage *message);
117
* @proxy: An IBusProxy.
118
* @method: The method to be called.
119
* @first_arg_type: Type of first argument.
120
* @...: Rest of arguments, NULL to mark the end.
121
* @returns: TRUE if succeed; FALSE otherwise.
123
* Call a method of the corresponding service.
125
* @see_also ibus_proxy_send(), ibus_proxy_call_with_reply(), ibus_proxy_call_with_reply_and_block().
127
gboolean ibus_proxy_call (IBusProxy *proxy,
129
GType first_arg_type,
133
* ibus_proxy_call_with_reply:
134
* @proxy: An IBusProxy.
135
* @method: The method to be called.
136
* @pending: Return location of a IBusPendingCall object, or NULL if connection is disconnected.
137
* @timeout_milliseconds: Time out in milliseconds.
138
* @error: Returned error is stored here; NULL to ignore error.
139
* @first_arg_type: Type of first argument.
140
* @...: Rest of arguments, NULL to mark the end.
141
* @returns: TRUE if succeed; FALSE otherwise.
143
* Call a method of the corresponding service, and returns an IBusPendingCall used to receive a reply to the message.
144
* This function calls ibus_connection_send_with_reply() to do the actual sending.
146
* @see_also: ibus_connection_send_with_reply(), ibus_proxy_call(),
147
* ibus_proxy_send_with_reply(), ibus_proxy_call_with_reply_and_block().
149
gboolean ibus_proxy_call_with_reply (IBusProxy *proxy,
151
IBusPendingCall **pending,
152
gint timeout_milliseconds,
154
GType first_arg_type,
158
* ibus_proxy_call_with_reply_and_block:
159
* @proxy: An IBusProxy.
160
* @method: The method to be called.
161
* @timeout_milliseconds: Time out in milliseconds.
162
* @error: Returned error is stored here; NULL to ignore error.
163
* @first_arg_type: Type of first argument.
164
* @...: Rest of arguments, NULL to mark the end.
165
* @returns: An IBusMessage that is the reply or NULL with an error code if the function fails.
167
* Call a method of the corresponding service and blocks a certain time period while waiting for
168
* an IBusMessage as reply.
169
* If the IBusMessage is not NULL, it calls ibus_connection_send_with_reply_and_block() to do the
172
* @see_also: ibus_connection_send_with_reply_and_block(), ibus_proxy_call(),
173
* ibus_proxy_send_with_reply(), ibus_proxy_call_with_reply_and_block().
175
IBusMessage *ibus_proxy_call_with_reply_and_block
178
gint timeout_milliseconds,
180
GType first_arg_type,
184
* ibus_proxy_send_with_reply:
185
* @proxy: An IBusProxy.
186
* @message: The IBusMessage to be sent.
187
* @pending: Return location of a IBusPendingCall object, or NULL if connection is disconnected.
188
* @timeout_milliseconds: Time out in milliseconds.
189
* @returns: TRUE if succeed; FALSE otherwise.
191
* Send an IBusMessage to the corresponding service and returns
192
* an IBusPendingCall used to receive a reply to the message.
193
* This function calls ibus_connection_send_with_reply() to do the actual sending.
195
* @see_also: ibus_connection_send_with_reply(), ibus_proxy_send(),
196
* ibus_proxy_call_with_reply(), ibus_proxy_send_with_reply_and_block().
198
gboolean ibus_proxy_send_with_reply (IBusProxy *proxy,
199
IBusMessage *message,
200
IBusPendingCall **pending,
201
gint timeout_milliseconds);
204
* ibus_proxy_send_with_reply_and_block:
205
* @proxy: An IBusProxy.
206
* @message: The IBusMessage to be sent.
207
* @returns: An IBusMessage that is the reply or NULL with an error code if the function fails.
209
* Send an IBusMessage to the corresponding service and blocks a certain time period while waiting for
210
* an IBusMessage as reply.
211
* If the IBusMessage is not NULL, it calls ibus_connection_send_with_reply_and_block() to do the
214
* @see_also: ibus_connection_send_with_reply_and_block(), ibus_proxy_send(), ibus_proxy_send_with_reply(),
215
* ibus_proxy_call_with_reply_and_block().
217
IBusMessage *ibus_proxy_send_with_reply_and_block
219
IBusMessage *message);
222
* ibus_proxy_handle_signal:
223
* @proxy: An IBusProxy.
224
* @message: The IBusMessage to be sent.
225
* @returns: TRUE if succeed; FALSE otherwise.
227
* Handle a signal by emitting IBusProxy::ibus-signal.
229
* If signal name is <constant>NameOwnerChanged</constant>
230
* and the service name is identical to the old name, then
231
* @proxy will be destroyed by ibus_object_destroy () and FALSE is returned.
232
* Otherwise TRUE is returned.
234
* Note that if the path of of message is not identical to the IBusProxy:path
235
* this function will not emit IBusProxy::ibus-signal.
238
gboolean ibus_proxy_handle_signal (IBusProxy *proxy,
239
IBusMessage *message);
242
* ibus_proxy_get_name:
243
* @proxy: An IBusProxy.
244
* @returns: The service name of the proxy object.
246
* Get the service name of a proxy object.
248
const gchar *ibus_proxy_get_name (IBusProxy *proxy);
251
* ibus_proxy_get_unique_name:
252
* @proxy: An IBusProxy.
253
* @returns: The service name of the proxy object.
255
* Get the unique name of the proxy object.
257
const gchar *ibus_proxy_get_unique_name (IBusProxy *proxy);
260
* ibus_proxy_get_path:
261
* @proxy: An IBusProxy.
262
* @returns: The path of proxy object.
264
* Get the path of a proxy object.
266
const gchar *ibus_proxy_get_path (IBusProxy *proxy);
269
* ibus_proxy_get_interface:
270
* @proxy: An IBusProxy.
271
* @returns: The service name of the proxy object.
273
* Get interface of a proxy object.
275
const gchar *ibus_proxy_get_interface (IBusProxy *proxy);
278
* ibus_proxy_get_connection:
279
* @proxy: An IBusProxy.
280
* @returns: (transfer none): The connection of the proxy object.
282
* Get the connection of a proxy object.
284
IBusConnection *ibus_proxy_get_connection (IBusProxy *proxy);
94
GType ibus_proxy_get_type (void);
99
* Dispose the proxy object. If the dbus connection is alive and the own variable above
100
* is TRUE (which is the default), org.freedesktop.IBus.Service.Destroy method will be
101
* called. Note that "destroy" signal might be emitted when ibus_proxy_destroy is called
102
* or the underlying dbus connection for the proxy is terminated. In the callback of the
103
* destroy signal, you might have to call something like 'g_object_unref(the_proxy);'.
105
void ibus_proxy_destroy (IBusProxy *proxy);