28 #ifndef INC_Helper_HostedUI_h_
29 #define INC_Helper_HostedUI_h_ 1
32 #include YFM_Helper_HostRenderer
47 GetHostRendererPtrOf(UI::IWidget&
wgt)
49 return dynamic_cast<HostRenderer*
>(&wgt.GetRenderer());
58 GetWindowPtrOf(UI::IWidget& wgt)
60 if(
const auto p_r = dynamic_cast<HostRenderer*>(&wgt.GetRenderer()))
61 return p_r->GetWindowPtr();
72 WaitForHostWindow(UI::IWidget&);
80 template<
typename _fCallable,
typename... _tParams>
81 unique_ptr<HostRenderer>
82 MakeHostRenderer(UI::IWidget& wgt, _fCallable&&
f, _tParams&&...
args)
88 template<
typename _tParam>
90 WrapRenderer(UI::Widget& wgt, _tParam&& arg)
92 wgt.SetRenderer(MakeHostRenderer(wgt,
yforward(arg)));
95 template<
typename... _tParams>
97 WrapRenderer(UI::Widget& wgt, _tParams&&...
args)
99 wgt.SetRenderer(MakeHostRenderer(wgt, std::bind(
yforward(
args)...)));
110 DragWindow(
Window&, UI::CursorEventArgs&&);
121 ShowTopLevel(UI::Widget&, ::DWORD = WS_POPUP, ::DWORD = WS_EX_LAYERED,
122 const wchar_t* = L
"");
133 ShowTopLevelDraggable(UI::Widget&);
yconstfn const string _tParams && args
#define yforward(_expr)
根据参数类型使用 std::forward 传递对应参数。