29 #include YFM_YSLib_UI_YControl
40 const auto p(FetchContainerPtr(wgt));
48 if(
const auto p = FetchContainerPtr(wgt))
50 auto& pFocusing(p->GetView().FocusingPtr);
58 IWidget* p_sub(pFocusing);
60 for(
auto p_foc = p_sub; p_foc;
63 for(; p_sub != pFocusing; p_sub = FetchContainerPtr(*p_sub))
65 YAssert(p_sub,
"Wrong child focus state found.");
84 if(
const auto p = FetchContainerPtr(wgt))
86 auto& pFocusing(p->GetView().FocusingPtr);
116 wgt.GetView().FocusingPtr = {};
126 while(
auto p_con = FetchContainerPtr(*p_wgt))
145 }
while((p = FetchContainerPtr(*p)));
156 }
while((p = FetchContainerPtr(*p)));
YF_API void ReleaseFocusFrom(IWidget &dst, IWidget &src)
释放焦点,并指定 LostFocus 事件发送控件。
YF_API void ReleaseFocusCascade(IWidget &)
级联释放部件及上层容器焦点。
YF_API bool IsFocusedCascade(const IWidget &, const IWidget *={})
判断部件相对于指针指定的部件是否具有级联焦点。
YF_API bool DoRequestFocus(IWidget &, bool release_event={})
向部件容器请求获得焦点,并指定 GotFocus 事件发送控件。
YF_API bool IsFocused(const IWidget &)
判断部件是否取得焦点。
YF_API void RequestFocusCascade(IWidget &)
级联请求部件及上层容器焦点。
YF_API bool DoReleaseFocus(IWidget &)
释放焦点,并指定 LostFocus 事件发送控件。
YF_API void RequestFocusFrom(IWidget &dst, IWidget &src)
向部件容器请求获得焦点,并指定 GotFocus 事件发送控件。
wgt wgt YF_API void ClearFocusingOf(IWidget &)
清除焦点指针并以此部件作为事件源调用被清除焦点部件的 LostFocus 事件。
#define YAssert(_expr, _msg)