Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
// -*- c++ -*-
2
/* This is a generated file, do not edit.  Generated from ../sigc++/macros/convert.h.m4 */
3
 
4
#ifndef SIGCXX_CONVERT_H
5
#define SIGCXX_CONVERT_H
6
 
7
/*
8
  SigC::convert
9
  -------------
10
  convert() alters a Slot by assigning a conversion function
11
  which can completely alter the parameter types of a slot.
12
 
13
  Only convert functions for changing with same number of
14
  arguments is compiled by default.  See examples/custom_convert.h.m4
15
  for details on how to build non standard ones.
16
 
17
  Sample usage:
18
    int my_string_to_char(Callback1 *d,const string &s)
19
    int f(const char*);
20
    string s=hello;
21
 
22
 
23
    Slot1  s2=convert(slot(f),my_string_to_char);
24
    s2(s);
25
 
26
*/
27
#include 
28
 
29
#ifdef SIGC_CXX_NAMESPACES
30
namespace SigC
31
{
32
#endif
33
 
34
 
35
 
36
/****************************************************************
37
***** Adaptor Convert Slot 1
38
****************************************************************/
39
template 
40
          class R2,class Q1>
41
struct AdaptorConvertSlot1_1: public AdaptorSlot_
42
  {
43
#ifdef SIGC_CXX_PARTIAL_SPEC
44
   typedef R1 RType;
45
#else
46
   typedef typename Trait::type RType;
47
#endif
48
   typedef Slot1 SlotType;
49
   typedef Slot1 InSlotType;
50
   typedef typename InSlotType::Callback Callback;
51
   typedef RType (*Func)  (Callback*,P1);
52
   typedef R1    (*InFunc)(Callback*,P1);
53
   typedef CallDataObj3 CallData;
54
 
55
   static RType callback(void* d,P1 p1)
56
     {
57
      CallData* data=(CallData*)d;
58
      return (data->func)(data->obj,p1);
59
     }
60
 
61
   static SlotData* create(SlotData *s,InFunc func)
62
     {
63
      SlotData* tmp=(SlotData*)s;
64
      AdaptorNode *node=new AdaptorNode();
65
      copy_callback(tmp,node);
66
      CallData &data=reinterpret_cast(tmp->data_);
67
      data.callback=&callback;
68
      data.func=(Func)func;
69
      data.obj=(Callback*)&(node->data_);
70
      return tmp;
71
     }
72
  };
73
 
74
 
75
 
76
#ifndef SIGC_CXX_VOID_RETURN
77
#ifdef SIGC_CXX_PARTIAL_SPEC
78
template 
79
          class R2,class Q1>
80
struct AdaptorConvertSlot1_1
81
         
82
          R2,Q1>
83
  : public AdaptorSlot_
84
  {
85
   typedef void RType;
86
   typedef Slot1 SlotType;
87
   typedef Slot1 InSlotType;
88
   typedef typename InSlotType::Callback Callback;
89
   typedef RType (*Func)  (Callback*,P1);
90
   typedef void    (*InFunc)(Callback*,P1);
91
   typedef CallDataObj3 CallData;
92
 
93
   static RType callback(void* d,P1 p1)
94
     {
95
      CallData* data=(CallData*)d;
96
       (data->func)(data->obj,p1);
97
     }
98
 
99
   static SlotData* create(SlotData *s,InFunc func)
100
     {
101
      SlotData* tmp=(SlotData*)s;
102
      AdaptorNode *node=new AdaptorNode();
103
      copy_callback(tmp,node);
104
      CallData &data=reinterpret_cast(tmp->data_);
105
      data.callback=&callback;
106
      data.func=(Func)func;
107
      data.obj=(Callback*)&(node->data_);
108
      return tmp;
109
     }
110
  };
111
 
112
 
113
#endif
114
#endif
115
 
116
template 
117
          class R2,class Q1>
118
Slot1
119
  convert(const Slot1 &s,
120
          R1 (*func)(Callback1*,P1))
121
  {return AdaptorConvertSlot1_1
122
           R2,Q1>::create(s.obj(),func);
123
  }
124
 
125
 
126
/****************************************************************
127
***** Adaptor Convert Slot 2
128
****************************************************************/
129
template 
130
          class R2,class Q1,class Q2>
131
struct AdaptorConvertSlot2_2: public AdaptorSlot_
132
  {
133
#ifdef SIGC_CXX_PARTIAL_SPEC
134
   typedef R1 RType;
135
#else
136
   typedef typename Trait::type RType;
137
#endif
138
   typedef Slot2 SlotType;
139
   typedef Slot2 InSlotType;
140
   typedef typename InSlotType::Callback Callback;
141
   typedef RType (*Func)  (Callback*,P1,P2);
142
   typedef R1    (*InFunc)(Callback*,P1,P2);
143
   typedef CallDataObj3 CallData;
144
 
145
   static RType callback(void* d,P1 p1,P2 p2)
146
     {
147
      CallData* data=(CallData*)d;
148
      return (data->func)(data->obj,p1,p2);
149
     }
150
 
151
   static SlotData* create(SlotData *s,InFunc func)
152
     {
153
      SlotData* tmp=(SlotData*)s;
154
      AdaptorNode *node=new AdaptorNode();
155
      copy_callback(tmp,node);
156
      CallData &data=reinterpret_cast(tmp->data_);
157
      data.callback=&callback;
158
      data.func=(Func)func;
159
      data.obj=(Callback*)&(node->data_);
160
      return tmp;
161
     }
162
  };
163
 
164
 
165
 
166
#ifndef SIGC_CXX_VOID_RETURN
167
#ifdef SIGC_CXX_PARTIAL_SPEC
168
template 
169
          class R2,class Q1,class Q2>
170
struct AdaptorConvertSlot2_2
171
         
172
          R2,Q1,Q2>
173
  : public AdaptorSlot_
174
  {
175
   typedef void RType;
176
   typedef Slot2 SlotType;
177
   typedef Slot2 InSlotType;
178
   typedef typename InSlotType::Callback Callback;
179
   typedef RType (*Func)  (Callback*,P1,P2);
180
   typedef void    (*InFunc)(Callback*,P1,P2);
181
   typedef CallDataObj3 CallData;
182
 
183
   static RType callback(void* d,P1 p1,P2 p2)
184
     {
185
      CallData* data=(CallData*)d;
186
       (data->func)(data->obj,p1,p2);
187
     }
188
 
189
   static SlotData* create(SlotData *s,InFunc func)
190
     {
191
      SlotData* tmp=(SlotData*)s;
192
      AdaptorNode *node=new AdaptorNode();
193
      copy_callback(tmp,node);
194
      CallData &data=reinterpret_cast(tmp->data_);
195
      data.callback=&callback;
196
      data.func=(Func)func;
197
      data.obj=(Callback*)&(node->data_);
198
      return tmp;
199
     }
200
  };
201
 
202
 
203
#endif
204
#endif
205
 
206
template 
207
          class R2,class Q1,class Q2>
208
Slot2
209
  convert(const Slot2 &s,
210
          R1 (*func)(Callback2*,P1,P2))
211
  {return AdaptorConvertSlot2_2
212
           R2,Q1,Q2>::create(s.obj(),func);
213
  }
214
 
215
 
216
/****************************************************************
217
***** Adaptor Convert Slot 3
218
****************************************************************/
219
template 
220
          class R2,class Q1,class Q2,class Q3>
221
struct AdaptorConvertSlot3_3: public AdaptorSlot_
222
  {
223
#ifdef SIGC_CXX_PARTIAL_SPEC
224
   typedef R1 RType;
225
#else
226
   typedef typename Trait::type RType;
227
#endif
228
   typedef Slot3 SlotType;
229
   typedef Slot3 InSlotType;
230
   typedef typename InSlotType::Callback Callback;
231
   typedef RType (*Func)  (Callback*,P1,P2,P3);
232
   typedef R1    (*InFunc)(Callback*,P1,P2,P3);
233
   typedef CallDataObj3 CallData;
234
 
235
   static RType callback(void* d,P1 p1,P2 p2,P3 p3)
236
     {
237
      CallData* data=(CallData*)d;
238
      return (data->func)(data->obj,p1,p2,p3);
239
     }
240
 
241
   static SlotData* create(SlotData *s,InFunc func)
242
     {
243
      SlotData* tmp=(SlotData*)s;
244
      AdaptorNode *node=new AdaptorNode();
245
      copy_callback(tmp,node);
246
      CallData &data=reinterpret_cast(tmp->data_);
247
      data.callback=&callback;
248
      data.func=(Func)func;
249
      data.obj=(Callback*)&(node->data_);
250
      return tmp;
251
     }
252
  };
253
 
254
 
255
 
256
#ifndef SIGC_CXX_VOID_RETURN
257
#ifdef SIGC_CXX_PARTIAL_SPEC
258
template 
259
          class R2,class Q1,class Q2,class Q3>
260
struct AdaptorConvertSlot3_3
261
         
262
          R2,Q1,Q2,Q3>
263
  : public AdaptorSlot_
264
  {
265
   typedef void RType;
266
   typedef Slot3 SlotType;
267
   typedef Slot3 InSlotType;
268
   typedef typename InSlotType::Callback Callback;
269
   typedef RType (*Func)  (Callback*,P1,P2,P3);
270
   typedef void    (*InFunc)(Callback*,P1,P2,P3);
271
   typedef CallDataObj3 CallData;
272
 
273
   static RType callback(void* d,P1 p1,P2 p2,P3 p3)
274
     {
275
      CallData* data=(CallData*)d;
276
       (data->func)(data->obj,p1,p2,p3);
277
     }
278
 
279
   static SlotData* create(SlotData *s,InFunc func)
280
     {
281
      SlotData* tmp=(SlotData*)s;
282
      AdaptorNode *node=new AdaptorNode();
283
      copy_callback(tmp,node);
284
      CallData &data=reinterpret_cast(tmp->data_);
285
      data.callback=&callback;
286
      data.func=(Func)func;
287
      data.obj=(Callback*)&(node->data_);
288
      return tmp;
289
     }
290
  };
291
 
292
 
293
#endif
294
#endif
295
 
296
template 
297
          class R2,class Q1,class Q2,class Q3>
298
Slot3
299
  convert(const Slot3 &s,
300
          R1 (*func)(Callback3*,P1,P2,P3))
301
  {return AdaptorConvertSlot3_3
302
           R2,Q1,Q2,Q3>::create(s.obj(),func);
303
  }
304
 
305
 
306
/****************************************************************
307
***** Adaptor Convert Slot 4
308
****************************************************************/
309
template 
310
          class R2,class Q1,class Q2,class Q3,class Q4>
311
struct AdaptorConvertSlot4_4: public AdaptorSlot_
312
  {
313
#ifdef SIGC_CXX_PARTIAL_SPEC
314
   typedef R1 RType;
315
#else
316
   typedef typename Trait::type RType;
317
#endif
318
   typedef Slot4 SlotType;
319
   typedef Slot4 InSlotType;
320
   typedef typename InSlotType::Callback Callback;
321
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4);
322
   typedef R1    (*InFunc)(Callback*,P1,P2,P3,P4);
323
   typedef CallDataObj3 CallData;
324
 
325
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4)
326
     {
327
      CallData* data=(CallData*)d;
328
      return (data->func)(data->obj,p1,p2,p3,p4);
329
     }
