YSTest  PreAlpha_b500_20140530
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
YSLib::UI::TabControl类 参考

标签容器控件。 更多...

#include <TabControl.h>

类 YSLib::UI::TabControl 继承关系图:
YSLib::UI::TabControl 的协作图:

Public 类型

using iterator = ystdex::subscriptive_iterator< TabControl, IWidget >
 

Public 成员函数

 TabControl (const Rect &={})
 
 DefDeMoveCtor (TabControl) DefWidgetMemberIterationOperations(iterator) PDefHOp(IWidget &
 
size_t idx ynoexcept ImplRet (YAssertNonnull(idx==0||p_page),*ystdex::forward_as_array< IWidget * >(p_bar.get(), p_page).begin()[idx]) void operator+
 添加部件并隐藏。 更多...
 
 DefGetter (const ynothrow, size_t, ChildrenCount, p_page?2:1) Rect GetPageBounds() const ynothrow
 取页面边界。 更多...
 
 DefGetter (const ynothrow, TabBar &, TabBarRef,(YAssertNonnull(p_bar),*p_bar)) DefGetter(const ynothrow
 取标签数。 更多...
 
 GetTabBarRef ().GetCount()) DefGetter(const ynothrow
 
const vector< Panel * >
tab_pages void 
Attach (Control &)
 附加:添加 TouchDown 事件处理器。 更多...
 
size_t Find (IWidget &) const
 查找页面部件。 更多...
 
bool SwitchTab (Control &)
 按标签切换页面。 更多...
 
void UpdateTabPages ()
 更新标签页状态。 更多...
 
bool SwitchPage (size_t)
 切换页面。 更多...
 
bool SwitchPage (Control &)
 
- Public 成员函数 继承自 YSLib::UI::Widget
 Widget (const Rect &={})
 
 Widget (const Rect &, HBrush, Color=Drawing::ColorSpace::Black)
 
template<typename _tView , typename _tRenderer , typename _tController >
 Widget (_tView &&pView_=make_unique< View >(), _tRenderer &&pRenderer_=make_unique< Renderer >(), _tController &&pController_={})
 构造:使用视图指针、渲染器指针和控制器指针,无背景。 更多...
 
 Widget (const Widget &)
 复制构造:除容器指针为空外深复制。 更多...
 
 DefDelMoveCtor (Widget) virtual ~Widget()
 since build 428 更多...
 
 ImplI (IWidget) DefGetter(override
 
 WidgetRange ()) static HBrush MakeBlankBrush()
 取空白画刷。 更多...
 
 ImplI (IWidget) DefGetter(const override
 
AController *controller_ptr DefGetterMem (const ynothrow, SDst, Height, GetView()) ImplI(IWidget) DefGetter(const override
 
AController *controller_ptr
Renderer *renderer_ptr 
ImplI (IWidget) DefGetter(const override
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
DefGetterMem (const ynothrow, SDst, Width, GetView()) DefGetterMem(const ynothrow
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) DefGetterMem(const ynothrow
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) DefSetterMem(SDst
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) DefSetterMem(SDst
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) DefSetterMem(SDst
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) DefSetterMem(SDst
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
GetView ()) void SetRenderer(unique_ptr< Renderer >)
 设置渲染器为指定指针指向的对象,同时更新渲染器状态。 更多...
 
void SetView (unique_ptr< View > &&)
 设置渲染器为指定指针指向的对象,同时更新渲染器状态。 更多...
 
virtual void Refresh (PaintEventArgs &&)
 刷新:按指定参数绘制界面并更新状态。 更多...
 

Public 属性

SDst BarHeight = 24
 标签栏初始高。 更多...
 
 size_t
 
 TabCount
 
const vector< Panel * > Pages
 
- Public 属性 继承自 YSLib::UI::Widget
HBrush Background
 背景。 更多...
 
Color ForeColor = Drawing::ColorSpace::Black
 默认前景色。 更多...
 
 WidgetRange
 
 Children
 
AController Controller
 
AController *controller_ptr
Renderer 
Renderer
 
AController *controller_ptr
Renderer *renderer_ptr View 
View
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
SPos
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
X
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
Y
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
Height
 
AController *controller_ptr
Renderer *renderer_ptr View
*view_ptr 
Width
 

Private 属性

unique_ptr< TabBarp_bar
 标签栏。 更多...
 
Panelp_page {}
 
vector< Panel * > tab_pages {}
 

额外继承的成员函数

- Protected 成员函数 继承自 YSLib::UI::Control
 Control (const Rect &, HBrush, Drawing::Color=Drawing::ColorSpace::Black)
 构造:使用指定边界、背景画刷和前景色。 更多...
 
 Control (const Control &)
 复制构造:除容器为空外深复制。 更多...
 
 DefDeMoveCtor (Control) virtual PDefH(IWidget *
 取按键-指针设备输入默认事件组映射。 更多...
 
const KeyInput & ImplRet (nullptr) void OnTouch_Close(CursorEventArgs &&)
 处理屏幕事件:关闭显示。 更多...
 
- Protected 属性 继承自 YSLib::UI::Control
 GetBoundControlPtr
 

详细描述

标签容器控件。

自从
build 494

在文件 TabControl.h112 行定义.

成员类型定义说明

构造及析构函数说明

YSLib::UI::TabControl::TabControl ( const Rect r = {})
explicit

在文件 TabControl.cpp130 行定义.

成员函数说明

void YSLib::UI::TabControl::Attach ( Control ctl)

附加:添加 TouchDown 事件处理器。

在文件 TabControl.cpp144 行定义.

参考 YSLib::UI::Invalidate() , 以及 SwitchTab().

参考自 YReader::AddButtonToTabBar().

函数调用图:

这是这个函数的调用关系图:

YSLib::UI::TabControl::DefDeMoveCtor ( TabControl  )
YSLib::UI::TabControl::DefGetter ( const ynothrow  ,
size_t  ,
ChildrenCount  ,
p_page?2:1   
) const

取页面边界。

YSLib::UI::TabControl::DefGetter ( const ynothrow  ,
TabBar ,
TabBarRef  ,
(YAssertNonnull(p_bar),*p_bar  
) const

取标签数。

自从
build 495
build 495
size_t YSLib::UI::TabControl::Find ( IWidget &  wgt) const

查找页面部件。

返回
若找到则为页面部件的索引,否则等于页面数。
自从
build 495

在文件 TabControl.cpp162 行定义.

参考 tab_pages , 以及 YSLib::UI::wgt.

参考自 SwitchPage() , 以及 SwitchTab().

这是这个函数的调用关系图:

YSLib::UI::TabControl::GetTabBarRef ( ) const

参考自 YReader::AddButtonToTabBar(), SwitchTab() , 以及 UpdateTabPages().

这是这个函数的调用关系图:

size_t idx ynoexcept YSLib::UI::TabControl::ImplRet ( YAssertNonnull(idx==0||p_page ,
*ystdex::forward_as_array< IWidget * >  (p_bar.get(), p_page).begin()[idx] 
)

添加部件并隐藏。

前置条件
参数对应的部件的动态类型是 Panel 或其派生类。
异常
std::bad_cast参数不能 dynamic_cast 为 Panel& 。
bool YSLib::UI::TabControl::SwitchPage ( size_t  idx)

切换页面。

返回
是否切换成功。
注解
设置页面选择、页面大小和状态;若参数指定的页面不存在或标签无效则忽略。

在文件 TabControl.cpp177 行定义.

参考 p_page , 以及 tab_pages.

参考自 SwitchTab().

这是这个函数的调用关系图:

bool YSLib::UI::TabControl::SwitchPage ( Control ctl)
前置条件
断言:控件属于标签。

在文件 TabControl.cpp187 行定义.

参考 Find(), p_bar, p_page, YSLib::UI::SetBoundsOf(), tab_pages, YAssert , 以及 YAssertNonnull.

函数调用图:

bool YSLib::UI::TabControl::SwitchTab ( Control ctl)

按标签切换页面。

自从
build 495

在文件 TabControl.cpp169 行定义.

参考 Find(), GetTabBarRef() , 以及 SwitchPage().

参考自 Attach().

函数调用图:

这是这个函数的调用关系图:

void YSLib::UI::TabControl::UpdateTabPages ( )

更新标签页状态。

参见
UpdatePageLayout
自从
build 495

调整标签栏布局;选中第一个存在对应页面的标签; 若存在选中页面则设置可视状态并调整大小;最后无效化。

在文件 TabControl.cpp207 行定义.

参考 GetTabBarRef(), YSLib::UI::Invalidate(), p_page, YSLib::UI::SetBoundsOf(), tab_pages , 以及 yunseq.

函数调用图:

类成员变量说明

SDst YSLib::UI::TabControl::BarHeight = 24

标签栏初始高。

在文件 TabControl.h118 行定义.

参考自 YReader::AddButtonToTabBar().

unique_ptr<TabBar> YSLib::UI::TabControl::p_bar
private

标签栏。

不变性
bool(p_bar)

在文件 TabControl.h125 行定义.

参考自 SwitchPage().

Panel* YSLib::UI::TabControl::p_page {}
private

在文件 TabControl.h126 行定义.

参考自 SwitchPage() , 以及 UpdateTabPages().

const vector<Panel*> YSLib::UI::TabControl::Pages

在文件 TabControl.h160 行定义.

YSLib::UI::TabControl::size_t

在文件 TabControl.h159 行定义.

vector<Panel*> YSLib::UI::TabControl::tab_pages {}
private

在文件 TabControl.h127 行定义.

参考自 Find(), SwitchPage() , 以及 UpdateTabPages().

YSLib::UI::TabControl::TabCount

在文件 TabControl.h159 行定义.


该类的文档由以下文件生成: