Go to the documentation of this file.
7#ifndef MYGUI_DIAGNOSTIC_H_
8#define MYGUI_DIAGNOSTIC_H_
15#define MYGUI_LOG_SECTION "Core"
16#define MYGUI_LOG_FILENAME "MyGUI.log"
17#define MYGUI_LOG(level, text) MYGUI_LOGGING(MYGUI_LOG_SECTION, level, text)
19#define MYGUI_BASE_EXCEPT(desc, src) throw MyGUI::Exception(desc, src, __FILE__, __LINE__)
21#define MYGUI_EXCEPT(dest) \
23 MYGUI_LOG(Critical, dest); \
24 std::ostringstream stream; \
25 stream << dest << "\n"; \
26 MYGUI_BASE_EXCEPT(stream.str().c_str(), "MyGUI"); \
29#define MYGUI_ASSERT(exp, dest) \
33 MYGUI_LOG(Critical, dest); \
34 std::ostringstream stream; \
35 stream << dest << "\n"; \
36 MYGUI_BASE_EXCEPT(stream.str().c_str(), "MyGUI"); \
40#define MYGUI_ASSERT_RANGE(index, size, owner) MYGUI_ASSERT(index < size, owner << " : index number " << index << " out of range [" << size << "]")
41#define MYGUI_ASSERT_RANGE_AND_NONE(index, size, owner) MYGUI_ASSERT(index < size || index == MyGUI::ITEM_NONE, owner << " : index number " << index << " out of range [" << size << "]")
42#define MYGUI_ASSERT_RANGE_INSERT(index, size, owner) MYGUI_ASSERT((index <= size) || (index == MyGUI::ITEM_NONE), owner << " : insert index number " << index << " out of range [" << size << "] or not ITEM_NONE")
44#if MYGUI_DEBUG_MODE == 1
45# define MYGUI_REGISTER_VALUE(map, value) \
47 MYGUI_LOG(Info, "Register value : '" << #value << "' = " << (int)value); \
48 map[#value] = value; \
50# define MYGUI_DEBUG_ASSERT(exp, dest) MYGUI_ASSERT(exp, dest)
52# define MYGUI_REGISTER_VALUE(map, value) map[#value] = value
53# define MYGUI_DEBUG_ASSERT(exp, dest) ((void)0)
56#if __cplusplus >= 201402L
57# define MYGUI_OBSOLETE(text) [[deprecated(text)]]
59# if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
60# define MYGUI_OBSOLETE_START(text) __declspec(deprecated(text))
61# define MYGUI_OBSOLETE_END
62# elif MYGUI_COMPILER == MYGUI_COMPILER_GNUC
63# define MYGUI_OBSOLETE_START(text)
64# define MYGUI_OBSOLETE_END __attribute__((deprecated))
66# define MYGUI_OBSOLETE_START(text)
67# define MYGUI_OBSOLETE_END
71# define MYGUI_OBSOLETE(text) MYGUI_OBSOLETE_START(text)MYGUI_OBSOLETE_END