42 auto line(shl.GetSlice(pos, 48U));
46 const bool b(line[0] ==
'\n');
47 const auto i(line.find(
"\r\n", b));
52 line.erase(line.begin());
54 return to_string(pos) +
" " + std::move(line);
62 vec.reserve(lst.size());
63 for(
const auto pos : lst)
64 vec.push_back(ConvertToUIString(pos, shl));
69 ConvertToBookmarkList(
const vector<String>& lst)
73 bookmarks.reserve(lst.size());
74 for(
const auto& str : lst)
75 bookmarks.push_back(stoi(str.GetMBCS()));
83 lbPosition({8, 32, 240, 128}),
84 btnAdd(Rect(GetWidth() - 80, 4, 16, 16), 210),
87 const auto stop_routing_after_direct([](KeyEventArgs&& e){
88 if(e.Strategy == RoutedEventArgs::Bubble)
96 FetchEvent<KeyDown>(lbPosition) += stop_routing_after_direct,
97 FetchEvent<KeyHeld>(lbPosition) += stop_routing_after_direct,
98 FetchEvent<Click>(
btnOK) += [
this](TouchEventArgs&&){
99 bookmarks = std::move(ConvertToBookmarkList(lbPosition.GetList()));
101 FetchEvent<Click>(
btnAdd) += [
this](TouchEventArgs&&){
102 auto& lst(lbPosition.GetListRef());
103 auto idx(GetSelected());
107 lst.insert(lst.begin() + idx, String(
108 ConvertToUIString(
shell.get().GetReaderPosition(),
shell)));
109 lbPosition.AdjustViewForContent();
110 lbPosition.UpdateView();
112 FetchEvent<Click>(
btnRemove) += [
this](TouchEventArgs&&){
113 auto& lst(lbPosition.GetListRef());
114 const auto idx(GetSelected());
118 lst.erase(lst.begin() + idx);
119 lbPosition.AdjustViewForContent();
120 lbPosition.UpdateView();
126 BookmarkList::difference_type