Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
External.hpp
См. документацию.
1 
2 #pragma once
3 
19 #ifdef COVELLITE_GUI_ROCKET
20 
21 #ifndef __USING_GTEST
22 
23 #include <Rocket/Rocket.hpp>
24 #include <Rocket/Plugin.hpp>
25 namespace CovelliteGui = ::Rocket;
26 
27 #else // __USING_GTEST
28 
29 #define FontDatabase FontDatabase_dummy
30 #include <Rocket/Rocket.mock.hpp>
31 #undef FontDatabase
32 
33 namespace mock
34 {
35 
36 namespace Rocket
37 {
38 
39 namespace Core
40 {
41 
42 class FontDatabase
43 {
44 public:
45  class Proxy :
46  public ::alicorn::extension::testing::Proxy<Proxy>
47  {
48  public:
49  MOCK_METHOD1(LoadFontFace, bool(String));
50  MOCK_METHOD2(LoadFontFace, bool(::std::vector<byte>, String));
51  };
52 
53 public:
54  static bool LoadFontFace(const String & _Path)
55  {
56  return Proxy::GetInstance()->LoadFontFace(_Path);
57  }
58 
59  static bool LoadFontFace(const ::std::vector<byte> & _Data,
60  const String & _Dummy)
61  {
62  return Proxy::GetInstance()->LoadFontFace(_Data, _Dummy);
63  }
64 };
65 
66 } // namespace Core
67 
68 } // namespace Rocket
69 
70 } // namespace mock
71 
72 namespace CovelliteGui = ::mock::Rocket;
73 
74 namespace mock
75 {
76 
77 namespace CovelliteGui = ::CovelliteGui;
78 
79 namespace Rocket
80 {
81 
82 namespace Core { using EventListener_tested = EventListener; }
83 
84 namespace Plugin
85 {
86 
87 class Proxy :
88  public ::alicorn::extension::testing::Proxy<Proxy>
89 {
90 public:
91  MOCK_METHOD0(Initialise, bool(void));
92 };
93 
94 inline void Initialise(void)
95 {
96  Plugin::Proxy::GetInstance()->Initialise();
97 }
98 
99 } // namespace Plugin
100 
101 } // namespace Rocket
102 
103 } // namespace mock
104 
105 #endif // __USING_GTEST
106 
107 namespace covellite
108 {
109 
110 namespace gui
111 {
112 
113 using CovelliteGuiTime_t = float;
114 using CovelliteGuiUnicode_t = CovelliteGui::Core::word;
115 
116 inline ::std::string CovelliteGuiStringToUtf8(
117  const CovelliteGui::Core::String & _String)
118 {
119  return _String.CString();
120 }
121 
122 template<class T>
123 inline void CovelliteGuiRemove(T * _pValue)
124 {
125  _pValue->RemoveReference();
126 }
127 
128 inline void CovelliteGuiLoadFontFace(const ::std::string & _Path)
129 {
130  CovelliteGui::Core::FontDatabase::LoadFontFace(_Path.c_str());
131 }
132 
133 inline void CovelliteGuiLoadFontFace(const ::std::vector<uint8_t> & _Data)
134 {
135  CovelliteGui::Core::FontDatabase::LoadFontFace(_Data, "");
136 }
137 
138 inline void CovelliteGuiSetProgressBarValue(
139  CovelliteGui::Core::Element * _pProgressBar,
140  const float _Value)
141 {
142  using namespace ::alicorn::extension::std;
143 
144  auto & Control =
145  dynamic_cast<CovelliteGui::Controls::ElementFormControl &>(*_pProgressBar);
146 
147  Control.SetValue(string_cast<::std::string, Encoding::UTF8>(
148  uT("%VALUE%").Replace(uT("%VALUE%"), _Value)).c_str());
149 }
150 
151 } // namespace gui
152 
153 } // namespace covellite
154 
155 #elif defined COVELLITE_GUI_RMLUI
156 
157 #ifndef __USING_GTEST
158 
159 #include <RmlUi/RmlUi.hpp>
160 namespace Rml { namespace Plugin { inline void Initialise(void) {} } }
161 namespace CovelliteGui = ::Rml;
162 
163 #else // __USING_GTEST
164 
165 #include "..\Test.Covellite.Gui\Mock\RmlUi.mock.hpp"
166 namespace CovelliteGui = ::mock::Rml;
167 
168 namespace mock
169 {
170 
171 namespace CovelliteGui = ::CovelliteGui;
172 
173 namespace Rml
174 {
175 
176 namespace Core { using EventListener_tested = EventListener; }
177 
178 namespace Plugin
179 {
180 
181 class Proxy :
182  public ::alicorn::extension::testing::Proxy<Proxy>
183 {
184 public:
185  MOCK_METHOD0(Initialise, bool(void));
186 };
187 
188 inline void Initialise(void)
189 {
190  Plugin::Proxy::GetInstance()->Initialise();
191 }
192 
193 } // namespace Plugin
194 
195 } // namespace Rml
196 
197 } // namespace mock
198 
199 #endif // __USING_GTEST
200 
201 namespace covellite
202 {
203 
204 namespace gui
205 {
206 
207 using CovelliteGuiTime_t = double;
208 using CovelliteGuiUnicode_t = CovelliteGui::Core::Character;
209 
210 inline ::std::string CovelliteGuiStringToUtf8(
211  const CovelliteGui::Core::String & _String)
212 {
213  return _String;
214 }
215 
216 inline void CovelliteGuiRemove(CovelliteGui::Core::ElementDocument * _pDocument)
217 {
218  _pDocument->Close();
219 }
220 
221 inline void CovelliteGuiRemove(CovelliteGui::Core::Context * _pContext)
222 {
223  CovelliteGui::Core::RemoveContext(_pContext->GetName());
224 }
225 
226 inline void CovelliteGuiLoadFontFace(const ::std::string & _Path)
227 {
228  CovelliteGui::Core::LoadFontFace(_Path.c_str());
229 }
230 
231 inline void CovelliteGuiLoadFontFace(const ::std::vector<uint8_t> & _Data)
232 {
233  CovelliteGui::Core::LoadFontFace(_Data.data(), static_cast<int>(_Data.size()),
234  "", CovelliteGui::Core::Style::FontStyle::Normal,
235  CovelliteGui::Core::Style::FontWeight::Normal);
236 }
237 
238 inline void CovelliteGuiSetProgressBarValue(
239  CovelliteGui::Core::Element * _pProgressBar,
240  const float _Value)
241 {
242  auto & Control =
243  dynamic_cast<CovelliteGui::Controls::ElementProgressBar &>(*_pProgressBar);
244 
245  Control.SetValue(_Value);
246 }
247 
248 } // namespace gui
249 
250 } // namespace covellite
251 
252 #else // COVELLITE_GUI_*
253 
254 namespace CovelliteGui
255 {
256 
257 namespace Core
258 {
259 
260 template<typename> class Vector2;
261 using Vector2i = Vector2<int>;
262 class ElementDocument;
263 class Element;
264 class Context;
265 
266 } // namespace Core
267 
268 } // namespace CovelliteGui
269 
270 #endif // COVELLITE_GUI_*