root/lang/objective-cplusplus/i3/trunk/src/DebugEventHook.cc @ 37777

Revision 37559, 1.3 kB (checked in by saturday06, 4 years ago)

iconv majide ugoiteruno ...?

  • Property svn:executable set to *
Line 
1#include <mil/PrecompiledHeaders.h>
2#include "Common.h"
3#include <mil/ModuleCommon.h>
4
5#include <boost/preprocessor/seq/for_each.hpp>
6#include <boost/preprocessor/seq/for_each_product.hpp>
7#include <boost/preprocessor/seq/fold_left.hpp>
8
9static char SIGN;
10
11#define RECEIVERS (InputWindow)(CompletionWindow)(OutputWindow)(ShellManager)(Delegate)
12#define EVENTS (LazyEditFocusEvent)(ExecuteEvent)(EditChangedEvent)(SimplePing)(TestFocus)(SimplePing2)
13
14namespace i3 {
15#define I3_DECLARE_STRUCT(r, data, name) struct name;
16#define I3_DECLARE_CLASS(r, data, name) class name;
17BOOST_PP_SEQ_FOR_EACH(I3_DECLARE_STRUCT, , EVENTS)
18BOOST_PP_SEQ_FOR_EACH(I3_DECLARE_CLASS, , RECEIVERS)
19}
20using namespace i3;
21namespace mil {
22
23#define I3_DEFINE_HOOK_FUNCTION(s, Receiver, EventData)     \
24    template<>                                              \
25    Hooker<Receiver, EventData>::function                   \
26    Hooker<Receiver, EventData>::execute_ = NULL;
27
28#define I3_HOOK_FUNCTIONS_PER_RECEIVER(r, product)  \
29    BOOST_PP_SEQ_FOLD_LEFT(                         \
30        I3_DEFINE_HOOK_FUNCTION,                    \
31        BOOST_PP_SEQ_HEAD(product),                 \
32        BOOST_PP_SEQ_TAIL(product))
33
34#ifdef MIL_USE_DEBUG_EVENT_HOOK
35BOOST_PP_SEQ_FOR_EACH_PRODUCT(I3_HOOK_FUNCTIONS_PER_RECEIVER, (RECEIVERS)(EVENTS))
36#endif
37
38}
39
40
Note: See TracBrowser for help on using the browser.