本文整理汇总了C++中WContainerWidget::setLayout方法的典型用法代码示例。如果您正苦于以下问题:C++ WContainerWidget::setLayout方法的具体用法?C++ WContainerWidget::setLayout怎么用?C++ WContainerWidget::setLayout使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WContainerWidget
的用法示例。
在下文中一共展示了WContainerWidget::setLayout方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WContainerWidget
WWidget *StyleLayout::wGridLayout()
{
WContainerWidget *result = new WContainerWidget();
topic("WGridLayout", result);
addText(tr("layout-WGridLayout"), result);
WContainerWidget *container;
container = new WContainerWidget(result);
container->resize(WLength::Auto, 400);
container->setStyleClass("yellow-box");
WGridLayout *grid = new WGridLayout();
container->setLayout(grid);
for (int row = 0; row < 3; ++row) {
for (int column = 0; column < 4; ++column) {
WText *t = addText(tr("grid-item").arg(row).arg(column));
if (row == 1 || column == 1 || column == 2)
t->setStyleClass("blue-box");
else
t->setStyleClass("green-box");
grid->addWidget(t, row, column);
}
}
grid->setRowStretch(1, 1);
grid->setColumnStretch(1, 1);
grid->setColumnStretch(2, 1);
return result;
}
示例2: createUI
/*! \brief Setup the user interface.
*/
void createUI() {
WContainerWidget *w = root();
w->setStyleClass("maindiv");
/*
* The main layout is a 3x2 grid layout.
*/
WGridLayout *layout = new WGridLayout();
layout->addWidget(createTitle("Folders"), 0, 0);
layout->addWidget(createTitle("Files"), 0, 1);
layout->addWidget(folderView(), 1, 0);
layout->setColumnResizable(0);
// select the first folder
folderView_->select(folderModel_->index(0, 0, folderModel_->index(0, 0)));
WVBoxLayout *vbox = new WVBoxLayout();
vbox->addWidget(fileView(), 1);
vbox->addWidget(pieChart(), 1);
vbox->setResizable(0);
layout->addLayout(vbox, 1, 1);
layout->addWidget(aboutDisplay(), 2, 0, 1, 2);
/*
* Let row 1 and column 1 take the excess space.
*/
layout->setRowStretch(1, 1);
layout->setColumnStretch(1, 1);
w->setLayout(layout);
}
示例3: WText
WWidget *EventsDemo::wMouseEvent()
{
WContainerWidget *result = new WContainerWidget();
topic("WMouseEvent", result);
addText(tr("events-WMouseEvent"), result);
WContainerWidget *c = new WContainerWidget(result);
WHBoxLayout *hlayout = new WHBoxLayout;
c->setLayout(hlayout);
WContainerWidget *l = new WContainerWidget;
WContainerWidget *r = new WContainerWidget;
new WText("clicked<br/>doubleClicked<br/>mouseWentOut<br/>mouseWentOver",
l);
new WText("mouseWentDown<br/>mouseWentUp<br/>mouseMoved<br/>mouseWheel", r);
hlayout->addWidget(l);
hlayout->addWidget(r);
c->resize(600, 300);
l->decorationStyle().setBackgroundColor(Wt::gray);
r->decorationStyle().setBackgroundColor(Wt::gray);
// prevent that firefox interprets drag as drag&drop action
l->setStyleClass("unselectable");
r->setStyleClass("unselectable");
l->clicked().connect(this, &EventsDemo::showClicked);
l->doubleClicked().connect(this, &EventsDemo::showDoubleClicked);
l->mouseWentOut().connect(this, &EventsDemo::showMouseWentOut);
l->mouseWentOver().connect(this, &EventsDemo::showMouseWentOver);
r->mouseMoved().connect(this, &EventsDemo::showMouseMoved);
r->mouseWentUp().connect(this, &EventsDemo::showMouseWentUp);
r->mouseWentDown().connect(this, &EventsDemo::showMouseWentDown);
r->mouseWheel().connect(this, &EventsDemo::showMouseWheel);
r->mouseWheel().preventDefaultAction(true);
l->setAttributeValue
("oncontextmenu",
"event.cancelBubble = true; event.returnValue = false; return false;");
r->setAttributeValue
("oncontextmenu",
"event.cancelBubble = true; event.returnValue = false; return false;");
new WBreak(result);
new WText("Last event: ", result);
mouseEventType_ = new WText(result);
new WBreak(result);
mouseEventDescription_ = new WText(result);
return result;
}
示例4: mMRIBrowser
///
// Constructor
//
ResultsPage::ResultsPage(const MRIBrowser *mriBrowser, WContainerWidget *parent) :
mMRIBrowser(mriBrowser),
WContainerWidget(parent)
{
setStyleClass("tabdiv");
mResultsTable = new ResultsTable();
WContainerWidget *browserContainer = new WContainerWidget();
WContainerWidget *resultsContainer = new WContainerWidget;
WText *showText = new WText("Show Results by User:");
showText->setWordWrap(false);
mUserComboBox = new WComboBox();
WGridLayout *userBox = new WGridLayout();
userBox->addWidget(showText, 0, 0, AlignRight | AlignMiddle);
userBox->addWidget(mUserComboBox, 0, 1, AlignLeft | AlignMiddle );
mUserComboBox->addItem("<user>");
mUserComboBox->addItem("All");
mSearchLineEdit = new WLineEdit("");
mSearchLineEdit->setMinimumSize(150, WLength::Auto);
mSearchLineEdit->resize(150, WLength::Auto);
mSearchPushButton = new WPushButton("GO");
WPushButton *clearButton = new WPushButton("Clear");
WPushButton *refreshButton = new WPushButton("Refresh");
userBox->addWidget(new WText("Search:"), 0, 2, AlignRight | AlignMiddle);
userBox->addWidget(mSearchLineEdit, 0, 3, AlignLeft| AlignMiddle);
userBox->addWidget(mSearchPushButton, 0, 4, AlignLeft | AlignMiddle);
userBox->addWidget(clearButton, 0, 5, AlignLeft | AlignMiddle);
userBox->addWidget(refreshButton, 0, 6, AlignRight | AlignMiddle);
userBox->setColumnStretch(2, 1);
userBox->setColumnStretch(6, 1);
userBox->setColumnStretch(7, 3);
mPipelineArgTable = new PipelineArgTable();
mPipelineArgTable->resize(WLength::Auto, 150);
mPipelineArgTable->setMinimumSize(WLength::Auto,
WLength(150, WLength::Pixel));
mPipelineArgTable->setMaximumSize(WLength::Auto,
WLength(150, WLength::Pixel));
mJobStatus = new JobStatus();
WHBoxLayout *bottomLayout = new WHBoxLayout();
bottomLayout->addWidget(mPipelineArgTable);
bottomLayout->addWidget(mJobStatus);
WGridLayout *browserLayout = new WGridLayout();
browserLayout->addLayout(userBox, 0, 0);
browserLayout->addWidget(mResultsTable, 1, 0);
browserLayout->addLayout(bottomLayout, 2, 0);
browserLayout->setRowStretch(0, -1);
browserLayout->setRowStretch(1, 1);
browserLayout->setRowStretch(2, -1);
browserContainer->setLayout(browserLayout);
mBackButton = new WPushButton("<- Back");
WTabWidget *tabWidget = new WTabWidget();
tabWidget->setStyleClass("toptabdiv");
mMonitorLogTab = new MonitorLogTab(mriBrowser);
mMonitorResultsTab = new MonitorResultsTab(mriBrowser);
tabWidget->addTab(mMonitorResultsTab, "Results");
tabWidget->addTab(mMonitorLogTab, "Logs");
WGridLayout *resultsLayout = new WGridLayout();
resultsLayout->addWidget(mBackButton, 0, 0, AlignLeft | AlignMiddle);
resultsLayout->addWidget(tabWidget, 1, 0);
resultsLayout->setRowStretch(0, -1);
resultsLayout->setRowStretch(1, 1);
resultsContainer->setLayout(resultsLayout);
mStackedWidget = new WStackedWidget();
mStackedWidget->addWidget(browserContainer);
mStackedWidget->addWidget(resultsContainer);
WGridLayout *layout = new WGridLayout();
layout->addWidget(mStackedWidget, 0, 0);
layout->setRowStretch(0, -1);
setLayout(layout);
mUserComboBox->activated().connect(SLOT(this, ResultsPage::userChanged));
mSearchPushButton->clicked().connect(SLOT(this, ResultsPage::searchPushed));
clearButton->clicked().connect(SLOT(this, ResultsPage::clearPushed));
mResultsTable->resultSelected().connect(SLOT(this, ResultsPage::resultSelected));
mResultsTable->resultClicked().connect(SLOT(this, ResultsPage::resultClicked));
mBackButton->clicked().connect(SLOT(this, ResultsPage::backPushed));
refreshButton->clicked().connect(SLOT(this, ResultsPage::refreshClicked));
// All items in the tabbed widget need to be resized to 100% to
// fill the contents. This trick came from the Wt WTabWidget
//.........这里部分代码省略.........
示例5: GitViewApplication
/*! \brief Constructor.
*/
GitViewApplication(const WEnvironment& env)
: WApplication(env)
{
useStyleSheet("gitview.css");
setTitle("Git model example");
const char *gitRepo = getenv("GITVIEW_REPOSITORY_PATH");
WGridLayout *grid = new WGridLayout();
grid->addWidget(new WText("Git repository path:"), 0, 0);
grid->addWidget(repositoryEdit_ = new WLineEdit(gitRepo ? gitRepo : "")
, 0, 1, AlignLeft);
grid->addWidget(repositoryError_ = new WText(), 0, 2);
grid->addWidget(new WText("Revision:"), 1, 0);
grid->addWidget(revisionEdit_ = new WLineEdit("master"), 1, 1, AlignLeft);
grid->addWidget(revisionError_ = new WText(), 1, 2);
repositoryEdit_->setTextSize(30);
revisionEdit_->setTextSize(20);
repositoryError_->setStyleClass("error-msg");
revisionError_->setStyleClass("error-msg");
repositoryEdit_->enterPressed()
.connect(this, &GitViewApplication::loadGitModel);
revisionEdit_->enterPressed()
.connect(this, &GitViewApplication::loadGitModel);
WPushButton *b = new WPushButton("Load");
b->clicked().connect(this, &GitViewApplication::loadGitModel);
grid->addWidget(b, 2, 0, AlignLeft);
gitView_ = new WTreeView();
gitView_->resize(300, WLength::Auto);
gitView_->setSortingEnabled(false);
gitView_->setModel(gitModel_ = new GitModel(this));
gitView_->setSelectionMode(SingleSelection);
gitView_->selectionChanged().connect(this, &GitViewApplication::showFile);
sourceView_ = new SourceView(DisplayRole,
GitModel::ContentsRole,
GitModel::FilePathRole);
sourceView_->setStyleClass("source-view");
if (environment().javaScript()) {
/*
* We have JavaScript: We can use layout managers so everything will
* always fit nicely in the window.
*/
WVBoxLayout *topLayout = new WVBoxLayout();
topLayout->addLayout(grid, 0, AlignTop | AlignLeft);
WHBoxLayout *gitLayout = new WHBoxLayout();
gitLayout->setLayoutHint("table-layout", "fixed");
gitLayout->addWidget(gitView_, 0);
gitLayout->addWidget(sourceView_, 1);
topLayout->addLayout(gitLayout, 1);
root()->setLayout(topLayout);
root()->setStyleClass("maindiv");
} else {
/*
* No JavaScript: let's make the best of the situation using regular
* CSS-based layout
*/
root()->setStyleClass("maindiv");
WContainerWidget *top = new WContainerWidget();
top->setLayout(grid, AlignTop | AlignLeft);
root()->addWidget(top);
root()->addWidget(gitView_);
gitView_->setFloatSide(Left);
gitView_->setMargin(6);
root()->addWidget(sourceView_);
sourceView_->setMargin(6);
}
}
示例6: createUI
///
// Create the user interface widgets
//
void PipelineApp::createUI()
{
WApplication::instance()->log("debug") << "createUI: START";
WContainerWidget *w = root();
w->setStyleClass("maindiv");
// Create the top tab
WTabWidget *topTab = new WTabWidget();
topTab->setStyleClass("toptabdiv");
mSubjectPage = new SubjectPage();
//mResultsPage = new ResultsPage(mSubjectPage->getMRIBrowser());
//mMonitorPage = new MonitorPage(mSubjectPage->getMRIBrowser());
topTab->addTab(mSubjectPage, "Subjects");
//topTab->addTab(mResultsPage, "Results");
//topTab->addTab(mMonitorPage, "Monitor Cluster");
//topTab->addTab(new WText(w->tr("cluster-load-page"), XHTMLUnsafeText), "Cluster Load");
//topTab->currentChanged().connect(this, &PipelineApp::mainTabChanged);
WGridLayout *layout = new WGridLayout();
layout->addWidget(topTab, 0, 0);
layout->addWidget(new WLabel(w->tr("file-bug")), 2, 0, Wt::AlignCenter);
layout->setRowStretch(0, 1);
mMainSiteWidget = new WContainerWidget();
//mProjectPage = new ProjectPage();
// All items in the tabbed widget need to be resized to 100% to
// fill the contents. This trick came from the Wt WTabWidget
// documentation and took me a good half a day to figure out.
mSubjectPage->resize(WLength(100.0, WLength::Percentage),
WLength(100.0, WLength::Percentage));
//mResultsPage->resize(WLength(100.0, WLength::Percentage),
// WLength(100.0, WLength::Percentage));
//mMonitorPage->resize(WLength(100.0, WLength::Percentage),
// WLength(100.0, WLength::Percentage));
mMainSiteWidget->setLayout(layout);
//mLoginPage = new LoginPage();
//mLoginPage->userLoggedIn().connect(this, &PipelineApp::userLoggedIn);
//mProjectPage->projectChosen().connect(this, &PipelineApp::projectChosen);
//mProjectPage->logoutUser().connect(this, &PipelineApp::logout);
//changeProjectButton->clicked().connect(this, &PipelineApp::goHome);
//logoutButton->clicked().connect(this, &PipelineApp::logout);
//mStackedWidget = new WStackedWidget();
//mStackedWidget->addWidget(mLoginPage);
//mStackedWidget->addWidget(mainSite);
//mStackedWidget->setCurrentIndex(0);
WVBoxLayout *primaryLayout = new WVBoxLayout();
primaryLayout->addWidget(mMainSiteWidget);
w->setLayout(primaryLayout);
requestTooLarge().connect(this, &PipelineApp::largeRequest);
setTitle(w->tr("page-title"));
WApplication::instance()->log("debug") << "createUI: FINISH";
// See if the user is already logged in via a cookie
// if (mLoginPage->getLoggedIn())
// {
// userLoggedIn(mLoginPage->getCurrentUserName(), mLoginPage->getCurrentEmail());
// }
}
示例7: WContainerWidget
///
// Constructor
//
LoginPage::LoginPage(WContainerWidget *parent) :
WContainerWidget(parent),
mLoggedIn(false),
mLogoutRequested(false)
{
setStyleClass("maindiv");
WLabel* loginText = new WLabel("Enter username and password:");
mUserNameLineEdit = new WLineEdit("");
WText *userNameText = new WText("User Name:");
mPasswordLineEdit = new WLineEdit("");
mPasswordLineEdit->setEchoMode(WLineEdit::Password);
WText *passwordText = new WText("Password:");
WPushButton *loginButton = new WPushButton("Login");
WGridLayout *loginLayout = new WGridLayout();
loginLayout->addWidget(userNameText, 0, 0, AlignRight);
loginLayout->addWidget(mUserNameLineEdit, 0, 1, AlignLeft);
loginLayout->addWidget(passwordText, 1, 0, AlignRight);
loginLayout->addWidget(mPasswordLineEdit, 1, 1, AlignLeft);
WGridLayout *textLayout = new WGridLayout();
textLayout->addWidget(loginText, 0, 0, AlignCenter);
WGridLayout *buttonLayout = new WGridLayout();
buttonLayout->addWidget(loginButton, 0, 0, AlignCenter | AlignMiddle);
WImage *chbLogo = new WImage(tr("logo-image").toUTF8());
WGridLayout *chbLogoLayout = new WGridLayout();
chbLogoLayout->addWidget(chbLogo, 0, 0, AlignCenter);
WLabel *titleLabel = new WLabel(tr("page-top-text"));
titleLabel->setStyleClass("logintitlediv");
WGridLayout *titleLayout = new WGridLayout();
titleLayout->addWidget(titleLabel, 0, 0, AlignCenter);
WContainerWidget *loginContainer = new WContainerWidget();
loginContainer->setStyleClass("logindiv");
mFailureLabel = new WLabel("Invalid username and/or password. Try again.");
mFailureLabel->setStyleClass("redtext");
WVBoxLayout *layout = new WVBoxLayout();
layout->addLayout(chbLogoLayout, AlignCenter);
layout->addLayout(titleLayout, AlignCenter);
layout->addLayout(textLayout, AlignCenter);
layout->addLayout(loginLayout);
layout->addWidget(mFailureLabel);
layout->addLayout(buttonLayout, AlignCenter | AlignMiddle);
mFailureLabel->hide();
loginContainer->setLayout(layout, AlignTop);
WVBoxLayout *pageLayout = new WVBoxLayout();
pageLayout->addWidget(loginContainer);
pageLayout->addWidget(new WText(tr("login-page-text")));
setLayout(pageLayout, AlignMiddle | AlignCenter);
loginButton->clicked().connect(SLOT(this, LoginPage::login));
mPasswordLineEdit->enterPressed().connect(SLOT(this, LoginPage::login));
resetAll();
}
示例8: WContainerWidget
DetailManipulation::DetailManipulation(bool enhance, WContainerWidget *parent)
: WContainerWidget(parent), onlySmooth(!enhance)
{
resize(WLength::Auto, WLength::Auto);
// Image bar
prepareInputImages();
WContainerWidget *imageBar = new WContainerWidget;
WVBoxLayout *imageBarLayout = new WVBoxLayout();
for (size_t i = 0; i < inputImages.size(); ++i) {
WImage *img = inputImages[i]->getOriginalImage();
img->setStyleClass("image_button");
img->resize(160, 120);
img->setAttributeValue("onMouseOver", "this.width=192; this.height=144;");
img->setAttributeValue("onMouseOut", "this.width=160; this.height=120;");
img->clicked().connect(
boost::bind(&DetailManipulation::selectImage,
this,
i
)
);
imageBarLayout->addWidget(img);
}
imageBar->resize(200, WLength::Auto);
imageBar->setLayout(imageBarLayout);
selectedImageId = 0;
// Main component
imageTab = new WTabWidget();
imageTab->addTab(inputImages[selectedImageId]->getOriginalImage(), "Original");
if (onlySmooth) {
imageTab->addTab(new WImage(smoothedResult[selectedImageId].second), smoothedResult[selectedImageId].first);
}
else {
imageTab->addTab(new WImage(enhancedResult[selectedImageId].second), enhancedResult[selectedImageId].first);
}
imageTab->resize(600, WLength::Auto);
WGridLayout *controllerLayout = new WGridLayout();
WSlider *rSlider = new WSlider(Wt::Vertical);
rSlider->setRange(SLIDER_MINIMUM, SLIDER_MAXIMUM);
rSlider->setTickPosition(Wt::WSlider::TicksBothSides);
WDoubleSpinBox *rSpinBox = new WDoubleSpinBox();
rSpinBox->setMinimum(R_MINIMUM);
rSpinBox->setMaximum(R_MAXIMUM);
rSlider->sliderMoved().connect(
boost::bind(&DetailManipulation::changeDoubleSpinBoxValue,
this,
rSpinBox,
true,
_1)
);
rSpinBox->valueChanged().connect(
boost::bind(&DetailManipulation::changeSliderValue,
this,
rSlider,
1.f/(R_MAXIMUM-R_MINIMUM),
_1)
);
controllerLayout->addWidget(rSlider, 2, 0, 6, 1);
controllerLayout->addWidget(rSpinBox, 9, 0);
controllerLayout->addWidget(new WText("radius"), 10, 0);
WSlider *epsSlider = new WSlider(Wt::Vertical);
epsSlider->setMinimum(SLIDER_MINIMUM);
epsSlider->setMaximum(SLIDER_MAXIMUM);
epsSlider->setRange(SLIDER_MINIMUM, SLIDER_MAXIMUM);
epsSlider->setTickPosition(WSlider::TicksBothSides);
WDoubleSpinBox *epsSpinBox = new WDoubleSpinBox();
epsSpinBox->setMinimum(EPS_MINIMUM);
epsSpinBox->setMaximum(EPS_MAXIMUM);
epsSlider->sliderMoved().connect(
boost::bind(&DetailManipulation::changeDoubleSpinBoxValue,
this,
epsSpinBox,
false,
_1)
);
epsSpinBox->valueChanged().connect(
boost::bind(&DetailManipulation::changeSliderValue,
this,
epsSlider,
1.f/(EPS_MAXIMUM-EPS_MINIMUM),
_1)
);
controllerLayout->addWidget(epsSlider, 2, 1, 6, 1);
controllerLayout->addWidget(epsSpinBox, 9, 1);
controllerLayout->addWidget(new WText("epsilon"), 10, 1);
WPushButton *apply = new WPushButton("Apply");
apply->clicked().connect(
boost::bind(&DetailManipulation::applyEnhancement,
this,
rSpinBox,
epsSpinBox
)
);
//.........这里部分代码省略.........
示例9: WContainerWidget
//.........这里部分代码省略.........
to_bottom->clicked().connect(this, &Example::bottom_shift);
//
WPushButton* zoom_in = new Wt::WPushButton("zoom In");
WPushButton* zoom_out = new Wt::WPushButton("zoom Out");
zoom_in->clicked().connect(mv_, &MapViewer::zoom_in);
zoom_out->clicked().connect(mv_, &MapViewer::zoom_out);
//
WContainerWidget* cw_of_zoom_to = new Wt::WContainerWidget();
WLabel* label_of_zoom_to = new Wt::WLabel("set zoom:", cw_of_zoom_to);
edit_of_zoom_to_ = new WLineEdit("9", cw_of_zoom_to);
edit_of_zoom_to_->resize(30, WLength());
label_of_zoom_to->setBuddy(edit_of_zoom_to_);
edit_of_zoom_to_->setValidator(new WIntValidator(1, 17));
label_of_zoom_to->setBuddy(edit_of_zoom_to_);
WHBoxLayout* menu_hl_of_zoom_to = new WHBoxLayout();
menu_hl_of_zoom_to->addWidget(cw_of_zoom_to, 0, AlignJustify);
WContainerWidget* zoom_to_b_cw = new WContainerWidget();
WPushButton* button_of_zoom_to = new Wt::WPushButton("OK", zoom_to_b_cw);
button_of_zoom_to->clicked().connect(this, &Example::set_zoom_to);
menu_hl_of_zoom_to->addWidget(zoom_to_b_cw, AlignJustify);
//
WContainerWidget* cw_of_pan_to_lng = new Wt::WContainerWidget();
WContainerWidget* cw_of_pan_to_lat = new Wt::WContainerWidget();
WLabel* label_of_pan_to_lng = new Wt::WLabel("set lng:", cw_of_pan_to_lng);
WLabel* label_of_pan_to_lat = new Wt::WLabel("set lat:", cw_of_pan_to_lat);
edit_of_pan_to_lng_ = new WLineEdit("20.4", cw_of_pan_to_lng);
edit_of_pan_to_lng_->resize(50, WLength());
label_of_pan_to_lng->setBuddy(edit_of_pan_to_lng_);
edit_of_pan_to_lng_->setValidator(new WDoubleValidator(-180.0, 180.0));
label_of_pan_to_lng->setBuddy(edit_of_pan_to_lng_);
edit_of_pan_to_lat_ = new WLineEdit("54.7167", cw_of_pan_to_lat);
edit_of_pan_to_lat_->resize(50, WLength());
label_of_pan_to_lat->setBuddy(edit_of_pan_to_lat_);
edit_of_pan_to_lat_->setValidator(new WDoubleValidator(-90.0, 90.0));
label_of_pan_to_lat->setBuddy(edit_of_pan_to_lat_);
WHBoxLayout* menu_hl_of_pan_to = new WHBoxLayout();
menu_hl_of_pan_to->addWidget(cw_of_pan_to_lng, 0, AlignTop);
menu_hl_of_pan_to->addWidget(cw_of_pan_to_lat, 0, AlignTop);
WContainerWidget* pan_to_b_cw = new WContainerWidget();
WPushButton* button_of_pan_to = new Wt::WPushButton("OK", pan_to_b_cw);
button_of_pan_to->clicked().connect(this, &Example::set_pan_to);
menu_hl_of_pan_to->addWidget(pan_to_b_cw, AlignTop);
//
click_pos_ = new WText();
click_search_ = new WText();
time_zone_ = new WText();
//
WVBoxLayout* vl_menu = new WVBoxLayout();
WHBoxLayout* hl_menu_zooms = new WHBoxLayout();
hl_menu_zooms->addWidget(zoom_in, 0, AlignTop);
hl_menu_zooms->addWidget(zoom_out, 0, AlignTop);
WGridLayout* shift_hl_menu = new WGridLayout();
shift_hl_menu->addWidget(to_top, 0, 1, AlignTop);
shift_hl_menu->addWidget(to_left, 1, 0, AlignTop);
shift_hl_menu->addWidget(to_right, 1, 2, AlignTop);
shift_hl_menu->addWidget(to_bottom, 2, 1, AlignTop);
//
WVBoxLayout* s_vl = new WVBoxLayout();
WHBoxLayout* s_hl = new WHBoxLayout();
WContainerWidget* s_cw = new WContainerWidget();
s_cw->resize(220, 300);
s_cw->setHidden(true);
wApp->styleSheet().addRule(".mvSearchNode", "background-color:#e1d0d0;");
wApp->styleSheet().addRule(".mvSearchText", "font-size:12px;");
WContainerWidget* s_e_cw = new WContainerWidget();
WLineEdit* s_edit = new WLineEdit("search", s_e_cw);
s_edit->enterPressed().connect(boost::bind(&Example::search_pr, this,
s_edit));
WContainerWidget* s_b_cw = new WContainerWidget();
s_b_cw->setContentAlignment(AlignLeft);
WPushButton* s_button = new WPushButton("OK", s_b_cw);
s_button->clicked().connect(boost::bind(&Example::search_pr, this,
s_edit));
s_hl->addWidget(s_e_cw, 0, AlignRight);
s_hl->addWidget(s_b_cw, 0, AlignLeft);
s_vl->addLayout(s_hl, 0, AlignTop);
s_vl->addWidget(s_cw, 0, AlignTop);
//
mv_->found().connect(boost::bind(&Example::search_presenting,
this, s_cw, _1));
//
vl_menu->addLayout(shift_hl_menu, 0, AlignTop);
vl_menu->addLayout(hl_menu_zooms, 0, AlignTop);
vl_menu->addLayout(menu_hl_of_zoom_to, 0, AlignJustify);
vl_menu->addLayout(menu_hl_of_pan_to, 0, AlignTop);
vl_menu->addWidget(click_pos_, 0, AlignTop);
vl_menu->addWidget(click_search_, 0, AlignTop);
vl_menu->addWidget(time_zone_, 0, AlignTop);
hl->addLayout(vl_menu, 0, AlignTop);
hl->addLayout(s_vl, 0, AlignTop);
cw->setLayout(hl, AlignTop);
mv_->set_search_panel();
mv_->chosen().connect(this, &Example::get_search);
MapViewer::GeoNodes marker_nodes;
marker_nodes.push_back(std::make_pair(Coordinate(55.0151, 20.6122),
""));
marker_nodes.push_back(std::make_pair(Coordinate(54.8, 20.25),
""));
mv_->add_markers(marker_nodes);
}