/usr/include/MYGUI/MyGUI_Delegate.h is in libmygui-dev 3.2.2+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /*
* This source file is part of MyGUI. For the latest info, see http://mygui.info/
* Distributed under the MIT License
* (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
*/
#ifndef MYGUI_DELEGATE_H_
#define MYGUI_DELEGATE_H_
#include "MyGUI_Diagnostic.h"
#include <list>
#include <typeinfo>
// source
// http://rsdn.ru/article/cpp/delegates.xml
// генерация делегатов для различного колличества параметров
namespace MyGUI
{
namespace delegates
{
// базовый класс для тех классов, что хотят себя отвязывать от мульти делегатов
class MYGUI_EXPORT IDelegateUnlink
{
public:
virtual ~IDelegateUnlink() { }
IDelegateUnlink()
{
m_baseDelegateUnlink = this;
}
bool compare(IDelegateUnlink* _unlink) const
{
return m_baseDelegateUnlink == _unlink->m_baseDelegateUnlink;
}
private:
IDelegateUnlink* m_baseDelegateUnlink;
};
inline IDelegateUnlink* GetDelegateUnlink(void* _base)
{
return 0;
}
inline IDelegateUnlink* GetDelegateUnlink(IDelegateUnlink* _base)
{
return _base;
}
}
// no parameters
#define MYGUI_SUFFIX 0
#define MYGUI_TEMPLATE
#define MYGUI_TEMPLATE_PARAMS
#define MYGUI_TEMPLATE_ARGS
#define MYGUI_T_TEMPLATE_PARAMS <typename T>
#define MYGUI_T_TEMPLATE_ARGS <T>
#define MYGUI_PARAMS
#define MYGUI_ARGS
#define MYGUI_TYPENAME
#include "MyGUI_DelegateImplement.h"
// one parameter
#define MYGUI_SUFFIX 1
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1>
#define MYGUI_TEMPLATE_ARGS <TP1>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1>
#define MYGUI_PARAMS TP1 p1
#define MYGUI_ARGS p1
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
// two parameters
#define MYGUI_SUFFIX 2
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1, typename TP2>
#define MYGUI_TEMPLATE_ARGS <TP1, TP2>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1, typename TP2>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1, TP2>
#define MYGUI_PARAMS TP1 p1, TP2 p2
#define MYGUI_ARGS p1, p2
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
// three parameters
#define MYGUI_SUFFIX 3
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1, typename TP2, typename TP3>
#define MYGUI_TEMPLATE_ARGS <TP1, TP2, TP3>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1, typename TP2, typename TP3>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1, TP2, TP3>
#define MYGUI_PARAMS TP1 p1, TP2 p2, TP3 p3
#define MYGUI_ARGS p1, p2, p3
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
// four parameters
#define MYGUI_SUFFIX 4
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1, typename TP2, typename TP3, typename TP4>
#define MYGUI_TEMPLATE_ARGS <TP1, TP2, TP3, TP4>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1, typename TP2, typename TP3, typename TP4>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1, TP2, TP3, TP4>
#define MYGUI_PARAMS TP1 p1, TP2 p2, TP3 p3, TP4 p4
#define MYGUI_ARGS p1, p2, p3, p4
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
// five parameters
#define MYGUI_SUFFIX 5
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5>
#define MYGUI_TEMPLATE_ARGS <TP1, TP2, TP3, TP4, TP5>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1, typename TP2, typename TP3, typename TP4, typename TP5>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1, TP2, TP3, TP4, TP5>
#define MYGUI_PARAMS TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5
#define MYGUI_ARGS p1, p2, p3, p4, p5
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
// six parameters
#define MYGUI_SUFFIX 6
#define MYGUI_TEMPLATE template
#define MYGUI_TEMPLATE_PARAMS <typename TP1, typename TP2, typename TP3, typename TP4, typename TP5, typename TP6>
#define MYGUI_TEMPLATE_ARGS <TP1, TP2, TP3, TP4, TP5, TP6>
#define MYGUI_T_TEMPLATE_PARAMS <typename T, typename TP1, typename TP2, typename TP3, typename TP4, typename TP5, typename TP6>
#define MYGUI_T_TEMPLATE_ARGS <T, TP1, TP2, TP3, TP4, TP5, TP6>
#define MYGUI_PARAMS TP1 p1, TP2 p2, TP3 p3, TP4 p4, TP5 p5, TP6 p6
#define MYGUI_ARGS p1, p2, p3, p4, p5, p6
#define MYGUI_TYPENAME typename
#include "MyGUI_DelegateImplement.h"
} // namespace MyGUI
#endif // MYGUI_DELEGATE_H_
|