YSTest: YSLib::UI::HexViewArea类 参考

YSTest PreAlpha_b700_20160611 The YSLib Test Project

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

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

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

十六进制视图区域。 更多...

`#include <HexBrowser.h>`

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

## Public 类型

using | ViewArgs = GValueEventArgs< bool >
| 视图参数类型。 更多...
using | IndexType = std::uintptr_t
| 索引类型。 更多...
using | DataType = vector< char >
| 显示数据类型。 更多...
Public 类型 继承自 YSLib::UI::ScrollableContainer
using | iterator = ystdex::subscriptive_iterator< ScrollableContainer, IWidget >

## Public 成员函数

| HexViewArea (const Drawing::Rect &={}, FontCache &=FetchDefaultFontCache())
| DefGetter (const ynothrow, const HexModel &, Model, model) YB_NONNULL(2) void Load(const char *)
void | LocateViewPosition (size_t)
| 定位视图顶端至指定竖直位置（行数）。 更多...
void | Refresh (PaintEventArgs &&) override
| 刷新：按指定参数绘制界面并更新状态。 更多...
void | Reset ()
void | UpdateData (std::uint32_t)
void | UpdateView (bool={})
| 更新视图。 更多...
Public 成员函数 继承自 YSLib::UI::ScrollableContainer
| ScrollableContainer (const Rect &={})
| DefDeMoveCtor (ScrollableContainer)~ScrollableContainer() override
| 虚析构：类定义外默认实现。 更多...
Public 成员函数 继承自 YSLib::UI::Widget
| Widget (const Rect &={})
| Widget (const Rect &, HBrush)
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 更多...
| DefGetter (ImplI(IWidget), WidgetRange, Children, WidgetRange()) static HBrush MakeBlankBrush()
| 取空白画刷。 更多...
| DefGetter (const ImplI(IWidget), AController &, Controller, Deref(controller_ptr)) DefGetterMem(const ynothrow
| GetView ()) DefGetter(const ImplI(IWidget)
Renderer | Deref (renderer_ptr)) DefGetter(const ImplI(IWidget)
Renderer AView | Deref (view_ptr)) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefGetterMem(const ynothrow
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) DefSetterMem(
Renderer AView | GetView ()) void SetRenderer(unique_ptr< Renderer >)
| 设置渲染器为指定指针指向的对象，同时更新渲染器状态。 更多...
void | SetView (unique_ptr< AView >)
| 设置视图为指定指针指向的对象。 更多...

## Public 属性

GEvent< void(ViewArgs)> | ViewChanged
| 视图变更事件。 更多...
Public 属性 继承自 YSLib::UI::Widget
HBrush | Background
| 背景。 更多...
| SDst
| Height
Renderer | Renderer
Renderer AView | View
Renderer AView | SDst
Renderer AView | Width
Renderer AView | SPos
Renderer AView | X
Renderer AView | Y
Renderer AView | Height

## Private 属性

HexModel | model
| 模型。 更多...

## 额外继承的成员函数

