28 #ifndef YSL_INC_UI_TabControl_h_
29 #define YSL_INC_UI_TabControl_h_ 1
32 #include YFM_YSLib_UI_YPanel
33 #include YFM_YSLib_UI_WidgetIteration
58 std::function<void(PaintEventArgs&&)> PaintTabBackground{};
63 std::function<void(PaintEventArgs&&)>
64 PaintTabForeground{DefaultPaintTabBorder};
80 using MLinearUIContainer::GetCount;
87 using MLinearUIContainer::Find;
127 vector<Panel*> tab_pages{};
136 PDefHOp(IWidget&, [],
size_t idx)
ynoexcept
138 IWidget*>(p_bar.get(), p_page).begin()[idx])
146 operator+=(IWidget&);
151 GetPageBounds() const ynothrow;
159 DefGetter(const ynothrow,
size_t, TabCount, GetTabBarRef().GetCount())
173 Find(IWidget&) const;
192 SwitchPage(Control&);
unique_ptr< Control > TabPtrType
#define DefWidgetMemberIterationOperations(_tIter)
定义部件成员迭代器起始、终止和范围操作。
void Refresh(PaintEventArgs &&) override
刷新:按指定参数绘制界面并更新状态。
unique_ptr< TabBar > p_bar
标签栏。
std::uint16_t SDst
屏幕坐标距离。
#define DefGetter(_q, _t, _n,...)
#define ynothrow
YSLib 无异常抛出保证:若支持 noexcept 关键字, 指定特定的 noexcept 异常规范。
*vWidgets[idx]*vWidgets[idx] bool Contains(IWidget &) const
判断是否包含指定部件。
#define YAssertNonnull(_expr)
std::array< _type, sizeof...(_tParams)> forward_as_array(_tParams &&...args)
取指定参数转移至 std::array 对象。
void Attach(COMPtr< _iCOM > &ptr, typename COMPtr< _iCOM >::InterfaceType *p) ynothrow
#define DefWidgetChildrenGetter
定义部件成员迭代器范围操作。
const IWidget &wgt ImplRet(wgt.GetView().IsVisible()) bool YF_API Contains(const IWidget &
判断点是否在部件的可视区域内。
Selected const shared_ptr< ListType > const pair< Color, Color > & DefDeMoveCtor(TextList) DefPredMem(const ynothrow
#define ynoexcept(...)
YSLib 无异常抛出保证:指定特定的异常规范。