YSTest
PreAlpha_b500_20140530
The YSLib Test Project
|
双屏阅读器。 更多...
#include <DSReader.h>
Public 类型 | |
enum | Command : u16 { Null = 0, Scroll = 1, Up = 2, Down = 0, Line = 4, Screen = 0, LineUp = Line | Up, LineDown = Line | Down, ScreenUp = Screen | Up, ScreenDown = Screen | Down, LineUpScroll = LineUp | Scroll, LineDownScroll = LineDown | Scroll, ScreenUpScroll = ScreenUp | Scroll, ScreenDownScroll = ScreenDown | Scroll } |
命令类型。 更多... | |
Public 成员函数 | |
DualScreenReader (SDst w=MainScreenWidth, SDst h_up=MainScreenHeight, SDst h_down=MainScreenHeight, Drawing::FontCache &fc_=FetchDefaultFontCache()) | |
构造。 更多... | |
DefPred (const ynothrow, BufferReady, bool(p_text)) | |
DefPred (const ynothrow, TextTop, i_top==p_text->begin()) DefPred(const ynothrow | |
void | SetFontSize (Drawing::FontSize=Drawing::Font::DefaultSize) |
设置文本区域的字体大小。 更多... | |
void | SetLineGap (u8=0) |
设置行距。 更多... | |
void | SetVisible (bool=true) |
设置文本区域可见性。 更多... | |
void | AdjustMargins () |
调整边距:使用公用边距更新各文本显示区域的边距。 更多... | |
Drawing::FontSize | AdjustScrollOffset () |
调整滚屏像素偏移量:立即继续滚动至下一整文本行。 更多... | |
void | Attach (YSLib::UI::Window &, YSLib::UI::Window &) |
附加到窗口。 更多... | |
void | Detach () |
从窗口分离。 更多... | |
bool | Execute (Command) |
执行阅读器命令。 更多... | |
void | Invalidate () |
无效化文本区域,并调用 ViewChanged (仅当非空)。 更多... | |
void | Locate (size_t) |
文本定位。 更多... | |
void | LoadText (TextFile &) |
载入文本。 更多... | |
void | Reset () |
复位输出显示状态。 更多... | |
Drawing::FontSize | ScrollByPixel (Drawing::FontSize) |
向下滚屏指定像素行。 更多... | |
void | Stretch (SDst) |
伸缩:从最大值起向上调整(减少)下文字区域的高后更新视图。 更多... | |
void | UnloadText () |
卸载文本。 更多... | |
void | UpdateView () |
更新视图。 更多... | |
Public 属性 | |
Drawing::Padding | Margin |
公用边距。 更多... | |
std::function< void()> | ViewChanged |
视图变更回调函数。 更多... | |
TextBottom | |
i_btm | |
判断输出位置是否到文本底端。 更多... | |
Private 成员函数 | |
void | AdjustForFirstNewline () |
void | AdjustForPrevNewline () |
void | MoveUpForLastLine (ptrdiff_t, size_t) |
Text::TextFileBuffer::iterator | PutLastLine () |
Private 属性 | |
unique_ptr< Text::TextFileBuffer > | p_text |
文本资源。 更多... | |
Drawing::FontCache & | fc |
字体缓存。 更多... | |
u16 | overread_line_n |
读入文件结束后的空行数。 更多... | |
Drawing::FontSize | scroll_offset |
滚屏像素偏移量。 更多... | |
Text::TextFileBuffer::iterator | i_top |
文本区域输入迭代器。 更多... | |
Text::TextFileBuffer::iterator | i_btm |
YSLib::UI::BufferedTextArea | area_up |
上下屏幕对应文本区域。 更多... | |
YSLib::UI::BufferedTextArea | area_dn |
命令类型。
枚举值 | |
---|---|
Null | |
Scroll | |
Up | |
Down | |
Line | |
Screen | |
LineUp | |
LineDown | |
ScreenUp | |
ScreenDown | |
LineUpScroll | |
LineDownScroll | |
ScreenUpScroll | |
ScreenDownScroll |
在文件 DSReader.h 第 63 行定义.
YSLib::DS::UI::DualScreenReader::DualScreenReader | ( | SDst | w = MainScreenWidth , |
SDst | h_up = MainScreenHeight , |
||
SDst | h_down = MainScreenHeight , |
||
Drawing::FontCache & | fc_ = FetchDefaultFontCache() |
||
) |
|
private |
|
private |
void YSLib::DS::UI::DualScreenReader::AdjustMargins | ( | ) |
调整边距:使用公用边距更新各文本显示区域的边距。
在文件 DSReader.cpp 第 272 行定义.
参考 YSLib::Drawing::AdjustBottomMarginOf(), YSLib::Drawing::Padding::Bottom, YSLib::Drawing::TextState::Margin, Margin, YSLib::Drawing::Padding::Top, v , 以及 yunseq.
参考自 Reset().
FontSize YSLib::DS::UI::DualScreenReader::AdjustScrollOffset | ( | ) |
调整滚屏像素偏移量:立即继续滚动至下一整文本行。
在文件 DSReader.cpp 第 289 行定义.
参考 p_text, scroll_offset , 以及 ScrollByPixel().
参考自 Execute().
void YSLib::DS::UI::DualScreenReader::Attach | ( | YSLib::UI::Window & | wnd_up, |
YSLib::UI::Window & | wnd_dn | ||
) |
YSLib::DS::UI::DualScreenReader::DefPred | ( | const ynothrow | , |
TextTop | , | ||
i_top | = = p_text->begin() |
||
) | const |
void YSLib::DS::UI::DualScreenReader::Detach | ( | ) |
bool YSLib::DS::UI::DualScreenReader::Execute | ( | Command | cmd | ) |
执行阅读器命令。
在文件 DSReader.cpp 第 315 行定义.
参考 AdjustForFirstNewline(), AdjustForPrevNewline(), AdjustScrollOffset(), YSLib::Drawing::PenStyle::Font, YSLib::Drawing::Font::GetHeight(), i_btm, i_top, Invalidate(), Line, YSLib::Drawing::TextState::LineGap, MoveUpForLastLine(), ystdex::next_if_eq(), overread_line_n, p_text, PutLastLine(), YSLib::Drawing::PutLine(), Scroll, YSLib::Drawing::SetCurrentTextLineNOf(), Up, UpdateView(), YAssert , 以及 YB_UNLIKELY.
void YSLib::DS::UI::DualScreenReader::Invalidate | ( | ) |
无效化文本区域,并调用 ViewChanged (仅当非空)。
在文件 DSReader.cpp 第 378 行定义.
参考 YSLib::UI::Invalidate() , 以及 ViewChanged.
参考自 Execute(), LoadText(), Locate(), ScrollByPixel(), SetVisible() , 以及 UpdateView().
void YSLib::DS::UI::DualScreenReader::LoadText | ( | TextFile & | file | ) |
载入文本。
在文件 DSReader.cpp 第 416 行定义.
参考 i_btm, i_top, Invalidate(), p_text, YSLib::Drawing::PutString(), Reset(), UnloadText(), UpdateView(), YB_LIKELY , 以及 yunseq.
void YSLib::DS::UI::DualScreenReader::Locate | ( | size_t | pos | ) |
文本定位。
以指定偏移量定位起始迭代器,若越界则忽略。
在文件 DSReader.cpp 第 390 行定义.
参考 AdjustForPrevNewline(), i_top, Invalidate(), p_text, Reset(), platform_ex::Windows::s, UpdateView() , 以及 YAssert.
|
private |
在文件 DSReader.cpp 第 434 行定义.
参考 YSLib::Drawing::SetCurrentTextLineNOf() , 以及 YAssert.
参考自 Execute() , 以及 ScrollByPixel().
|
private |
在文件 DSReader.cpp 第 445 行定义.
参考 i_btm, ystdex::next_if_eq(), p_text , 以及 YSLib::Drawing::PutLine().
参考自 Execute() , 以及 ScrollByPixel().
void YSLib::DS::UI::DualScreenReader::Reset | ( | ) |
复位输出显示状态。
在文件 DSReader.cpp 第 451 行定义.
参考 AdjustMargins() , 以及 YSLib::Drawing::TextState::ResetPen.
参考自 LoadText(), Locate() , 以及 UpdateView().
FontSize YSLib::DS::UI::DualScreenReader::ScrollByPixel | ( | Drawing::FontSize | h | ) |
向下滚屏指定像素行。
像素数。 |
在文件 DSReader.cpp 第 464 行定义.
参考 AdjustForFirstNewline(), i_btm, Invalidate(), MoveUpForLastLine(), p_text, YSLib::Drawing::TextState::Pen, PutLastLine(), scroll_offset, YSLib::Drawing::GBinaryGroup< _type >::Y, YAssert, YB_LIKELY , 以及 YB_UNLIKELY.
参考自 AdjustScrollOffset().
void YSLib::DS::UI::DualScreenReader::SetFontSize | ( | Drawing::FontSize | s = Drawing::Font::DefaultSize | ) |
void YSLib::DS::UI::DualScreenReader::SetLineGap | ( | u8 | g = 0 | ) |
设置行距。
在文件 DSReader.cpp 第 225 行定义.
参考 YSLib::Drawing::TextState::LineGap, UpdateView() , 以及 yunseq.
void YSLib::DS::UI::DualScreenReader::SetVisible | ( | bool | b = true | ) |
设置文本区域可见性。
在文件 DSReader.cpp 第 235 行定义.
参考 YSLib::UI::Invalidate() , 以及 Invalidate().
void YSLib::DS::UI::DualScreenReader::Stretch | ( | SDst | h | ) |
伸缩:从最大值起向上调整(减少)下文字区域的高后更新视图。
在文件 DSReader.cpp 第 492 行定义.
参考 YSLib::UI::SetSizeOf() , 以及 UpdateView().
void YSLib::DS::UI::DualScreenReader::UnloadText | ( | ) |
卸载文本。
在文件 DSReader.cpp 第 505 行定义.
参考 i_btm, i_top, p_text , 以及 yunseq.
参考自 LoadText().
void YSLib::DS::UI::DualScreenReader::UpdateView | ( | ) |
更新视图。
根据文本起点迭代器和当前视图状态重新填充缓冲区文本并无效化文本区域。
在文件 DSReader.cpp 第 513 行定义.
参考 i_btm, i_top, Invalidate(), ystdex::next_if_eq(), overread_line_n, p_text, YSLib::Drawing::PutString(), Reset(), YB_LIKELY , 以及 YB_UNLIKELY.
参考自 Execute(), LoadText(), Locate(), SetLineGap() , 以及 Stretch().
|
private |
在文件 DSReader.h 第 128 行定义.
|
private |
|
private |
字体缓存。
在文件 DSReader.h 第 87 行定义.
|
private |
在文件 DSReader.h 第 97 行定义.
参考自 Execute(), LoadText(), PutLastLine(), ScrollByPixel(), UnloadText() , 以及 UpdateView().
YSLib::DS::UI::DualScreenReader::i_btm |
|
private |
文本区域输入迭代器。
文本区域的起点和终点在文本缓冲区的迭代器,构成一个左闭右开区间。
在文件 DSReader.h 第 96 行定义.
参考自 AdjustForFirstNewline(), AdjustForPrevNewline(), Execute(), LoadText(), Locate(), UnloadText() , 以及 UpdateView().
Drawing::Padding YSLib::DS::UI::DualScreenReader::Margin |
|
private |
读入文件结束后的空行数。
最近一次 UpdateView 操作时确认文件结束后的空行数。
在文件 DSReader.h 第 105 行定义.
参考自 Execute() , 以及 UpdateView().
|
private |
文本资源。
在文件 DSReader.h 第 86 行定义.
参考自 AdjustForFirstNewline(), AdjustForPrevNewline(), AdjustScrollOffset(), Execute(), LoadText(), Locate(), PutLastLine(), ScrollByPixel(), UnloadText() , 以及 UpdateView().
|
private |
YSLib::DS::UI::DualScreenReader::TextBottom |
在文件 DSReader.h 第 155 行定义.
std::function<void()> YSLib::DS::UI::DualScreenReader::ViewChanged |