Protected 类型 继承自 YSLib::UI::HexView
using | IndexType = std::uintptr_t
| 索引类型。 更多...
using | DataType = vector< char >
| 显示数据类型。 更多...
Protected 成员函数 继承自 YSLib::UI::Control
| Control (const Rect &, HBrush)
| 构造：使用指定边界和背景画刷。 更多...
| Control (const Control &)
| 复制构造：除容器为空外深复制。 更多...
| DefDeMoveCtor (Control)~Control() override
| 虚析构：类定义外默认实现。 更多...
virtual | PDefH (observer_ptr< IWidget >, GetBoundControlPtr, const KeyInput &) ImplRet(nullptr) void OnTouch_Close(CursorEventArgs &&)
| 取按键-指针设备输入默认事件组映射。 更多...
Protected 成员函数 继承自 YSLib::UI::HexView
| HexView (FontCache &=FetchDefaultFontCache())
| DefGetter (const ynothrow, SDst, ItemHeight, GetTextLineHeightExOf(TextState)) DefGetter(const ynothrow
| 取项目行高。 更多...
Protected 属性 继承自 YSLib::UI::ScrollableContainer
ScrollBar | hsbHorizontal
| 控制水平和竖直可视区域的水平滚动条。 更多...
ScrollBar | vsbVertical
Protected 属性 继承自 YSLib::UI::HexView
Drawing::TextState | TextState
| 文本状态。 更多...
DataType | datCurrent
| 当前显示的数据。 更多...
| IndexType
| ItemNum
静态 Protected 属性 继承自 YSLib::UI::HexView
static yconstexpr const size_t | ItemPerLine = 8
| 每行数据总数（字节）。 更多...
相关函数 继承自 YSLib::UI::Widget
template<class... _tWidgets>
void | InvalidateWidgets (_tWidgets &...wgts)
| 向无效化部件。 更多...
template<class _tRenderer >
_tRenderer & | WrapRenderer (Widget &wgt, unique_ptr< _tRenderer > p_renderer)
| 包装渲染器：设置渲染器并返回被设置的渲染器引用。 更多...

## 详细描述

十六进制视图区域。

自从
  build 253

在文件 HexBrowser.h 第 144 行定义.

## 成员类型定义说明

using YSLib::UI::HexView::DataType = vector<char>

显示数据类型。

在文件 HexBrowser.h 第 107 行定义.

using YSLib::UI::HexView::IndexType = std::uintptr_t

索引类型。

在文件 HexBrowser.h 第 106 行定义.

using YSLib::UI::HexViewArea::ViewArgs = GValueEventArgs<bool>

视图参数类型。

注解
  bool 参数表示主动定位视图。

自从
  build 269

在文件 HexBrowser.h 第 155 行定义.

## 构造及析构函数说明

YSLib::UI::HexViewArea::HexViewArea | ( | const Drawing::Rect & | r = `{}`,
|  | FontCache & | fc = `FetchDefaultFontCache()`
| ) |  |

explicit

自从
  build 396

在文件 HexBrowser.cpp 第 54 行定义.

参考 YSLib::UI::Down, YSLib::UI::e, YSLib::UI::ScrollBar::GetTrackRef(), YSLib::UI::ScrollableContainer::hsbHorizontal, YSLib::UI::LargeDecrement, YSLib::UI::LargeIncrement, LocateViewPosition(), YSLib::UI::OnKeyHeld(), platform::KeyCodes::DS::PgDn, platform::KeyCodes::DS::PgUp, Reset(), YSLib::UI::ATrack::Scroll, YSLib::UI::SmallDecrement, YSLib::UI::SmallIncrement, YSLib::UI::Up, YSLib::UI::ScrollableContainer::vsbVertical , 以及 yunseq.

函数调用图:

## 成员函数说明

YSLib::UI::HexViewArea::DefGetter | ( | const ynothrow | ,
|  | const HexModel & | ,
|  | Model | ,
|  | model |
| ) |  | const

前置条件
  间接断言：路径参数非空。

自从
  build 412

void YSLib::UI::HexViewArea::LocateViewPosition | ( | size_t | line | ) |

定位视图顶端至指定竖直位置（行数）。

自从
  build 474

在文件 HexBrowser.cpp 第 115 行定义.

参考 YSLib::UI::HexView::ItemPerLine, UpdateData() , 以及 UpdateView().

参考自 HexViewArea().

函数调用图:

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

void YSLib::UI::HexViewArea::Refresh | ( | PaintEventArgs && | e | ) |

overridevirtual

刷新：按指定参数绘制界面并更新状态。

自从
  build 294

重载 YSLib::UI::Widget .

在文件 HexBrowser.cpp 第 122 行定义.

参考 YSLib::UI::HexView::datCurrent, YSLib::UI::e, YSLib::Drawing::GetHeight(), YSLib::UI::HexView::ItemPerLine, YSLib::Drawing::Padding::Left, YSLib::Drawing::TextState::LineGap, YSLib::Drawing::TextState::Margin, model, platform::n, YSLib::Drawing::TextState::Pen, YSLib::Drawing::PutLine(), YSLib::UI::Widget::Refresh(), YSLib::Drawing::TextState::ResetPen, YSLib::UI::Widget::SDst, YSLib::UI::Widget::SPos, YSLib::UI::ScrollableContainer::vsbVertical, YSLib::UI::x, YSLib::Drawing::GBinaryGroup< _type >::X, YSLib::UI::y, YSLib::Drawing::GBinaryGroup< _type >::Y , 以及 yunseq.

函数调用图:

void YSLib::UI::HexViewArea::Reset | ( |  | ) |

在文件 HexBrowser.cpp 第 177 行定义.

参考 YSLib::UI::HexView::datCurrent, YSLib::Drawing::GetHeight(), UpdateView() , 以及 YSLib::UI::ScrollableContainer::vsbVertical.

参考自 HexViewArea().

函数调用图:

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

void YSLib::UI::HexViewArea::UpdateData | ( | std::uint32_t | pos | ) |

在文件 HexBrowser.cpp 第 186 行定义.

参考 CHRLib::c, YSLib::UI::HexView::datCurrent, YSLib::UI::HexView::ItemPerLine, model, platform::n, platform::Descriptions::Notice, platform::Descriptions::Warning, YB_UNLIKELY, YTraceDe , 以及 yunseq.

参考自 LocateViewPosition().

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

void YSLib::UI::HexViewArea::UpdateView | ( | bool | is_active = `{}` | ) |

更新视图。

调用视图变更事件、调整视图长度后无效化自身。

注解
  参数表示是否确定仅变更视图位置。

自从
  build 269

在文件 HexBrowser.cpp 第 228 行定义.

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

参考自 LocateViewPosition() , 以及 Reset().

函数调用图:

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

## 类成员变量说明

HexModel YSLib::UI::HexViewArea::model

private

模型。

在文件 HexBrowser.h 第 161 行定义.

参考自 Refresh() , 以及 UpdateData().

GEvent<void(ViewArgs)> YSLib::UI::HexViewArea::ViewChanged

视图变更事件。

自从
  build 269

在文件 HexBrowser.h 第 168 行定义.

参考自 UpdateView().

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

- HexBrowser.h
- HexBrowser.cpp