本文整理汇总了C++中StaticArray::shrink方法的典型用法代码示例。如果您正苦于以下问题:C++ StaticArray::shrink方法的具体用法?C++ StaticArray::shrink怎么用?C++ StaticArray::shrink使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StaticArray
的用法示例。
在下文中一共展示了StaticArray::shrink方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadDialog
void
dlgWaypointDetailsShowModal(SingleWindow &parent, const Waypoint &_waypoint,
bool allow_navigation)
{
waypoint = &_waypoint;
wf = LoadDialog(CallBackTable, parent,
Layout::landscape ? _T("IDR_XML_WAYPOINTDETAILS_L") :
_T("IDR_XML_WAYPOINTDETAILS"));
assert(wf != NULL);
LastUsedWaypoints::Add(_waypoint);
UpdateCaption(waypoint->name.c_str(), waypoint->file_num);
wf->SetKeyDownNotify(FormKeyDown);
wInfo = (DockWindow *)wf->FindByName(_T("info"));
assert(wInfo != NULL);
wInfo->SetWidget(new WaypointInfoWidget(UIGlobals::GetDialogLook(),
_waypoint));
wCommand = (DockWindow *)wf->FindByName(_T("commands"));
assert(wCommand != NULL);
wCommand->SetWidget(new WaypointCommandsWidget(UIGlobals::GetDialogLook(),
wf, _waypoint,
protected_task_manager));
wCommand->Hide();
wDetails = wf->FindByName(_T("frmDetails"));
assert(wDetails != NULL);
ListControl *wFilesList = (ListControl *)wf->FindByName(_T("Files"));
assert(wFilesList != NULL);
EditWindow *wDetailsText = (EditWindow *)wf->FindByName(_T("Details"));
assert(wDetailsText != NULL);
wDetailsText->SetText(waypoint->details.c_str());
#ifdef ANDROID
int num_files = std::distance(waypoint->files_external.begin(),
waypoint->files_external.end());
if (num_files > 0) {
wFilesList->SetPaintItemCallback(OnFileListItemPaint);
wFilesList->SetCursorCallback(OnFileListEnter);
wFilesList->SetActivateCallback(OnFileListEnter);
unsigned list_height = wFilesList->GetItemHeight() * std::min(num_files, 5);
wFilesList->Resize(wFilesList->GetWidth(), list_height);
wFilesList->SetLength(num_files);
PixelRect rc = wDetailsText->GetPosition();
rc.top += list_height;
wDetailsText->Move(rc);
} else
#endif
wFilesList->Hide();
wImage = (PaintWindow *)wf->FindByName(_T("frmImage"));
assert(wImage != NULL);
wMagnify = (WndButton *)wf->FindByName(_T("cmdMagnify"));
assert(wMagnify != NULL);
wShrink = (WndButton *)wf->FindByName(_T("cmdShrink"));
assert(wShrink != NULL);
if (!allow_navigation) {
WndButton* butnav = (WndButton *)wf->FindByName(_T("cmdPrev"));
assert(butnav != NULL);
butnav->Hide();
butnav = (WndButton *)wf->FindByName(_T("cmdNext"));
assert(butnav != NULL);
butnav->Hide();
butnav = (WndButton *)wf->FindByName(_T("cmdGoto"));
assert(butnav != NULL);
butnav->Hide();
}
for (auto it = waypoint->files_embed.begin(),
it_end = waypoint->files_embed.end();
it != it_end && !images.full(); it++) {
TCHAR path[MAX_PATH];
LocalPath(path, it->c_str());
if (!images.append().LoadFile(path))
images.shrink(images.size() - 1);
}
page = 0;
NextPage(0); // JMW just to turn proper pages on/off
wf->ShowModal();
delete wf;
for (auto image = images.begin(); image < images.end(); image++)
image->Reset();
images.clear();
//.........这里部分代码省略.........
示例2: layout
void
WaypointDetailsWidget::Prepare(ContainerWindow &parent, const PixelRect &rc)
{
for (const auto &i : waypoint.files_embed) {
if (images.full())
break;
try {
if (!images.append().LoadFile(LocalPath(i.c_str())))
images.shrink(images.size() - 1);
} catch (const std::exception &e) {
LogFormat("Failed to load %s: %s",
(const char *)NarrowPathName(Path(i.c_str())),
e.what());
images.shrink(images.size() - 1);
}
}
const Layout layout(rc, waypoint);
WindowStyle dock_style;
dock_style.Hide();
dock_style.ControlParent();
WindowStyle button_style;
button_style.Hide();
button_style.TabStop();
if (allow_navigation)
goto_button.Create(parent, look.button, _("GoTo"), layout.goto_button,
button_style, *this, GOTO);
if (!images.empty()) {
magnify_button.Create(parent, layout.magnify_button, button_style,
new SymbolButtonRenderer(look.button, _T("+")),
*this, MAGNIFY);
shrink_button.Create(parent, layout.shrink_button, button_style,
new SymbolButtonRenderer(look.button, _T("-")),
*this, SHRINK);
}
if (allow_navigation) {
previous_button.Create(parent, layout.previous_button, button_style,
new SymbolButtonRenderer(look.button, _T("<")),
*this, PREVIOUS);
next_button.Create(parent, layout.next_button, button_style,
new SymbolButtonRenderer(look.button, _T(">")),
*this, NEXT);
}
close_button.Create(parent, look.button, _("Close"), layout.close_button,
button_style, dialog, mrOK);
info_dock.Create(parent, layout.main, dock_style);
info_dock.SetWidget(&info_widget);
details_panel.Create(parent, look, layout.main, dock_style);
details_text.Create(details_panel, layout.details_text);
details_text.SetFont(look.text_font);
details_text.SetText(waypoint.details.c_str());
#ifdef HAVE_RUN_FILE
const unsigned num_files = std::distance(waypoint.files_external.begin(),
waypoint.files_external.end());
if (num_files > 0) {
file_list.Create(details_panel, layout.file_list,
WindowStyle(), layout.file_list_item_height);
file_list.SetItemRenderer(&file_list_handler);
file_list.SetCursorHandler(&file_list_handler);
file_list.SetLength(num_files);
}
#endif
commands_dock.Create(parent, layout.main, dock_style);
commands_dock.SetWidget(&commands_widget);
if (!images.empty())
image_window.Create(parent, layout.main, dock_style,
[this](Canvas &canvas, const PixelRect &rc){
OnImagePaint(canvas, rc);
});
last_page = 2 + images.size();
}
示例3: LoadDialog
void
dlgWaypointDetailsShowModal(const Waypoint &_waypoint,
bool allow_navigation)
{
waypoint = &_waypoint;
form = LoadDialog(CallBackTable, UIGlobals::GetMainWindow(),
Layout::landscape ? _T("IDR_XML_WAYPOINTDETAILS_L") :
_T("IDR_XML_WAYPOINTDETAILS"));
assert(form != nullptr);
LastUsedWaypoints::Add(_waypoint);
UpdateCaption();
form->SetKeyDownFunction(FormKeyDown);
info_widget = (DockWindow *)form->FindByName(_T("info"));
assert(info_widget != nullptr);
info_widget->SetWidget(new WaypointInfoWidget(UIGlobals::GetDialogLook(),
_waypoint));
commands_widget = (DockWindow *)form->FindByName(_T("commands"));
assert(commands_widget != nullptr);
commands_widget->SetWidget(new WaypointCommandsWidget(UIGlobals::GetDialogLook(),
form, _waypoint,
protected_task_manager));
commands_widget->Hide();
details_panel = form->FindByName(_T("frmDetails"));
assert(details_panel != nullptr);
ListControl *wFilesList = (ListControl *)form->FindByName(_T("Files"));
assert(wFilesList != nullptr);
LargeTextWindow *wDetailsText = (LargeTextWindow *)
form->FindByName(_T("Details"));
assert(wDetailsText != nullptr);
wDetailsText->SetText(waypoint->details.c_str());
#ifdef ANDROID
WaypointExternalFileListHandler handler;
int num_files = std::distance(waypoint->files_external.begin(),
waypoint->files_external.end());
if (num_files > 0) {
wFilesList->SetItemRenderer(&handler);
wFilesList->SetCursorHandler(&handler);
unsigned list_height = wFilesList->GetItemHeight() * std::min(num_files, 5);
wFilesList->Resize(wFilesList->GetWidth(), list_height);
wFilesList->SetLength(num_files);
PixelRect rc = wDetailsText->GetPosition();
rc.top += list_height;
wDetailsText->Move(rc);
} else
#endif
wFilesList->Hide();
image_window = (PaintWindow *)form->FindByName(_T("frmImage"));
assert(image_window != nullptr);
magnify_button = (WndButton *)form->FindByName(_T("cmdMagnify"));
assert(magnify_button != nullptr);
shrink_button = (WndButton *)form->FindByName(_T("cmdShrink"));
assert(shrink_button != nullptr);
if (!allow_navigation) {
for (const TCHAR *button_name :
{ _T("cmdPrev"), _T("cmdNext"), _T("cmdGoto") }) {
Window *button = form->FindByName(button_name);
assert(button != nullptr);
button->Hide();
}
}
for (auto it = waypoint->files_embed.begin(),
it_end = waypoint->files_embed.end();
it != it_end && !images.full(); it++) {
TCHAR path[MAX_PATH];
LocalPath(path, it->c_str());
if (!images.append().LoadFile(path))
images.shrink(images.size() - 1);
}
last_page = 2 + images.size();
page = 0;
UpdatePage();
form->ShowModal();
delete form;
for (auto image = images.begin(); image < images.end(); image++)
image->Reset();
images.clear();
}