File: a00160.html

package info (click to toggle)
scim 1.4.7-3
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 20,368 kB
  • ctags: 12,834
  • sloc: cpp: 51,239; sh: 22,370; ansic: 18,716; makefile: 1,258; xml: 641; yacc: 288
file content (626 lines) | stat: -rw-r--r-- 38,173 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>scim: IMEngine</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.0 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
  </ul></div>
<h1>IMEngine</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">scim::ComposeKeyFactory</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A simple IMEngine to deal with the Compose keys.  <a href="a00012.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">scim::ComposeKeyInstance</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">scim::FilterError</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An exception class to hold Filter related errors.  <a href="a00025.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">scim::FilterInfo</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Structure to hold information for a Filter.  <a href="a00027.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">scim::FilterFactoryBase</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base class to implement FilterFactory classes.  <a href="a00026.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html">scim::FilterInstanceBase</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base class to implement FilterInstance classes.  <a href="a00028.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html">scim::FilterManager</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html">scim::FilterModule</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The class to manipulate the Filter modules.  <a href="a00030.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">scim::IMEngineError</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An exception class to hold IMEngine related errors.  <a href="a00049.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">scim::IMEngineFactoryBase</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base class of the real input methods' IMEngineFactory classes.  <a href="a00050.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html">scim::IMEngineInstanceBase</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base class of the real input methods' IMEngineInstance classes.  <a href="a00052.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">scim::DummyIMEngineFactory</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A trivial IMEngine that do nothing.  <a href="a00022.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html">scim::DummyIMEngineInstance</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">scim::IMEngineModule</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The class to manipulate the IMEngine modules.  <a href="a00053.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g51804fa5217a1a190f34cc02dcfa8ed6">SCIM_COMPOSE_KEY_FACTORY_UUID</a>&nbsp;&nbsp;&nbsp;&quot;c6bebc27-6324-4b77-8ad4-6d41dcaf2e08&quot;</td></tr>

