boo/include/boo/UWPViewProvider.hpp

39 lines
1.0 KiB
C++
Raw Normal View History

2018-10-06 20:36:44 -07:00
#pragma once
2017-12-06 20:08:44 -08:00
#include "boo/IApplication.hpp"
2017-12-06 20:08:44 -08:00
2018-12-07 21:17:51 -08:00
namespace boo {
2017-12-06 20:08:44 -08:00
#if WINDOWS_STORE
using namespace Windows::ApplicationModel::Core;
2018-12-07 21:17:51 -08:00
ref struct ViewProvider sealed : IFrameworkViewSource {
internal : ViewProvider(boo::IApplicationCallback& appCb, std::string_view uniqueName, std::string_view friendlyName,
std::string_view pname, Platform::Array<Platform::String ^> ^ params, bool singleInstance)
2018-12-07 21:17:51 -08:00
: m_appCb(appCb)
, m_uniqueName(uniqueName)
, m_friendlyName(friendlyName)
, m_pname(pname)
, m_singleInstance(singleInstance) {
char selfPath[1024];
2018-12-07 21:17:51 -08:00
GetModuleFileNameW(nullptr, selfPath, 1024);
m_args.reserve(params->Length + 1);
m_args.emplace_back(selfPath);
for (Platform::String ^ str : params)
m_args.emplace_back(str->Data());
}
2017-12-06 20:08:44 -08:00
public:
2018-12-07 21:17:51 -08:00
virtual IFrameworkView ^ CreateView();
2017-12-06 20:08:44 -08:00
2018-12-07 21:17:51 -08:00
internal : boo::IApplicationCallback& m_appCb;
std::string m_uniqueName;
std::string m_friendlyName;
std::string m_pname;
std::vector<std::string> m_args;
2018-12-07 21:17:51 -08:00
bool m_singleInstance;
2017-12-06 20:08:44 -08:00
};
#endif
2018-12-07 21:17:51 -08:00
} // namespace boo