330
 
331
   static SlotData* create(SlotData *s,InFunc func)
332
     {
333
      SlotData* tmp=(SlotData*)s;
334
      AdaptorNode *node=new AdaptorNode();
335
      copy_callback(tmp,node);
336
      CallData &data=reinterpret_cast(tmp->data_);
337
      data.callback=&callback;
338
      data.func=(Func)func;
339
      data.obj=(Callback*)&(node->data_);
340
      return tmp;
341
     }
342
  };
343
 
344
 
345
 
346
#ifndef SIGC_CXX_VOID_RETURN
347
#ifdef SIGC_CXX_PARTIAL_SPEC
348
template 
349
          class R2,class Q1,class Q2,class Q3,class Q4>
350
struct AdaptorConvertSlot4_4
351
         
352
          R2,Q1,Q2,Q3,Q4>
353
  : public AdaptorSlot_
354
  {
355
   typedef void RType;
356
   typedef Slot4 SlotType;
357
   typedef Slot4 InSlotType;
358
   typedef typename InSlotType::Callback Callback;
359
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4);
360
   typedef void    (*InFunc)(Callback*,P1,P2,P3,P4);
361
   typedef CallDataObj3 CallData;
362
 
363
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4)
364
     {
365
      CallData* data=(CallData*)d;
366
       (data->func)(data->obj,p1,p2,p3,p4);
367
     }
