4#include <render/qxcomponent.h>
23 return str.compare(0, prefix.size(), prefix) == 0;
29 {xComponentPrefixForMainWindow, QXComponentId::RecognizedType::NativeNodeMainWindow},
30 {xComponentPrefixForSubWindow, QXComponentId::RecognizedType::NativeNodeSubWindow},
31 {xComponentPrefixForFloatWindow, QXComponentId::RecognizedType::NativeNodeFloatWindow},
32 {xComponentPrefixForRenderXComponent, QXComponentId::RecognizedType::RenderXComponent},
35 for (
const auto &prefixTypePair: prefixToTypeMapping) {
36 if (startsWith(idValue, prefixTypePair.first))
37 return makeQOhosOptional(prefixTypePair.second);
47 return m_id == other.m_id;
52 return m_id != other.m_id;
57 return m_id < other.m_id;
67 return QXComponentId(xComponentPrefixForSubWindow + windowId.toStdString());
72 return QXComponentId(xComponentPrefixForRenderXComponent + windowId.toStdString());
77 return QXComponentId(xComponentPrefixForFloatWindow + windowId.toStdString());
82 , m_optRecognizedType(tryMapXComponentIdValueToRecognizedType(m_id))
93 constexpr auto requiredBufferSize = OH_XCOMPONENT_ID_LEN_MAX + 1;
95 if (xComponent ==
nullptr)
96 qOhosReportFatalErrorAndAbort(
"OH_NativeXComponent was null");
98 std::uint64_t xComponentIdLength = requiredBufferSize;
99 std::array<
char, requiredBufferSize> xComponentIdData = {};
100 auto errorCode = ::OH_NativeXComponent_GetXComponentId(
102 xComponentIdData.data(),
103 &xComponentIdLength);
104 if (errorCode != ::OH_NATIVEXCOMPONENT_RESULT_SUCCESS) {
105 qOhosReportFatalErrorAndAbort(
106 "OH_NativeXComponent_GetXComponentId failed with error: %d", errorCode);
109 return makeQOhosOptional(
112 xComponentIdData.data(),
113 xComponentIdLength)));
118 return QNapi::String::New(env, m_id);
123 return m_optRecognizedType;
std::enable_if_t< qohosplugincore_h_detail::isQOhosOptional< QOhosInvokeResult< Func, T > >, QOhosInvokeResult< Func, T > > andThen(Func &&func) const
static QXComponentId createForNativeNodeMainWindow(const std::string &qAbilityInstanceId)
std::string stringId() const
QOhosOptional< RecognizedType > recognizedType() const
QNapi::Value toNapiValue(napi_env env) const
bool operator!=(const QXComponentId &other) const
bool operator==(const QXComponentId &other) const
bool operator<(const QXComponentId &other) const
Combined button and popup list for selecting options.
QOhosOptional< QXComponentId::RecognizedType > tryMapXComponentIdValueToRecognizedType(const std::string &idValue)
const std::string xComponentPrefixForFloatWindow
bool startsWith(const std::string &str, const std::string &prefix)
const std::string xComponentPrefixForMainWindow
const std::string xComponentPrefixForRenderXComponent
const std::string xComponentPrefixForSubWindow