YSTest
PreAlpha_b400_20130424
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->GetBegin()) 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 |
enum DualScreenReader::Command : u16 |
命令类型。
Null | |
Scroll | |
Up | |
Down | |
Line | |
Screen | |
LineUp | |
LineDown | |
ScreenUp | |
ScreenDown | |
LineUpScroll | |
LineDownScroll | |
ScreenUpScroll | |
ScreenDownScroll |
在文件 DSReader.h 第 58 行定义.
DualScreenReader::DualScreenReader | ( | SDst | w = MainScreenWidth , |
SDst | h_up = MainScreenHeight , |
||
SDst | h_down = MainScreenHeight , |
||
Drawing::FontCache & | fc_ = FetchDefaultFontCache() |
||
) |
|
private |
在文件 DSReader.cpp 第 254 行定义.
|
private |
在文件 DSReader.cpp 第 260 行定义.
void DualScreenReader::AdjustMargins | ( | ) |
调整边距:使用公用边距更新各文本显示区域的边距。
在文件 DSReader.cpp 第 266 行定义.
参考 YSLib::Drawing::AdjustBottomMarginOf(),YSLib::Drawing::Padding::Bottom,YSLib::Drawing::TextState::Margin,YSLib::Drawing::Padding::Top , 以及 yunseq().
FontSize DualScreenReader::AdjustScrollOffset | ( | ) |
调整滚屏像素偏移量:立即继续滚动至下一整文本行。
在文件 DSReader.cpp 第 283 行定义.
参考 YSLib::Drawing::GetTextLineHeightExOf().
参考自 ShlTextReader::StopAutoScroll().
void DualScreenReader::Attach | ( | YSLib::UI::Window & | wnd_up, |
YSLib::UI::Window & | wnd_dn | ||
) |
void DualScreenReader::Detach | ( | ) |
从窗口分离。
在文件 DSReader.cpp 第 298 行定义.
参考 area_dn(),YSLib::UI::FetchContainerPtr() , 以及 YSLib::UI::Styles::Window.
bool DualScreenReader::Execute | ( | Command | cmd | ) |
执行阅读器命令。
在文件 DSReader.cpp 第 309 行定义.
参考 YSLib::Drawing::CarriageReturn(),YSLib::Drawing::PenStyle::Font,YSLib::Drawing::Font::GetHeight(),YSLib::Drawing::GTextRendererBase< _type >::GetTextLineNEx(),h,YSLib::UI::Invalidate(),YSLib::Drawing::TextState::LineGap,ystdex::next_if_eq(),YSLib::Drawing::PutLine(),SetCurrentTextLineNOf(),platform::KeyCodes::Up,UpdateView(),YAssert , 以及 YB_UNLIKELY.
参考自 ShlTextReader::Execute(),ShlTextReader::OnKeyDown() , 以及 ShlTextReader::Scroll().
void DualScreenReader::Invalidate | ( | ) |
void DualScreenReader::LoadText | ( | TextFile & | file | ) |
载入文本。
在文件 DSReader.cpp 第 412 行定义.
参考 YSLib::UI::Invalidate(),YSLib::Drawing::PutString(),UpdateView(),YB_LIKELY , 以及 yunseq().
参考自 ShlTextReader::LoadFile() , 以及 ShlTextReader::Switch().
void DualScreenReader::Locate | ( | size_t | pos | ) |
文本定位。
以指定偏移量定位起始迭代器,若越界则忽略。
在文件 DSReader.cpp 第 386 行定义.
参考 YSLib::UI::Invalidate(),UpdateView() , 以及 YAssert.
参考自 ShlTextReader::Locate() , 以及 ShlTextReader::UpdateReadingList().
|
private |
在文件 DSReader.cpp 第 430 行定义.
参考 YSLib::Drawing::GTextRendererBase< _type >::GetTextLineNEx(),SetCurrentTextLineNOf() , 以及 YAssert.
|
private |
在文件 DSReader.cpp 第 442 行定义.
参考 ystdex::next_if_eq() , 以及 YSLib::Drawing::PutLine().
void DualScreenReader::Reset | ( | ) |
复位输出显示状态。
在文件 DSReader.cpp 第 448 行定义.
参考 YSLib::Drawing::BitmapBufferEx::ClearImage() , 以及 YSLib::Drawing::TextState::ResetPen().
FontSize DualScreenReader::ScrollByPixel | ( | Drawing::FontSize | h | ) |
向下滚屏指定像素行。
像素数。 |
在文件 DSReader.cpp 第 461 行定义.
参考 YSLib::Drawing::CarriageReturn(),YSLib::Drawing::GetTextLineHeightExOf(),h,YSLib::UI::Invalidate(),YSLib::Drawing::TextState::Pen,YSLib::Drawing::GBinaryGroup< _type >::Y,YAssert,YB_LIKELY , 以及 YB_UNLIKELY.
void DualScreenReader::SetFontSize | ( | Drawing::FontSize | = Drawing::Font::DefaultSize | ) |
设置文本区域的字体大小。
在文件 DSReader.cpp 第 246 行定义.
参考 YSLib::Drawing::PenStyle::Font , 以及 YSLib::Drawing::Font::SetSize().
参考自 ShlTextReader::OnKeyDown().
void DualScreenReader::SetLineGap | ( | u8 | g = 0 | ) |
设置行距。
在文件 DSReader.cpp 第 219 行定义.
参考 YSLib::Drawing::TextState::LineGap,UpdateView() , 以及 yunseq().
参考自 ShlTextReader::OnKeyDown().
void DualScreenReader::SetVisible | ( | bool | b = true | ) |
设置文本区域可见性。
在文件 DSReader.cpp 第 229 行定义.
参考 YSLib::UI::Invalidate() , 以及 YSLib::UI::SetVisibleOf().
参考自 ShlTextReader::SettingSession::SettingSession().
void DualScreenReader::Stretch | ( | SDst | h | ) |
伸缩:从最大值起向上调整(减少)下文字区域的高后更新视图。
在文件 DSReader.cpp 第 489 行定义.
参考 YSLib::UI::Widget::GetWidth(),h,MainScreenHeight,YSLib::RestrictInClosedInterval(),YSLib::Drawing::BitmapBufferEx::SetSize(),SetSizeOf(),UpdateView() , 以及 w.
void DualScreenReader::UnloadText | ( | ) |
void DualScreenReader::UpdateView | ( | ) |
更新视图。
根据文本起点迭代器和当前视图状态重新填充缓冲区文本并无效化文本区域。
在文件 DSReader.cpp 第 510 行定义.
参考 YSLib::Drawing::GTextRendererBase< _type >::GetTextLineNEx(),YSLib::UI::Invalidate(),ystdex::next_if_eq(),YSLib::Drawing::PutString(),YB_LIKELY , 以及 YB_UNLIKELY.
参考自 ShlTextReader::OnKeyDown().
|
private |
在文件 DSReader.h 第 123 行定义.
|
private |
|
private |
字体缓存。
在文件 DSReader.h 第 82 行定义.
|
private |
在文件 DSReader.h 第 92 行定义.
DualScreenReader::i_btm |
|
private |
文本区域输入迭代器。
文本区域的起点和终点在文本缓冲区的迭代器,构成一个左闭右开区间。
在文件 DSReader.h 第 91 行定义.
Drawing::Padding DualScreenReader::Margin |
|
private |
|
private |
|
private |
DualScreenReader::TextBottom |
在文件 DSReader.h 第 149 行定义.
std::function<void()> DualScreenReader::ViewChanged |