368
 
369
   static SlotData* create(SlotData *s,InFunc func)
370
     {
371
      SlotData* tmp=(SlotData*)s;
372
      AdaptorNode *node=new AdaptorNode();
373
      copy_callback(tmp,node);
374
      CallData &data=reinterpret_cast(tmp->data_);
375
      data.callback=&callback;
376
      data.func=(Func)func;
377
      data.obj=(Callback*)&(node->data_);
378
      return tmp;
379
     }
380
  };
381
 
382
 
383
#endif
384
#endif
385
 
386
template 
387
          class R2,class Q1,class Q2,class Q3,class Q4>
388
Slot4
389
  convert(const Slot4 &s,
390
          R1 (*func)(Callback4*,P1,P2,P3,P4))
391
  {return AdaptorConvertSlot4_4
392
           R2,Q1,Q2,Q3,Q4>::create(s.obj(),func);
393
  }
394
 
395
 
396
/****************************************************************
397
***** Adaptor Convert Slot 5
398
****************************************************************/
399
template 
400
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5>
401
struct AdaptorConvertSlot5_5: public AdaptorSlot_
402
  {
403
#ifdef SIGC_CXX_PARTIAL_SPEC
404
   typedef R1 RType;
405
#else
406
   typedef typename Trait::type RType;
407
#endif
408
   typedef Slot5 SlotType;
409
   typedef Slot5 InSlotType;
410
   typedef typename InSlotType::Callback Callback;
411
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5);
412
   typedef R1    (*InFunc)(Callback*,P1,P2,P3,P4,P5);