<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Pointer&lt; FilterFactoryBase &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g06e027f4cc9423e7c908aada5050277d">scim::FilterFactoryPointer</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gff6a45d839d234b2bcf51a742478af73">scim::FilterModuleInitFunc</a> (const ConfigPointer &amp;config)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a Filter <a class="el" href="a00063.html">Module</a>.  <a href="#gff6a45d839d234b2bcf51a742478af73"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef FilterFactoryPointer(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g28ddedc84bb0b8ca5f0fd4e2d28872dc">scim::FilterModuleCreateFilterFunc</a> (unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an object of this FilterFactory class.  <a href="#g28ddedc84bb0b8ca5f0fd4e2d28872dc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef bool(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g8136fe78dd2beecb188f8da0dcbcaf80">scim::FilterModuleGetFilterInfoFunc</a> (unsigned int index, FilterInfo &amp;info)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get basic information of the FilterFactory class provided by this module.  <a href="#g8136fe78dd2beecb188f8da0dcbcaf80"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Pointer&lt; IMEngineFactoryBase &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g688a08d9d3cb1b9549b5d8254dcf53ca">scim::IMEngineFactoryPointer</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Pointer&lt; IMEngineInstanceBase &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g818c8e9295992f3b4226ee903f7d6f87">scim::IMEngineInstancePointer</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot1&lt; void, IMEngineInstanceBase * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g34c7e02c6215d8a990b62b4fdc230131">scim::IMEngineSlotVoid</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g788da0e62a764e09dadeb1a6c4e05a7d">scim::IMEngineSlotInt</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 bool &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g27be9a2df43b2f1e1f4a261c38d9b6af">scim::IMEngineSlotBool</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const String &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g1054865b5589d6d616b9a950cda525ad">scim::IMEngineSlotString</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const WideString &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g6a295790fb4bd60d5860ebc0ef1bbd1b">scim::IMEngineSlotWideString</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const KeyEvent &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#ge074e84d1c7ff5ae9e9f6c5ca041ca97">scim::IMEngineSlotKeyEvent</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const LookupTable &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g8da3541512b5f743ba8a9823fcb232bf">scim::IMEngineSlotLookupTable</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const Property &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gccb53d25c7c8f4b2165094a17126e17b">scim::IMEngineSlotProperty</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot2&lt; void, IMEngineInstanceBase *,<br>
 const PropertyList &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g4ad9872231cda5fdc89e883b98c2c7bc">scim::IMEngineSlotPropertyList</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot3&lt; void, IMEngineInstanceBase *,<br>
 const String &amp;, const Transaction &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g39891ac5e52a66ea666886dc8be1bf0e">scim::IMEngineSlotStringTransaction</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot3&lt; void, IMEngineInstanceBase *,<br>
 const WideString &amp;, const <br>
AttributeList &amp; &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g1bbf0ac58b3effbb917472ea55642d3c">scim::IMEngineSlotWideStringAttributeList</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot5&lt; bool, IMEngineInstanceBase *,<br>
 WideString &amp;, int &amp;, int,<br>
 int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gfab673539103ed5ce8c7e5038a125403">scim::IMEngineSlotGetSurroundingText</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Slot3&lt; bool, IMEngineInstanceBase *,<br>
 int, int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g375e4473d4ed9ac3c098474f94bd71d4">scim::IMEngineSlotDeleteSurroundingText</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g7cbb3e02d677ded14a56a7d51caccfe6">scim::IMEngineModuleInitFunc</a> (const ConfigPointer &amp;config)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a IMEngine <a class="el" href="a00063.html">Module</a>.  <a href="#g7cbb3e02d677ded14a56a7d51caccfe6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef IMEngineFactoryPointer(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gb38a67508174075d120c03ba40e9a5d3">scim::IMEngineModuleCreateFactoryFunc</a> (unsigned int engine)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a factory instance for an engine,.  <a href="#gb38a67508174075d120c03ba40e9a5d3"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#g4f5e9e0461fb6a3dff0c2942429de97a">scim::ClientCapability</a> { <br>
&nbsp;&nbsp;<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97a2359d0d05087f8ee07ee45e620d6f1eb">scim::SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT</a> =  (1 &lt;&lt; 0), 
<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97a8fd332bc9c9671b0e5837ae1537e1132">scim::SCIM_CLIENT_CAP_SINGLE_LEVEL_PROPERTY</a> =  (1 &lt;&lt; 1), 
<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97aacb463b9a1b2b6e549df7d63e42d4d72">scim::SCIM_CLIENT_CAP_MULTI_LEVEL_PROPERTY</a> =  (1 &lt;&lt; 2), 
<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97a191cebfb0add87bf86c69192f529a8ef">scim::SCIM_CLIENT_CAP_TRIGGER_PROPERTY</a> =  (1 &lt;&lt; 3), 
<br>
&nbsp;&nbsp;<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97a00696b51b7322a8965227c544fd13589">scim::SCIM_CLIENT_CAP_HELPER_MODULE</a> =  (1 &lt;&lt; 4), 
<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97ae2c37e26ffd220a2ce0d65dc254a98a4">scim::SCIM_CLIENT_CAP_SURROUNDING_TEXT</a> =  (1 &lt;&lt; 5), 
<a class="el" href="a00160.html#gg4f5e9e0461fb6a3dff0c2942429de97af05fc55ea1183401d436280429bc880c">scim::SCIM_CLIENT_CAP_ALL_CAPABILITIES</a> =  0x3F
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enum values of all Client Capabilities bitmask.  <a href="a00160.html#g4f5e9e0461fb6a3dff0c2942429de97a">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gc5748233a38f490985fcb9dbc01aac00">scim::scim_get_filter_module_list</a> (std::vector&lt; String &gt; &amp;mod_list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a name list of currently available Filter modules.  <a href="#gc5748233a38f490985fcb9dbc01aac00"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00160.html#gb067e56004f27a30a5deb3fceabc3fc5">scim::scim_get_imengine_module_list</a> (std::vector&lt; String &gt; &amp;mod_list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a name list of currently available IMEngine modules.  <a href="#gb067e56004f27a30a5deb3fceabc3fc5"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The base classes for filter input method engine modules.<p>
The base classes for input method engine modules. <hr><h2>Define Documentation</h2>
<a class="anchor" name="g51804fa5217a1a190f34cc02dcfa8ed6"></a><!-- doxytag: member="scim_compose_key.h::SCIM_COMPOSE_KEY_FACTORY_UUID" ref="g51804fa5217a1a190f34cc02dcfa8ed6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define SCIM_COMPOSE_KEY_FACTORY_UUID&nbsp;&nbsp;&nbsp;&quot;c6bebc27-6324-4b77-8ad4-6d41dcaf2e08&quot;          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g06e027f4cc9423e7c908aada5050277d"></a><!-- doxytag: member="scim::FilterFactoryPointer" ref="g06e027f4cc9423e7c908aada5050277d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Pointer&lt; FilterFactoryBase &gt; <a class="el" href="a00070.html">scim::FilterFactoryPointer</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A smart pointer for <a class="el" href="a00026.html">scim::FilterFactoryBase</a> and its derived classes. 
</div>
</div><p>
<a class="anchor" name="gff6a45d839d234b2bcf51a742478af73"></a><!-- doxytag: member="scim::FilterModuleInitFunc" ref="gff6a45d839d234b2bcf51a742478af73" args="(const ConfigPointer &amp;config)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int(*) <a class="el" href="a00160.html#gff6a45d839d234b2bcf51a742478af73">scim::FilterModuleInitFunc</a>(const ConfigPointer &amp;config)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a Filter <a class="el" href="a00063.html">Module</a>. 
<p>
There must be a function called "scim_filter_module_init" in each filter module which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.<p>
If a filter needs services from other IMEngineFactory objects, it should obtain the pointer of these IMEngineFactory objects from the given BacnEnd pointer. But please note that, those IMEngineFactory objects may not be loaded yet, when initializing this Filter module. So the pointers of available IMEngineFactory objects should only be queried from the BackEnd at the first time to used by this Filter.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>config</em>&nbsp;</td><td>a <a class="el" href="a00014.html">ConfigBase</a> instance to maintain the configuration.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of filters provided by this module. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g28ddedc84bb0b8ca5f0fd4e2d28872dc"></a><!-- doxytag: member="scim::FilterModuleCreateFilterFunc" ref="g28ddedc84bb0b8ca5f0fd4e2d28872dc" args="(unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef FilterFactoryPointer(*) <a class="el" href="a00160.html#g28ddedc84bb0b8ca5f0fd4e2d28872dc">scim::FilterModuleCreateFilterFunc</a>(unsigned int index)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an object of this FilterFactory class. 
<p>
There must be a function called "scim_filter_module_create_filter" which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.<p>
A new FilterFactory object should be returned for each call. Because multiple objects would be used at the same time.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index of the FilterFactory to be used to create the object. Must between 0 and (number_of_filters - 1). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>backend</em>&nbsp;</td><td>the BackEnd instance which holds all real IMEngineFactory objects. Some filter may want to use other IMEngineFactory object to do some job, eg. inverse convert.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the pointer of the FilterFactory object. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g8136fe78dd2beecb188f8da0dcbcaf80"></a><!-- doxytag: member="scim::FilterModuleGetFilterInfoFunc" ref="g8136fe78dd2beecb188f8da0dcbcaf80" args="(unsigned int index, FilterInfo &amp;info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef bool(*) <a class="el" href="a00160.html#g8136fe78dd2beecb188f8da0dcbcaf80">scim::FilterModuleGetFilterInfoFunc</a>(unsigned int index, FilterInfo &amp;info)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get basic information of the FilterFactory class provided by this module. 
<p>
There must be a function called "scim_filter_module_get_filter_info" which complies with this prototype. This function name can have a prefix like sctc_LTX_, in which "sctc" is the module's name.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index of the FilterFactory to be queried.</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>The object to hold the information. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>the index of the Filter to be queried.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The uuid of this FilterFactory class. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g688a08d9d3cb1b9549b5d8254dcf53ca"></a><!-- doxytag: member="scim::IMEngineFactoryPointer" ref="g688a08d9d3cb1b9549b5d8254dcf53ca" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Pointer&lt; IMEngineFactoryBase &gt; <a class="el" href="a00070.html">scim::IMEngineFactoryPointer</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A smart pointer for <a class="el" href="a00050.html">scim::IMEngineFactoryBase</a> and its derived classes. 
</div>
</div><p>
<a class="anchor" name="g818c8e9295992f3b4226ee903f7d6f87"></a><!-- doxytag: member="scim::IMEngineInstancePointer" ref="g818c8e9295992f3b4226ee903f7d6f87" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Pointer&lt; IMEngineInstanceBase &gt; <a class="el" href="a00070.html">scim::IMEngineInstancePointer</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
A smart pointer for <a class="el" href="a00052.html">scim::IMEngineInstanceBase</a> and its derived classes. 
</div>
</div><p>
<a class="anchor" name="g34c7e02c6215d8a990b62b4fdc230131"></a><!-- doxytag: member="scim::IMEngineSlotVoid" ref="g34c7e02c6215d8a990b62b4fdc230131" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot1&lt;void, IMEngineInstanceBase*&gt; <a class="el" href="a00097.html">scim::IMEngineSlotVoid</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g788da0e62a764e09dadeb1a6c4e05a7d"></a><!-- doxytag: member="scim::IMEngineSlotInt" ref="g788da0e62a764e09dadeb1a6c4e05a7d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,int&gt; <a class="el" href="a00098.html">scim::IMEngineSlotInt</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g27be9a2df43b2f1e1f4a261c38d9b6af"></a><!-- doxytag: member="scim::IMEngineSlotBool" ref="g27be9a2df43b2f1e1f4a261c38d9b6af" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,bool&gt; <a class="el" href="a00098.html">scim::IMEngineSlotBool</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g1054865b5589d6d616b9a950cda525ad"></a><!-- doxytag: member="scim::IMEngineSlotString" ref="g1054865b5589d6d616b9a950cda525ad" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const String&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotString</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g6a295790fb4bd60d5860ebc0ef1bbd1b"></a><!-- doxytag: member="scim::IMEngineSlotWideString" ref="g6a295790fb4bd60d5860ebc0ef1bbd1b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const WideString&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotWideString</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="ge074e84d1c7ff5ae9e9f6c5ca041ca97"></a><!-- doxytag: member="scim::IMEngineSlotKeyEvent" ref="ge074e84d1c7ff5ae9e9f6c5ca041ca97" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const KeyEvent&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotKeyEvent</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g8da3541512b5f743ba8a9823fcb232bf"></a><!-- doxytag: member="scim::IMEngineSlotLookupTable" ref="g8da3541512b5f743ba8a9823fcb232bf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const LookupTable&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotLookupTable</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gccb53d25c7c8f4b2165094a17126e17b"></a><!-- doxytag: member="scim::IMEngineSlotProperty" ref="gccb53d25c7c8f4b2165094a17126e17b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const Property&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotProperty</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g4ad9872231cda5fdc89e883b98c2c7bc"></a><!-- doxytag: member="scim::IMEngineSlotPropertyList" ref="g4ad9872231cda5fdc89e883b98c2c7bc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot2&lt;void, IMEngineInstanceBase*,const PropertyList&amp;&gt; <a class="el" href="a00098.html">scim::IMEngineSlotPropertyList</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g39891ac5e52a66ea666886dc8be1bf0e"></a><!-- doxytag: member="scim::IMEngineSlotStringTransaction" ref="g39891ac5e52a66ea666886dc8be1bf0e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot3&lt;void, IMEngineInstanceBase*,const String&amp;,const Transaction&amp;&gt; <a class="el" href="a00099.html">scim::IMEngineSlotStringTransaction</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g1bbf0ac58b3effbb917472ea55642d3c"></a><!-- doxytag: member="scim::IMEngineSlotWideStringAttributeList" ref="g1bbf0ac58b3effbb917472ea55642d3c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot3&lt;void, IMEngineInstanceBase*,const WideString&amp;,const AttributeList&amp;&gt; <a class="el" href="a00099.html">scim::IMEngineSlotWideStringAttributeList</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="gfab673539103ed5ce8c7e5038a125403"></a><!-- doxytag: member="scim::IMEngineSlotGetSurroundingText" ref="gfab673539103ed5ce8c7e5038a125403" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot5&lt;bool, IMEngineInstanceBase*,WideString&amp;,int&amp;,int,int&gt; <a class="el" href="a00101.html">scim::IMEngineSlotGetSurroundingText</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g375e4473d4ed9ac3c098474f94bd71d4"></a><!-- doxytag: member="scim::IMEngineSlotDeleteSurroundingText" ref="g375e4473d4ed9ac3c098474f94bd71d4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef Slot3&lt;bool, IMEngineInstanceBase*,int,int&gt; <a class="el" href="a00099.html">scim::IMEngineSlotDeleteSurroundingText</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="g7cbb3e02d677ded14a56a7d51caccfe6"></a><!-- doxytag: member="scim::IMEngineModuleInitFunc" ref="g7cbb3e02d677ded14a56a7d51caccfe6" args="(const ConfigPointer &amp;config)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int(*) <a class="el" href="a00160.html#g7cbb3e02d677ded14a56a7d51caccfe6">scim::IMEngineModuleInitFunc</a>(const ConfigPointer &amp;config)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a IMEngine <a class="el" href="a00063.html">Module</a>. 
<p>
There must be a function called "scim_imengine_module_init" in each imengine module which complies with this prototype. This function name can have a prefix like table_LTX_, in which "table" is the module's name.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>config</em>&nbsp;</td><td>- a <a class="el" href="a00014.html">ConfigBase</a> instance to maintain the configuration. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of factories supported by this IMEngine <a class="el" href="a00063.html">Module</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb38a67508174075d120c03ba40e9a5d3"></a><!-- doxytag: member="scim::IMEngineModuleCreateFactoryFunc" ref="gb38a67508174075d120c03ba40e9a5d3" args="(unsigned int engine)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef IMEngineFactoryPointer(*) <a class="el" href="a00160.html#gb38a67508174075d120c03ba40e9a5d3">scim::IMEngineModuleCreateFactoryFunc</a>(unsigned int engine)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a factory instance for an engine,. 
<p>
There must be a function called "scim_imengine_module_create_factory" which complies with this prototype. This function name can have a prefix like table_LTX_, in which "table" is the module's name.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>engine</em>&nbsp;</td><td>- the index of the engine for which a factory object will be created. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the pointer of the factory object. </dd></dl>

</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="g4f5e9e0461fb6a3dff0c2942429de97a"></a><!-- doxytag: member="scim::ClientCapability" ref="g4f5e9e0461fb6a3dff0c2942429de97a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="a00160.html#g4f5e9e0461fb6a3dff0c2942429de97a">scim::ClientCapability</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enum values of all Client Capabilities bitmask. 
<p>
These capabilities are not always supported by all kinds of clients. So if an IMEngine requires some of them to realize some features, it should make sure that they are supported by client by checking the cap value sent by update_client_capabilities() action. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97a2359d0d05087f8ee07ee45e620d6f1eb"></a><!-- doxytag: member="SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT" ref="gg4f5e9e0461fb6a3dff0c2942429de97a2359d0d05087f8ee07ee45e620d6f1eb" args="" -->SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT</em>&nbsp;</td><td>
The client support OnTheSpot preedit (embed preedit string into client window) </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97a8fd332bc9c9671b0e5837ae1537e1132"></a><!-- doxytag: member="SCIM_CLIENT_CAP_SINGLE_LEVEL_PROPERTY" ref="gg4f5e9e0461fb6a3dff0c2942429de97a8fd332bc9c9671b0e5837ae1537e1132" args="" -->SCIM_CLIENT_CAP_SINGLE_LEVEL_PROPERTY</em>&nbsp;</td><td>
The client support displaying single level property, property tree may not be supported </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97aacb463b9a1b2b6e549df7d63e42d4d72"></a><!-- doxytag: member="SCIM_CLIENT_CAP_MULTI_LEVEL_PROPERTY" ref="gg4f5e9e0461fb6a3dff0c2942429de97aacb463b9a1b2b6e549df7d63e42d4d72" args="" -->SCIM_CLIENT_CAP_MULTI_LEVEL_PROPERTY</em>&nbsp;</td><td>
The client support displaying multiple level property, aka. property tree </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97a191cebfb0add87bf86c69192f529a8ef"></a><!-- doxytag: member="SCIM_CLIENT_CAP_TRIGGER_PROPERTY" ref="gg4f5e9e0461fb6a3dff0c2942429de97a191cebfb0add87bf86c69192f529a8ef" args="" -->SCIM_CLIENT_CAP_TRIGGER_PROPERTY</em>&nbsp;</td><td>
The client is capabile to trigger the IMEngine property. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97a00696b51b7322a8965227c544fd13589"></a><!-- doxytag: member="SCIM_CLIENT_CAP_HELPER_MODULE" ref="gg4f5e9e0461fb6a3dff0c2942429de97a00696b51b7322a8965227c544fd13589" args="" -->SCIM_CLIENT_CAP_HELPER_MODULE</em>&nbsp;</td><td>
The client support helper module </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97ae2c37e26ffd220a2ce0d65dc254a98a4"></a><!-- doxytag: member="SCIM_CLIENT_CAP_SURROUNDING_TEXT" ref="gg4f5e9e0461fb6a3dff0c2942429de97ae2c37e26ffd220a2ce0d65dc254a98a4" args="" -->SCIM_CLIENT_CAP_SURROUNDING_TEXT</em>&nbsp;</td><td>
The client support get/delete surrounding text operations </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gg4f5e9e0461fb6a3dff0c2942429de97af05fc55ea1183401d436280429bc880c"></a><!-- doxytag: member="SCIM_CLIENT_CAP_ALL_CAPABILITIES" ref="gg4f5e9e0461fb6a3dff0c2942429de97af05fc55ea1183401d436280429bc880c" args="" -->SCIM_CLIENT_CAP_ALL_CAPABILITIES</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc5748233a38f490985fcb9dbc01aac00"></a><!-- doxytag: member="scim::scim_get_filter_module_list" ref="gc5748233a38f490985fcb9dbc01aac00" args="(std::vector&lt; String &gt; &amp;mod_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int scim::scim_get_filter_module_list           </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; String &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>mod_list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a name list of currently available Filter modules. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mod_list</em>&nbsp;</td><td>- the result list will be stored here. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of the modules, equal to mod_list.size (). </dd></dl>

</div>
</div><p>
<a class="anchor" name="gb067e56004f27a30a5deb3fceabc3fc5"></a><!-- doxytag: member="scim::scim_get_imengine_module_list" ref="gb067e56004f27a30a5deb3fceabc3fc5" args="(std::vector&lt; String &gt; &amp;mod_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int scim::scim_get_imengine_module_list           </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; String &gt; &amp;&nbsp;</td>
          <td class="paramname"> <em>mod_list</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a name list of currently available IMEngine modules. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mod_list</em>&nbsp;</td><td>- the result list will be stored here. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the number of the modules, equal to mod_list.size (). </dd></dl>

</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Thu Jun 28 14:12:30 2007 for scim by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.0 </small></address>
</body>
</html>