source: tags/testbuild/SL/CB/cb.h

Last change on this file was 11513, checked in by westram, 10 years ago
File size: 2.9 KB
Line 
1// ================================================================= //
2//                                                                   //
3//   File      : cb.h                                                //
4//   Purpose   : callback                                            //
5//                                                                   //
6//   Coded by Ralf Westram (coder@reallysoft.de) in September 2010   //
7//   Institute of Microbiology (Technical University Munich)         //
8//   http://www.arb-home.de/                                         //
9//                                                                   //
10// ================================================================= //
11
12#ifndef CB_H
13#define CB_H
14
15#ifndef ARBDB_BASE_H
16#include <arbdb_base.h>
17#endif
18
19class AW_root;
20class AW_window;
21class AW_awar;
22
23// generic callback parameter (used like a void*)
24typedef long AW_CL; // client data (casted from pointer or value)
25
26// Note:
27// most callbacks below are considered obsolete (as soon as #432 is completed)
28// They are mostly used to cast functions; better use make....Callback-wrappers
29
30// AW_root callbacks
31typedef void (*AW_RCB2)(AW_root*, AW_CL, AW_CL);
32typedef void (*AW_RCB1)(AW_root*, AW_CL);
33typedef void (*AW_RCB0)(AW_root*);
34typedef AW_RCB2 AW_RCB;
35
36// AW_awar callbacks
37typedef AW_RCB2 Awar_CB2;
38typedef AW_RCB1 Awar_CB1;
39typedef AW_RCB0 Awar_CB0;
40typedef AW_RCB  Awar_CB;
41
42// AW_window callbacks
43typedef void (*AW_CB2)(AW_window*, AW_CL, AW_CL);
44typedef void (*AW_CB1)(AW_window*, AW_CL);
45typedef void (*AW_CB0)(AW_window*);
46typedef AW_CB2 AW_CB;
47
48// simplest callback flavours of each type
49typedef AW_window *(*CreateWindowCallbackSimple)(AW_root*); // use makeCreateWindowCallback if you need parameters
50typedef AW_RCB0 RootCallbackSimple;                         // use makeRootCallback if you need parameters
51typedef AW_CB0  WindowCallbackSimple;                       // use makeWindowCallback if you need parameters
52
53// ---------------------------
54//      typesafe callbacks
55
56#ifndef CBTYPES_H
57#include <cbtypes.h>
58#endif
59
60// @@@ when gtk port is back to trunk, the definition of some of these cb-types may be moved into WINDOW
61
62DECLARE_CBTYPE_FVV_AND_BUILDERS(RootCallback,         void,       AW_root*);   // generates makeRootCallback
63DECLARE_CBTYPE_FVV_AND_BUILDERS(TimedCallback,        unsigned,   AW_root*);   // generates makeTimedCallback (return value: 0->do not call again, else: call again after XXX ms)
64DECLARE_CBTYPE_FVV_AND_BUILDERS(WindowCallback,       void,       AW_window*); // generates makeWindowCallback
65DECLARE_CBTYPE_FVV_AND_BUILDERS(CreateWindowCallback, AW_window*, AW_root*);   // generates makeCreateWindowCallback
66
67DECLARE_CBTYPE_FVF_AND_BUILDERS(DatabaseCallback, void, GBDATA*, GB_CB_TYPE);    // generates makeDatabaseCallback
68
69DECLARE_CBTYPE_FFV_AND_BUILDERS(TreeAwarCallback, void, AW_awar*, bool); // generates makeTreeAwarCallback
70
71#else
72#error cb.h included twice
73#endif // CB_H
Note: See TracBrowser for help on using the repository browser.