413
   typedef CallDataObj3 CallData;
414
 
415
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5)
416
     {
417
      CallData* data=(CallData*)d;
418
      return (data->func)(data->obj,p1,p2,p3,p4,p5);
419
     }
420
 
421
   static SlotData* create(SlotData *s,InFunc func)
422
     {
423
      SlotData* tmp=(SlotData*)s;
424
      AdaptorNode *node=new AdaptorNode();
425
      copy_callback(tmp,node);
426
      CallData &data=reinterpret_cast(tmp->data_);
427
      data.callback=&callback;
428
      data.func=(Func)func;
429
      data.obj=(Callback*)&(node->data_);
430
      return tmp;
431
     }
432
  };
433
 
434
 
435
 
436
#ifndef SIGC_CXX_VOID_RETURN
437
#ifdef SIGC_CXX_PARTIAL_SPEC
438
template 
439
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5>
440
struct AdaptorConvertSlot5_5
441
         
442
          R2,Q1,Q2,Q3,Q4,Q5>
443
  : public AdaptorSlot_
444
  {
445
   typedef void RType;
446
   typedef Slot5 SlotType;
447
   typedef Slot5 InSlotType;
448
   typedef typename InSlotType::Callback Callback;
449
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5);
450
   typedef void    (*InFunc)(Callback*,P1,P2,P3,P4,P5);
451
   typedef CallDataObj3 CallData;
452
 
453
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5)
454
     {
455
      CallData* data=(CallData*)d;
456
       (data->func)(data->obj,p1,p2,p3,p4,p5);
457
     }
458
 
459
   static SlotData* create(SlotData *s,InFunc func)
460
     {
461
      SlotData* tmp=(SlotData*)s;
462
      AdaptorNode *node=new AdaptorNode();
463
      copy_callback(tmp,node);
464
      CallData &data=reinterpret_cast(tmp->data_);
465
      data.callback=&callback;
466
      data.func=(Func)func;
467
      data.obj=(Callback*)&(node->data_);
468
      return tmp;
469
     }
470
  };
471
 
472
 
473
#endif
474
#endif
475
 
476
template 
477
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5>
478
Slot5
479
  convert(const Slot5 &s,
480
          R1 (*func)(Callback5*,P1,P2,P3,P4,P5))
481
  {return AdaptorConvertSlot5_5
482
           R2,Q1,Q2,Q3,Q4,Q5>::create(s.obj(),func);
483
  }
484
 
485
 
486
/****************************************************************
487
***** Adaptor Convert Slot 6
488
****************************************************************/
489
template 
490
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6>
491
struct AdaptorConvertSlot6_6: public AdaptorSlot_
492
  {
493
#ifdef SIGC_CXX_PARTIAL_SPEC
494
   typedef R1 RType;
495
#else
496
   typedef typename Trait::type RType;
497
#endif
498
   typedef Slot6 SlotType;
499
   typedef Slot6 InSlotType;
500
   typedef typename InSlotType::Callback Callback;
501
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5,P6);
502
   typedef R1    (*InFunc)(Callback*,P1,P2,P3,P4,P5,P6);
503
   typedef CallDataObj3 CallData;
504
 
505
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6)
506
     {
507
      CallData* data=(CallData*)d;
508
      return (data->func)(data->obj,p1,p2,p3,p4,p5,p6);
509
     }
510
 
511
   static SlotData* create(SlotData *s,InFunc func)
512
     {
513
      SlotData* tmp=(SlotData*)s;
514
      AdaptorNode *node=new AdaptorNode();
515
      copy_callback(tmp,node);
516
      CallData &data=reinterpret_cast(tmp->data_);
517
      data.callback=&callback;
518
      data.func=(Func)func;
519
      data.obj=(Callback*)&(node->data_);
520
      return tmp;
521
     }
522
  };
523
 
524
 
525
 
526
#ifndef SIGC_CXX_VOID_RETURN
527
#ifdef SIGC_CXX_PARTIAL_SPEC
528
template 
529
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6>
530
struct AdaptorConvertSlot6_6
531
         
532
          R2,Q1,Q2,Q3,Q4,Q5,Q6>
533
  : public AdaptorSlot_
534
  {
535
   typedef void RType;
536
   typedef Slot6 SlotType;
537
   typedef Slot6 InSlotType;
538
   typedef typename InSlotType::Callback Callback;
539
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5,P6);
540
   typedef void    (*InFunc)(Callback*,P1,P2,P3,P4,P5,P6);
541
   typedef CallDataObj3 CallData;
542
 
543
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6)
544
     {
545
      CallData* data=(CallData*)d;
546
       (data->func)(data->obj,p1,p2,p3,p4,p5,p6);
547
     }
548
 
549
   static SlotData* create(SlotData *s,InFunc func)
550
     {
551
      SlotData* tmp=(SlotData*)s;
552
      AdaptorNode *node=new AdaptorNode();
553
      copy_callback(tmp,node);
554
      CallData &data=reinterpret_cast(tmp->data_);
555
      data.callback=&callback;
556
      data.func=(Func)func;
557
      data.obj=(Callback*)&(node->data_);
558
      return tmp;
559
     }
560
  };
561
 
562
 
563
#endif
564
#endif
565
 
566
template 
567
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6>
568
Slot6
569
  convert(const Slot6 &s,
570
          R1 (*func)(Callback6*,P1,P2,P3,P4,P5,P6))
