YSTest: YSLib::UI::AMUnitList类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 成员函数 | Public 属性 | Protected 成员函数 | Protected 属性 | 所有成员列表
YSLib::UI::AMUnitList类 参考
UI » User Interface Models

单元部件列表模块。 更多...

`#include <Viewer.h>`

类 YSLib::UI::AMUnitList 继承关系图:
[图例]
YSLib::UI::AMUnitList 的协作图:
[图例]

## Public 成员函数

virtual | DefDeDtor (AMUnitList) bool CyclicTraverse
| 循环选择遍历。 更多...
SDst | GetFullViewHeight () const
| 取完整视图高。 更多...
SDst | GetItemHeight () const
| 取项目行高：调用 GetItemHeightCore 取结果。 更多...
size_t | GetLastLabelIndexClipped (SPos, SDst) const
| DefGetter (const ynothrow, size_t, SharedIndex, idxShared) DefGetter(const ynothrow
uTopOffset | DeclIEntry (size_t GetTotal() const) DeclIEntry(IWidget &GetUnitRef() const ) Point GetUnitLocation(size_t) const
| 取单元总数。 更多...
SDst | GetViewPosition () const
| 取视图顶端竖直位置。 更多...
SDst | AdjustBottomForHeight (SDst, SDst)
| 调整列表视图底项目（可能不完全）超出下边界以上的竖直偏移量为零。 更多...
SDst | AdjustOffsetForHeight (SDst, bool)
| 调整列表视图底项目的竖直偏移量为零。 更多...
void | AdjustViewForContent (SDst)
| 按内容大小依次调整视图中选中和首个项目的索引，然后按需调整竖直偏移量。 更多...
void | AdjustViewLengthForHeight (SDst, SDst)
| 根据指定的单元部件的高和视图可视区域的高调整视图长度。 更多...
size_t | CheckPoint (const Size &, const Point &)
| 检查点（相对左上角）是否在选择范围内， 更多...
void | ResetView ()
| 复位视图。 更多...

## Public 属性

| SDst
| TopOffset

## Protected 成员函数

virtual SDst | GetItemHeightCore () const
| 取默认行高：实现。 更多...

## Protected 属性

SequenceViewer | vwList {}
| 列表视图。 更多...
SDst | uTopOffset = 0
| 列表视图首项目超出上边界的竖直偏移量。 更多...
size_t | idxShared = size_t(-1)

## 详细描述

单元部件列表模块。

自从
  build 527

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

## 成员函数说明

SDst YSLib::UI::AMUnitList::AdjustBottomForHeight | ( | SDst | item_h,
|  | SDst | h
| ) |  |

调整列表视图底项目（可能不完全）超出下边界以上的竖直偏移量为零。

后置条件
  若调整则 `uTopOffset == 0` 。

返回
  返回调整前的偏移量值（取值区间 [0, `GetItemHeight()`) ）。

注解
  不限定选择项。

第一参数指定单元部件的高。 第二参数指定视图可视区域的高。

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

参考 AdjustViewLengthForHeight(), CHRLib::d , 以及 uTopOffset.

参考自 AdjustOffsetForHeight().

函数调用图:

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

SDst YSLib::UI::AMUnitList::AdjustOffsetForHeight | ( | SDst | h,
|  | bool | is_top
| ) |  |

调整列表视图底项目的竖直偏移量为零。

自从
  build 523

后置条件
  若调整则 `uTopOffset == 0` 。

返回
  返回调整前的偏移量值（取值区间 [0, `GetItemHeight()`) ）。

注解
  若没有底项目则不调整，返回 0 。

第一参数指定视图可视区域的高。 第二参数为 `true` 时，调整列表视图底项目（可能不完全）超出下边界以上的竖直 偏移量为零；否则，调整列表视图首项目（可能不完全）超出上边界以上的竖直偏移量为零。

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

参考 AdjustBottomForHeight(), AdjustViewLengthForHeight(), CHRLib::d, GetFullViewHeight(), GetItemHeight(), SDst, uTopOffset, vwList , 以及 YB_UNLIKELY.

参考自 AdjustViewForContent(), YSLib::UI::TextList::SelectFirst(), YSLib::UI::TextList::SelectLast() , 以及 YSLib::UI::TextList::TextList().

函数调用图:

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

void YSLib::UI::AMUnitList::AdjustViewForContent | ( | SDst | h | ) |

按内容大小依次调整视图中选中和首个项目的索引，然后按需调整竖直偏移量。

注解
  参数指定视图可视区域的高。

警告
  若视图大小变化后不调用此方法调整视图，可能引起选择项越界而行为未定义。

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

参考 YSLib::UI::SequenceViewer::AdjustForContent(), AdjustOffsetForHeight(), AdjustViewLengthForHeight(), GetFullViewHeight(), GetItemHeight(), GetViewPosition(), uTopOffset , 以及 vwList.

函数调用图:

void YSLib::UI::AMUnitList::AdjustViewLengthForHeight | ( | SDst | item_h,
|  | SDst | h
| ) |  |

根据指定的单元部件的高和视图可视区域的高调整视图长度。

注解
  视图长为当项目数足够时所有在视图中显示的（可能不完全）项目总数。
  当视图可视区域的高为 0 时忽略。

警告
  设置大小或列表内容后不调用此方法可能导致显示错误。

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

参考 YSLib::UI::SequenceViewer::Length, platform::size_t, uTopOffset, vwList , 以及 YB_LIKELY.

参考自 AdjustBottomForHeight(), AdjustOffsetForHeight() , 以及 AdjustViewForContent().

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

size_t YSLib::UI::AMUnitList::CheckPoint | ( | const Size & | s,
|  | const Point & | pt
| ) |  |

检查点（相对左上角）是否在选择范围内，

返回
  选择的项目索引，若无效则为 static_cast<size_t>(-1) 。

自从
  build 528

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

参考 YSLib::Drawing::Rect::Contains(), GetItemHeight(), platform::size_t, YSLib::UI::SPos, uTopOffset, vwList , 以及 YSLib::Drawing::GBinaryGroup< _type >::Y.

参考自 YSLib::UI::Menu::Menu() , 以及 YSLib::UI::TextList::TextList().

函数调用图:

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

uTopOffset YSLib::UI::AMUnitList::DeclIEntry | ( | size_t GetTotal() | const | ) | const

取单元总数。

自从
  build 586取单元部件引用。

取单元部件的位置。

注解
  参数为项目索引。

自从
  build 523

virtual YSLib::UI::AMUnitList::DefDeDtor | ( | AMUnitList |  | ) |

virtual

循环选择遍历。

自从
  build 222

YSLib::UI::AMUnitList::DefGetter | ( | const ynothrow | ,
|  | size_t | ,
|  | SharedIndex | ,
|  | idxShared |
| ) |  | const

自从
  build 528
  build 528

SDst YSLib::UI::AMUnitList::GetFullViewHeight | ( |  | ) | const

取完整视图高。

注解
  依赖 GetItemHeight 的结果。

自从
  build 203

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

参考 GetItemHeight() , 以及 SDst.

参考自 AdjustOffsetForHeight(), AdjustViewForContent(), YSLib::UI::TextList::LocateViewPosition() , 以及 YSLib::UI::ResizeForContent().

函数调用图:

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

SDst YSLib::UI::AMUnitList::GetItemHeight | ( |  | ) | const

取项目行高：调用 GetItemHeightCore 取结果。

返回
  非零的项目行高。

异常

  LoggedEvent | 调用 GetItemHeightCore 结果为 0 。

自从
  build 203

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

参考 GetItemHeightCore().

参考自 AdjustOffsetForHeight(), AdjustViewForContent(), CheckPoint(), GetFullViewHeight(), YSLib::UI::TreeList::GetIndentBoxBounds(), GetLastLabelIndexClipped(), GetViewPosition(), YSLib::UI::TextList::InvalidateSelected(), YSLib::UI::LocateMenu(), YSLib::UI::TextList::LocateViewPosition(), YSLib::UI::MTextList::MTextList(), YSLib::UI::TextList::Refresh() , 以及 YSLib::UI::TextList::TextList().

函数调用图:

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

SDst YSLib::UI::AMUnitList::GetItemHeightCore | ( |  | ) | const

protectedvirtual

取默认行高：实现。

注解
  默认实现为取单元部件的高。

自从
  build 581

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

参考 YSLib::UI::GetSizeOf.

参考自 GetItemHeight().

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

size_t YSLib::UI::AMUnitList::GetLastLabelIndexClipped | ( | SPos | v_off,
|  | SDst | height
| ) |  | const

自从
  build 523

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

参考 GetItemHeight(), ystdex::min(), YSLib::UI::SPos, uTopOffset , 以及 vwList.

参考自 YSLib::UI::TextList::end(), YSLib::UI::TextList::GetLastLabelIndex() , 以及 YSLib::UI::TextList::Refresh().

函数调用图:

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

SDst YSLib::UI::AMUnitList::GetViewPosition | ( |  | ) | const

取视图顶端竖直位置。

注解
  依赖 GetItemHeight 的结果。

自从
  build 203

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

参考 GetItemHeight(), SDst, uTopOffset , 以及 vwList.

参考自 AdjustViewForContent() , 以及 YSLib::UI::TextList::LocateViewPosition().

函数调用图:

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

void YSLib::UI::AMUnitList::ResetView | ( |  | ) |

复位视图。

注解
  若项目列表非空则选择首个项目。

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

参考 idxShared, YSLib::UI::SequenceViewer::SetSelectedIndex(), uTopOffset, vwList , 以及 yunseq.

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

函数调用图:

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

## 类成员变量说明

size_t YSLib::UI::AMUnitList::idxShared = size_t(-1)

protected

自从
  build 523

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

参考自 YSLib::UI::TreeList::GetIndentBoxBounds(), YSLib::UI::AMUnitControlList::MakeIterator(), YSLib::UI::Menu::Menu(), ResetView(), YSLib::UI::TextList::TextList() , 以及 YSLib::UI::TreeList::TreeList().

YSLib::UI::AMUnitList::SDst

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

参考自 AdjustOffsetForHeight(), GetFullViewHeight() , 以及 GetViewPosition().

YSLib::UI::AMUnitList::TopOffset

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

SDst YSLib::UI::AMUnitList::uTopOffset = 0

protected

列表视图首项目超出上边界的竖直偏移量。

自从
  build 523

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

参考自 AdjustBottomForHeight(), AdjustOffsetForHeight(), AdjustViewForContent(), AdjustViewLengthForHeight(), CheckPoint(), GetLastLabelIndexClipped(), GetViewPosition(), YSLib::UI::TextList::InvalidateSelected(), YSLib::UI::TextList::LocateViewPosition(), ResetView() , 以及 YSLib::UI::TextList::TextList().

SequenceViewer YSLib::UI::AMUnitList::vwList {}

protected

列表视图。

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

参考自 AdjustOffsetForHeight(), AdjustViewForContent(), AdjustViewLengthForHeight(), CheckPoint(), GetLastLabelIndexClipped(), GetViewPosition(), YSLib::UI::TextList::InvokeConfirmed(), YSLib::UI::TextList::LocateViewPosition(), ResetView(), YSLib::UI::TextList::SelectFirst(), YSLib::UI::TextList::SelectLast(), YSLib::UI::TextList::SetSelected() , 以及 YSLib::UI::TextList::TextList().

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

- Viewer.h
- Viewer.cpp