YSTest: YSLib::UI::SequenceViewer类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

Public 成员函数 | Public 属性 | Private 属性 | 所有成员列表
YSLib::UI::SequenceViewer类 参考abstract

序列视图。 更多...

`#include <Viewer.h>`

YSLib::UI::SequenceViewer 的协作图:
[图例]

## Public 成员函数

| SequenceViewer ()=default
| 构造：使用指定容器。 更多...
| DefPred (const ynothrow, Selected, is_selected) bool Contains(size_t) const ynothrow
| 判断是否为选中状态。 更多...
| DefGetter (const ynothrow, size_t, HeadIndex, head) DefGetter(const ynothrow
selected | DefGetter (const ynothrow, ptrdiff_t, Offset, IsSelected()?ptrdiff_t(GetSelectedIndex())-ptrdiff_t(GetHeadIndex()):-1) size_t GetValid(size_t total) const ynothrow
| 取当前视图中有效项目个数。 更多...
bool | SetHeadIndex (size_t t, size_t total)
| 设置视图中首个项目的索引。 更多...
bool | SetSelectedIndex (size_t t, size_t total)
| 设置选中项目的索引。 更多...
bool | AdjustForContent (size_t total)
| 按序列内容大小依次调整选中和首个项目的索引。 更多...
| PDefH (bool, CheckSelected, size_t idx) const ImplRet(IsSelected()&&GetSelectedIndex()
| 检查列表中的指定项是否被选中。 更多...
SequenceViewer & | IncreaseSelected (ptrdiff_t d, size_t total)
| 按偏移设置选中项目的索引。 更多...
bool | MoveViewerToBegin ()
| 移动视图至序列起始。 更多...
bool | MoveViewerToEnd (size_t total)
| 移动视图至序列结尾。 更多...
| PDefH (void, Reset,) ImplUnseq(head=0
| 复位视图。 更多...
bool | RestrictView ()
| 约束视图包含被选中的元素。 更多...

## Public 属性

size_t | Length = 1
| 视图长度：最大可视项目数。 更多...
| size_t
| SelectedIndex
| selected = 0
| Length = 1
| is_selected

## Private 属性

size_t | head = 0
| 视图中首个项目的索引，大于序列大小时无效。 更多...
size_t | selected = 0
bool | is_selected = {}
| 选中状态。 更多...

## 详细描述

序列视图。

警告
  非虚析构。

自从
  build 525

在文件 Viewer.h 第 45 行定义.

## 构造及析构函数说明

YSLib::UI::SequenceViewer::SequenceViewer | ( |  | ) |

default

构造：使用指定容器。

后置条件
  `GetHeadIndex() == 0 && GetSelectedIndex() == 0 && Length == 1 && !IsSelected()` 。

## 成员函数说明

bool YSLib::UI::SequenceViewer::AdjustForContent | ( | size_t | total | ) |

按序列内容大小依次调整选中和首个项目的索引。

后置条件
  `(total == 0 && !IsSelected()) || (GetSelectedIndex() < total && GetHeadIndex() < total)` 。

参数

  total | 外部列表长度。

返回
  是否改变了视图中首个项目的索引。

在文件 Viewer.cpp 第 81 行定义.

参考 platform_ex::Reset(), RestrictView() , 以及 selected.

参考自 YSLib::UI::AMUnitList::AdjustViewForContent().

函数调用图:

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

YSLib::UI::SequenceViewer::DefGetter | ( | const ynothrow | ,
|  | size_t | ,
|  | HeadIndex | ,
|  | head |
| ) |  | const

selected YSLib::UI::SequenceViewer::DefGetter | ( | const ynothrow | ,
|  | ptrdiff_t | ,
|  | Offset | ,
|  | IsSelected()?ptrdiff_t(GetSelectedIndex())-ptrdiff_t(GetHeadIndex()):- | 1
| ) |  | const

取当前视图中有效项目个数。

参数

  total | 外部列表长度。

前置条件
  断言：外部列表长度不小于首个项目的索引。

参数

  1 | 取选中的项目相对视图中首个项目的的索引偏移（未选中时为 -1 ）。

YSLib::UI::SequenceViewer::DefPred | ( | const ynothrow | ,
|  | Selected | ,
|  | is_selected |
| ) |  | const

判断是否为选中状态。

自从
  build 147

判断是否在有效范围内包含指定项目索引。

自从
  build 639

SequenceViewer & YSLib::UI::SequenceViewer::IncreaseSelected | ( | ptrdiff_t | d,
|  | size_t | total
| ) |  |

按偏移设置选中项目的索引。

参数

  d | 增加的索引偏移值。
  total | 外部列表长度。

在文件 Viewer.cpp 第 106 行定义.

参考 YSLib::RestrictInInterval(), selected , 以及 SetSelectedIndex().

参考自 YSLib::UI::TextList::TextList().

函数调用图:

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

bool YSLib::UI::SequenceViewer::MoveViewerToBegin | ( |  | ) |

移动视图至序列起始。

自从
  build 147

在文件 Viewer.cpp 第 117 行定义.

参考 head.

参考自 SetHeadIndex().

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

bool YSLib::UI::SequenceViewer::MoveViewerToEnd | ( | size_t | total | ) |

移动视图至序列结尾。

参数

  total | 外部列表长度。

在文件 Viewer.cpp 第 128 行定义.

参考 head , 以及 Length.

参考自 SetHeadIndex().

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

YSLib::UI::SequenceViewer::PDefH | ( | bool | ,
|  | CheckSelected | ,
|  | size_t | idx
| ) |  | const

检查列表中的指定项是否被选中。

YSLib::UI::SequenceViewer::PDefH | ( | void | ,
|  | Reset |
| ) |  |

pure virtual

复位视图。

自从
  build 298

bool YSLib::UI::SequenceViewer::RestrictView | ( |  | ) |

约束视图包含被选中的元素。

后置条件
  `(!(GetSelectedIndex() < GetHeadIndex()) && GetSelectedIndex() < GetHeadIndex() + Length)` 。

返回
  是否改变了视图中首个项目的索引。

自从
  build 147

在文件 Viewer.cpp 第 149 行定义.

参考 head, Length , 以及 selected.

参考自 AdjustForContent() , 以及 SetSelectedIndex().

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

bool YSLib::UI::SequenceViewer::SetHeadIndex | ( | size_t | t,
|  | size_t | total
| ) |  |

设置视图中首个项目的索引。

参数

  t | 设置的索引。
  total | 外部列表长度。

在文件 Viewer.cpp 第 53 行定义.

参考 head, Length, MoveViewerToBegin() , 以及 MoveViewerToEnd().

参考自 YSLib::UI::TextList::LocateViewPosition().

函数调用图:

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

bool YSLib::UI::SequenceViewer::SetSelectedIndex | ( | size_t | t,
|  | size_t | total
| ) |  |

设置选中项目的索引。

参数

  t | 设置的索引。
  total | 外部列表长度。

在文件 Viewer.cpp 第 68 行定义.

参考 is_selected, RestrictView() , 以及 selected.

参考自 IncreaseSelected(), YSLib::UI::AMUnitList::ResetView(), YSLib::UI::TextList::SelectFirst(), YSLib::UI::TextList::SelectLast() , 以及 YSLib::UI::TextList::SetSelected().

函数调用图:

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

## 类成员变量说明

size_t YSLib::UI::SequenceViewer::head = 0

private

视图中首个项目的索引，大于序列大小时无效。

注解
  空序列时应等于 0 。

在文件 Viewer.h 第 52 行定义.

参考自 MoveViewerToBegin(), MoveViewerToEnd(), RestrictView() , 以及 SetHeadIndex().

bool YSLib::UI::SequenceViewer::is_selected = {}

private

选中状态。

自从
  build 147

在文件 Viewer.h 第 55 行定义.

参考自 SetSelectedIndex().

YSLib::UI::SequenceViewer::is_selected

初始值:
= {})
bool
RestrictSelected()

在文件 Viewer.h 第 163 行定义.

size_t YSLib::UI::SequenceViewer::Length = 1

视图长度：最大可视项目数。

在文件 Viewer.h 第 58 行定义.

参考自 YSLib::UI::AMUnitList::AdjustViewLengthForHeight(), MoveViewerToEnd(), RestrictView(), SetHeadIndex() , 以及 YSLib::UI::TextList::TextList().

YSLib::UI::SequenceViewer::Length = 1

在文件 Viewer.h 第 163 行定义.

size_t YSLib::UI::SequenceViewer::selected = 0

private

选中项目的索引，大于等于序列大小时无效。

在文件 Viewer.h 第 53 行定义.

参考自 AdjustForContent(), IncreaseSelected(), RestrictView() , 以及 SetSelectedIndex().

YSLib::UI::SequenceViewer::selected = 0

在文件 Viewer.h 第 163 行定义.

YSLib::UI::SequenceViewer::SelectedIndex

在文件 Viewer.h 第 81 行定义.

YSLib::UI::SequenceViewer::size_t

在文件 Viewer.h 第 81 行定义.

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

- Viewer.h
- Viewer.cpp