571
  {return AdaptorConvertSlot6_6
572
           R2,Q1,Q2,Q3,Q4,Q5,Q6>::create(s.obj(),func);
573
  }
574
 
575
 
576
/****************************************************************
577
***** Adaptor Convert Slot 7
578
****************************************************************/
579
template 
580
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6,class Q7>
581
struct AdaptorConvertSlot7_7: public AdaptorSlot_
582
  {
583
#ifdef SIGC_CXX_PARTIAL_SPEC
584
   typedef R1 RType;
585
#else
586
   typedef typename Trait::type RType;
587
#endif
588
   typedef Slot7 SlotType;
589
   typedef Slot7 InSlotType;
590
   typedef typename InSlotType::Callback Callback;
591
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5,P6,P7);
592
   typedef R1    (*InFunc)(Callback*,P1,P2,P3,P4,P5,P6,P7);
593
   typedef CallDataObj3 CallData;
594
 
595
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6,P7 p7)
596
     {
597
      CallData* data=(CallData*)d;
598
      return (data->func)(data->obj,p1,p2,p3,p4,p5,p6,p7);
599
     }
600
 
601
   static SlotData* create(SlotData *s,InFunc func)
602
     {
603
      SlotData* tmp=(SlotData*)s;
604
      AdaptorNode *node=new AdaptorNode();
605
      copy_callback(tmp,node);
606
      CallData &data=reinterpret_cast(tmp->data_);
607
      data.callback=&callback;
608
      data.func=(Func)func;
609
      data.obj=(Callback*)&(node->data_);
610
      return tmp;
611
     }
612
  };
613
 
614
 
615
 
616
#ifndef SIGC_CXX_VOID_RETURN
617
#ifdef SIGC_CXX_PARTIAL_SPEC
618
template 
619
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6,class Q7>
620
struct AdaptorConvertSlot7_7
621
         
622
          R2,Q1,Q2,Q3,Q4,Q5,Q6,Q7>
623
  : public AdaptorSlot_
624
  {
625
   typedef void RType;
626
   typedef Slot7 SlotType;
627
   typedef Slot7 InSlotType;
628
   typedef typename InSlotType::Callback Callback;
629
   typedef RType (*Func)  (Callback*,P1,P2,P3,P4,P5,P6,P7);
630
   typedef void    (*InFunc)(Callback*,P1,P2,P3,P4,P5,P6,P7);
631
   typedef CallDataObj3 CallData;
632
 
633
   static RType callback(void* d,P1 p1,P2 p2,P3 p3,P4 p4,P5 p5,P6 p6,P7 p7)
634
     {
635
      CallData* data=(CallData*)d;
636
       (data->func)(data->obj,p1,p2,p3,p4,p5,p6,p7);
637
     }
638
 
639
   static SlotData* create(SlotData *s,InFunc func)
640
     {
641
      SlotData* tmp=(SlotData*)s;
642
      AdaptorNode *node=new AdaptorNode();
643
      copy_callback(tmp,node);
644
      CallData &data=reinterpret_cast(tmp->data_);
645
      data.callback=&callback;
646
      data.func=(Func)func;
647
      data.obj=(Callback*)&(node->data_);
648
      return tmp;
649
     }
650
  };
651
 
652
 
653
#endif
654
#endif
655
 
656
template 
657
          class R2,class Q1,class Q2,class Q3,class Q4,class Q5,class Q6,class Q7>
658
Slot7
659
  convert(const Slot7 &s,
660
          R1 (*func)(Callback7*,P1,P2,P3,P4,P5,P6,P7))
661
  {return AdaptorConvertSlot7_7
662
           R2,Q1,Q2,Q3,Q4,Q5,Q6,Q7>::create(s.obj(),func);
663
  }
664
 
665
 
666
 
667
#ifdef SIGC_CXX_NAMESPACES
668
} // namespace
669
#endif
670
 
671
#endif