App::App(const WEnvironment& environment) : BaseApp(environment, my_appCookieName) { // Set up the db string postgresConnectionString; readConfigurationProperty("DB", postgresConnectionString); postgres.connect(postgresConnectionString); dbSession().setConnection(postgres); log("notice") << "Mapping classes"; mapModels(dbSession()); // Load the message bundles messageResourceBundle().use(appRoot() + "messages/App"); messageResourceBundle().use(appRoot() + "messages/MainWindow"); messageResourceBundle().use(appRoot() + "messages/LoginWindow"); messageResourceBundle().use(appRoot() + "messages/ButtonBar"); messageResourceBundle().use(appRoot() + "messages/AdminIndex", false); messageResourceBundle().use(appRoot() + "messages/UserList", false); messageResourceBundle().use(appRoot() + "messages/UserEdit", false); // Set up our signals _userChanged = new UserChangedSignal(this); _statusTextChanged = new MessageSignal(this); internalPathChanged().connect(this, &App::rememberHistory); // Set up the general URL handling _url2ActionMapper = new URL2Action(this); // Set up the UI useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/forms.css"); useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/fonts.css"); useStyleSheet(resourcesUrl() + "/themes/" + cssTheme() + "/controlPanel.css"); setTitle(WString::tr("main-title")); _mainWindow = new MainWindow(root()); _statusTextChanged->connect(_mainWindow, &MainWindow::setStatusText); setBodyClass("yui-skin-sam"); // Fire an internal path changed event off as user may have navigated straight here internalPathChanged().emit(app()->internalPath()); }
WebApp::WebApp(const Wt::WEnvironment & env) : WApplication(env) { if (string(org::esb::config::Config::getProperty("hive.mode")) == "setup") { WApplication::instance()->redirect("/setup"); WApplication::instance()->quit(); } setTitle("Hive Webadmin"); _isAuthenticated = false; Wt::Ext::Container *viewPort = new Wt::Ext::Container(root()); Wt::WBorderLayout *layout = new Wt::WBorderLayout(viewPort); Wt::Ext::Panel *north = new Wt::Ext::Panel(); north->setBorder(false); std::string h = "MediaEncodingCluster V-"; h += MHIVE_VERSION; h += "($Rev$-"__DATE__ "-" __TIME__")"; Wt::WText *head = new Wt::WText(h); head->setStyleClass("north"); north->setLayout(new Wt::WFitLayout()); north->layout()->addWidget(head); north->resize(Wt::WLength(), 35); layout->addWidget(north, Wt::WBorderLayout::North); /* West */ west = new Wt::Ext::Panel(); west->setTitle("Menu"); west->resize(200, Wt::WLength()); west->setResizable(true); west->collapse(); west->setAnimate(true); west->setAutoScrollBars(true); layout->addWidget(west, Wt::WBorderLayout::West); /* Center */ Wt::Ext::Panel *center = new Wt::Ext::Panel(); center->setTitle("MediaEncodingCluster"); center->layout()->addWidget(exampleContainer_ = new Wt::WContainerWidget()); center->setAutoScrollBars(true); layout->addWidget(center, Wt::WBorderLayout::Center); exampleContainer_->setPadding(5); currentExample_ = login = new Login(exampleContainer_); login->authenticated.connect(SLOT(this, WebApp::authenticated)); // useStyleSheet("ext/resources/css/xtheme-gray.css"); useStyleSheet("filetree.css"); useStyleSheet("main.css"); std::string res = std::string(Config::getProperty("hive.path")); res.append("/../res/messages"); messageResourceBundle().use(res.c_str(), false); }
AuthApplication(const Wt::WEnvironment& env) : Wt::WApplication(env), session_(appRoot() + "auth.db") { /* * For better support for a mobile device. Note this requires * progressive bootstrap being enabled (see wt_config.xml). */ addMetaHeader("viewport", "width=device-width, initial-scale=1, maximum-scale=1"); session_.login().changed().connect(this, &AuthApplication::authEvent); useStyleSheet("css/style.css"); messageResourceBundle().use(appRoot() + "templates"); QRAuthWidget *authWidget = new QRAuthWidget(session_.login()); Wt::Auth::AuthModel *model = new Wt::Auth::AuthModel(Session::auth(), session_.users(), this); model->addPasswordAuth(&Session::passwordAuth()); model->addOAuth(Session::oAuth()); authWidget->setModel(model); authWidget->setRegistrationEnabled(true); authWidget->configureQRAuth(Session::qrAuth(), session_.qrTokenDatabase()); authWidget->processEnvironment(); root()->addWidget(authWidget); }
LakaEngine::LakaEngine(const WEnvironment &env) :WApplication(env) { useStyleSheet("themes/yanni/style.css"); applySettings(); cout<<"__________title_______"<<titleString<<endl; cout<<"_________tagline______"<<taglineString<<endl; if(titleString == "") titleString = "Lakaness"; if(taglineString == "") taglineString="Give a height to your thoughts"; setTitle(titleString); useStyleSheet("resources/default.css"); clicked = false; container = new WContainerWidget(root()); container->setStyleClass("container"); headerContainer = new WContainerWidget(); authForm = new AuthForm(headerContainer); postLoop = new PostLoop(container); headerPanel = new WPanel(root()); headerPanel->setTitle("Login/Sign up"); headerPanel->setCentralWidget(headerContainer); headerPanel->setCollapsible(true); headerPanel->setCollapsed(false); WAnimation animation(WAnimation::SlideInFromTop, WAnimation::EaseOut, 100); headerPanel->setAnimation(animation); main = new WTemplate(root()); main->setTemplateText(mainTemplate); main->bindString("tagline", taglineString); main->bindString("title", titleString); main->bindWidget("postloop", postLoop); internalPathChanged().connect(this, &LakaEngine::handlePathChange); handlePathChange(); }
App::App(const Wt::WEnvironment& env) : wittyPlus::App(env) { setTheme(new Wt::WCssTheme("polished", this)); messageResourceBundle().use(appRoot() + "messages/MainWindow"); useStyleSheet("/css/footprint.css"); // Ensure that any users from the config file exist std::string users; readConfigurationProperty("users", users); ensureUsers(users); // Run! new widgets::MainWindow(root()); };
AppNodeStar::AppNodeStar( const Wt::WEnvironment& env ): Wt::WApplication( env ), m_pServer( 0 ) { m_pServer = dynamic_cast<Server*>( env.server() ); //m_pUserAuth.reset( new UserAuth( m_pServer->GetConnectionPool() ) ); //useStyleSheet(Wt::WLink("/css/nodestar.css")); //useStyleSheet("css/nodestar.css"); useStyleSheet("style/nodestar.css"); m_Session.setConnectionPool( m_pServer->GetConnectionPool() ); m_Session.mapClass<DbRecOrganization>( "organization" ); m_Session.mapClass<DbRecIpAddress>( "ipaddress" ); internalPathChanged().connect( this, &AppNodeStar::HandleInternalPathChanged ); internalPathInvalid().connect( this, &AppNodeStar::HandleInternalPathInvalid ); // Wt::WLink link( Wt::WLink::InternalPath, "/link1" ); // Wt::WAnchor* pAnchor = new Wt::WAnchor( link, "Test Link" ); // root()->addWidget( pAnchor ); //auto pTest = new Wt::WText( "<p>this is test</p>", root() ); //auto pTest = new Wt::WText( "this is test", root() ); //pTest->setStyleClass( "test" ); // make use of the authEvent to change state (show login, or show logout) via Auth.h) m_pAuth.reset( new Auth( m_pServer->GetConnectionPool() ) ); m_connectionLoginChanged = m_pAuth->RegisterLoginChanged( this, &AppNodeStar::HandleAuthLoginChangedStep1 ); namespace args = boost::phoenix::arg_names; RegisterPath( "/", boost::phoenix::bind( &AppNodeStar::HomeRoot, this, args::arg1 ) ); RegisterPath( "/home", boost::phoenix::bind( &AppNodeStar::Home, this, args::arg1 ) ); RegisterPath( "/auth/signin", boost::phoenix::bind( &AppNodeStar::AuthSignIn, this, args::arg1 ) ); RegisterPath( "/auth/expired", boost::phoenix::bind( &AppNodeStar::AuthExpired, this, args::arg1 ) ); RegisterPath( "/auth/signout", boost::phoenix::bind( &AppNodeStar::AuthSignOut, this, args::arg1 ) ); RegisterPath( "/goodbye", boost::phoenix::bind( &AppNodeStar::GoodBye, this, args::arg1 ) ); RegisterPath( "/member/home", boost::phoenix::bind( &AppNodeStar::MemberHome, this, args::arg1 ) ); RegisterPath( "/member/show/addresses", boost::phoenix::bind( &AppNodeStar::MemberShowAddresses, this, args::arg1 ) ); RegisterPath( "/member/upload/tables", boost::phoenix::bind( &AppNodeStar::MemberUploadTables, this, args::arg1 ) ); struct callback { void operator()( Wt::WContainerWidget* pcw ) { } }; TemplatePage( root(), callback() ); }
App::App(const Wt::WEnvironment& env) : Wt::WApplication(env) { setTheme(new Wt::WBootstrapTheme()); useStyleSheet("style.css"); root()->addWidget(config_wdgt = new Config_wdgt(session)); root()->addWidget(new Wt::WBreak()); root()->addWidget(stat_wdgt = new Stat_wdgt(session)); root()->addWidget(new Wt::WBreak()); root()->addWidget(line_wdgt = new Line_wdgt(session)); root()->addWidget(new Wt::WBreak()); root()->addWidget(prog_wdgt = new Prog_wdgt(session)); enableUpdates(true); worker_connect(this); }
Application::Application(const Wt::WEnvironment& env, Server& server): Wt::WApplication(env), session_(server), fact_path_format_("/fact/%i/"), comment_path_format_("/fact/%i/comment/%i/"), ip_path_format_("/admin/ip/%s/"), admin_(false) { init_counters_(); messageResourceBundle().use(Wt::WApplication::appRoot() + "locales/facts"); setCssTheme("polished"); useStyleSheet("css/facts.css"); facts_ = new FactsWidget(root()); internalPathChanged().connect(this, &Application::path_changed_handler_); facts_->set_random_fact(); WApplication::setInternalPath(environment().internalPath(), true); }
AuthApplication(const Wt::WEnvironment& env) : Wt::WApplication(env), session_(appRoot() + "auth.db") { session_.login().changed().connect(this, &AuthApplication::authEvent); useStyleSheet("css/style.css"); messageResourceBundle().use("strings"); messageResourceBundle().use("templates"); AuthWidget *authWidget = new AuthWidget(session_); authWidget->model()->addPasswordAuth(&Session::passwordAuth()); authWidget->model()->addOAuth(Session::oAuth()); authWidget->setRegistrationEnabled(true); authWidget->processEnvironment(); root()->addWidget(authWidget); }
TableView::TableView(const Wt::WEnvironment& env, Table *t) : Wt::WApplication(env), table(t) { setTitle("Push Test"); setCssTheme(""); useStyleSheet("data/style.css"); enableUpdates(true); messageResourceBundle().use(appRoot() + "i18n"); table->connect(this); Wt::WPushButton* button = new Wt::WPushButton("Increment", root()); sound = new Wt::WSound("data/click.mp3"); button->clicked().connect(this, &TableView::increment); text = new Wt::WText("Number will appear here", root()); }
AuthApplication(const Wt::WEnvironment& env) : WApplication(env), session_(appRoot() + "auth.db") { session_.login().changed().connect(this, &AuthApplication::authEvent); root()->addStyleClass("container"); setTheme(std::make_shared<Wt::WBootstrapTheme>()); useStyleSheet("css/style.css"); std::unique_ptr<Wt::Auth::AuthWidget> authWidget = Wt::cpp14::make_unique<Wt::Auth::AuthWidget>(Session::auth(), session_.users(), session_.login()); authWidget->model()->addPasswordAuth(&Session::passwordAuth()); authWidget->model()->addOAuth(Session::oAuth()); authWidget->setRegistrationEnabled(true); authWidget->processEnvironment(); root()->addWidget(std::move(authWidget)); }
INSession::INSession(const Wt::WEnvironment & environment) : Wt::WApplication(environment), INObject() { m_MessageBox = NULL; m_UserId = new NInteger(-1); INList<NCascadingStyleSheetsFile *> * cssFileList = NULL; try { cssFileList = NResourcePool::getResources<NCascadingStyleSheetsFile>("style", CSS_SUFFIX); if (cssFileList != NULL) { for (nlong i = 0; i < cssFileList->getSize(); i++) { if (cssFileList->get(i) != NULL) { useStyleSheet(cssFileList->get(i)->getRelativePath()); delete cssFileList->get(i); } } delete cssFileList; } navigateByRule("", NNavigationProvider::getInstance()->resolveInitialView()); } catch (...) { if (cssFileList != NULL) { for (nlong i = 0; i < cssFileList->getSize(); i++) { if (cssFileList->get(i) != NULL) delete cssFileList->get(i); } delete cssFileList; } delete m_UserId; } }
Home::Home(const WEnvironment& env, Wt::Dbo::SqlConnectionPool& blogDb, const std::string& title, const std::string& resourceBundle, const std::string& cssPath) : WApplication(env), releases_(0), blogDb_(blogDb), homePage_(0), sourceViewer_(0) { messageResourceBundle().use(appRoot() + resourceBundle, false); useStyleSheet(cssPath + "/wt.css"); useStyleSheet(cssPath + "/wt_ie.css", "lt IE 7", "all"); useStyleSheet("css/home.css"); useStyleSheet("css/sourceview.css"); useStyleSheet("css/chatwidget.css"); useStyleSheet("css/chatwidget_ie6.css", "lt IE 7", "all"); setTitle(title); setLocale(""); language_ = 0; }
Prime::Prime(const Wt::WEnvironment &env) : Wt::WApplication(env), prime_root_widget (new Wt::WContainerWidget(root())), prime_game_widget (new Wt::WContainerWidget()), prime_inventory_widget (new Wt::WContainerWidget()), prime_largemap_widget (new Wt::WContainerWidget()), prime_factions_widget (new Wt::WContainerWidget()), prime_manage_character_widget (new Wt::WContainerWidget()), prime_manage_account_widget (new Wt::WContainerWidget()), prime_donations_tab_widget (new Wt::WContainerWidget()), prime_logout_widget (new Wt::WContainerWidget()), prime_game_container_widget (new Wt::WContainerWidget()), prime_game_playarea_widget (new Wt::WContainerWidget()), prime_game_map_and_inventory_widget (new Wt::WContainerWidget()), player_status_panel (new Wt::WPanel()), player_details_panel (new Wt::WPanel()), donations_panel (new Wt::WPanel()), messages_panel (new Wt::WPanel()), minimap_panel (new Wt::WPanel()), minimap (new Wt::WTable()), quick_inventory_panel (new Wt::WPanel()), quick_pets_panel (new Wt::WPanel()), description_panel (new Wt::WPanel()), largemap_panel (new Wt::WPanel()), largemap (new Wt::WTable()), prime_menu (new Wt::WTabWidget()), minimap_move_north_west (new Wt::WContainerWidget()), minimap_move_north (new Wt::WContainerWidget()), minimap_move_north_east (new Wt::WContainerWidget()), minimap_move_west (new Wt::WContainerWidget()), minimap_move_east (new Wt::WContainerWidget()), minimap_move_south_west (new Wt::WContainerWidget()), minimap_move_south (new Wt::WContainerWidget()), minimap_move_south_east (new Wt::WContainerWidget()), largemap_move_north_west (new Wt::WContainerWidget()), largemap_move_north (new Wt::WContainerWidget()), largemap_move_north_east (new Wt::WContainerWidget()), largemap_move_west (new Wt::WContainerWidget()), largemap_move_east (new Wt::WContainerWidget()), largemap_move_south_west (new Wt::WContainerWidget()), largemap_move_south (new Wt::WContainerWidget()), largemap_move_south_east (new Wt::WContainerWidget()) { srand(unsigned(time(NULL))); setTitle("Prime Live Mockup"); useStyleSheet("prime.css"); useStyleSheet("tiles.css"); //// Yagitest maptiles.push_back("prime_forest"); maptiles.push_back("prime_grass"); maptiles.push_back("prime_dirttrack"); maptiles.push_back("prime_mill"); maptiles.push_back("prime_railroadstation"); maptiles.push_back("prime_inn"); maptiles.push_back("prime_tavern"); maptiles.push_back("prime_church"); maptiles.push_back("prime_cottage"); maptiles.push_back("prime_smithy"); //// The Game Widgets player_status_panel->setCentralWidget(new Wt::WText("Player Status")); player_status_panel->setCollapsible(false); player_details_panel->setCentralWidget(new Wt::WText("Player Details")); player_details_panel->setCollapsible(false); donations_panel->setCentralWidget(new Wt::WText("Donations")); donations_panel->setCollapsible(false); messages_panel->setCentralWidget(new Wt::WText("Game Messages")); messages_panel->setCollapsible(true); messages_panel->setTitle("Messages"); minimap_panel->setCentralWidget(minimap); minimap_panel->setCollapsible(false); minimap_panel->setTitle("Map"); minimap->setStyleClass("minimap_widget"); minimap->elementAt(1, 1)->addWidget(minimap_move_north_west); minimap->elementAt(1, 2)->addWidget(minimap_move_north); minimap->elementAt(1, 3)->addWidget(minimap_move_north_east); minimap->elementAt(2, 1)->addWidget(minimap_move_west); minimap->elementAt(2, 3)->addWidget(minimap_move_east); minimap->elementAt(3, 1)->addWidget(minimap_move_south_west); minimap->elementAt(3, 2)->addWidget(minimap_move_south); minimap->elementAt(3, 3)->addWidget(minimap_move_south_east); minimap_move_north_west->hide(); minimap_move_north->hide(); minimap_move_north_east->hide(); minimap_move_west->hide(); minimap_move_east->hide(); minimap_move_south_west->hide(); minimap_move_south->hide(); minimap_move_south_east->hide(); minimap->elementAt(2, 2)->clicked.connect(SLOT(this, Prime::populate_minimap)); minimap->elementAt(1, 1)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north_west)); minimap->elementAt(1, 1)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north_west)); minimap->elementAt(1, 2)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north)); minimap->elementAt(1, 2)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north)); minimap->elementAt(1, 3)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north_east)); minimap->elementAt(1, 3)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north_east)); minimap->elementAt(2, 1)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_west)); minimap->elementAt(2, 1)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_west)); minimap->elementAt(2, 3)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_east)); minimap->elementAt(2, 3)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_east)); minimap->elementAt(3, 1)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south_west)); minimap->elementAt(3, 1)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south_west)); minimap->elementAt(3, 2)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south)); minimap->elementAt(3, 2)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south)); minimap->elementAt(3, 3)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south_east)); minimap->elementAt(3, 3)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south_east)); //minimap->mouseWentOver.connect(SLOT(this, Prime::populate_minimap)); quick_inventory_panel->setCentralWidget(new Wt::WText("Quick Inventory")); quick_inventory_panel->setCollapsible(true); quick_inventory_panel->setTitle("Inventory"); quick_pets_panel->setCentralWidget(new Wt::WText("Quick Pets")); quick_pets_panel->setCollapsible(true); quick_pets_panel->setTitle("Pets"); description_panel->setCentralWidget(new Wt::WText("Description")); description_panel->setCollapsible(true); description_panel->setTitle("Description"); prime_game_playarea_widget->clear(); prime_game_playarea_widget->setStyleClass("prime_game_playarea_widget"); prime_game_playarea_widget->addWidget(player_details_panel); prime_game_playarea_widget->addWidget(player_status_panel); prime_game_playarea_widget->addWidget(donations_panel); prime_game_playarea_widget->addWidget(messages_panel); prime_game_playarea_widget->addWidget(description_panel); prime_game_map_and_inventory_widget->clear(); prime_game_map_and_inventory_widget->setStyleClass("prime_game_map_and_inventory_widget"); prime_game_map_and_inventory_widget->addWidget(minimap_panel); prime_game_map_and_inventory_widget->addWidget(quick_inventory_panel); prime_game_map_and_inventory_widget->addWidget(quick_pets_panel); prime_game_container_widget->clear(); prime_game_container_widget->setStyleClass("prime_game_container_widget"); prime_game_container_widget->addWidget(prime_game_playarea_widget); prime_game_widget->clear(); prime_game_widget->addWidget(prime_game_container_widget); prime_game_widget->addWidget(prime_game_map_and_inventory_widget); //// The Inventory Widget prime_inventory_widget->clear(); Wt::WText *prime_inventory_placeholder = new Wt::WText("A full inventory system goes here", prime_inventory_widget); //// The Large Map Widget largemap_panel->setCentralWidget(largemap); largemap_panel->setCollapsible(false); largemap_panel->setTitle("Large Map"); largemap->setStyleClass("largemap_widget"); prime_largemap_widget->clear(); prime_largemap_widget->addWidget(largemap_panel); largemap->elementAt(7, 7)->addWidget(largemap_move_north_west); largemap->elementAt(7, 8)->addWidget(largemap_move_north); largemap->elementAt(7, 9)->addWidget(largemap_move_north_east); largemap->elementAt(8, 7)->addWidget(largemap_move_west); largemap->elementAt(8, 9)->addWidget(largemap_move_east); largemap->elementAt(9, 7)->addWidget(largemap_move_south_west); largemap->elementAt(9, 8)->addWidget(largemap_move_south); largemap->elementAt(9, 9)->addWidget(largemap_move_south_east); largemap_move_north_west->hide(); largemap_move_north->hide(); largemap_move_north_east->hide(); largemap_move_west->hide(); largemap_move_east->hide(); largemap_move_south_west->hide(); largemap_move_south->hide(); largemap_move_south_east->hide(); largemap->elementAt(7, 7)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north_west)); largemap->elementAt(7, 7)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north_west)); largemap->elementAt(7, 8)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north)); largemap->elementAt(7, 8)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north)); largemap->elementAt(7, 9)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_north_east)); largemap->elementAt(7, 9)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_north_east)); largemap->elementAt(8, 7)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_west)); largemap->elementAt(8, 7)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_west)); largemap->elementAt(8, 9)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_east)); largemap->elementAt(8, 9)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_east)); largemap->elementAt(9, 7)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south_west)); largemap->elementAt(9, 7)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south_west)); largemap->elementAt(9, 8)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south)); largemap->elementAt(9, 8)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south)); largemap->elementAt(9, 9)->mouseWentOver.connect(SLOT(this, Prime::mouseover_move_south_east)); largemap->elementAt(9, 9)->mouseWentOut.connect(SLOT(this, Prime::mouseout_move_south_east)); //// The Factions Widget prime_factions_widget->clear(); Wt::WText *prime_factions_placeholder = new Wt::WText("Create/Join/Leave factions", prime_factions_widget); //// The Manage Character Widget prime_manage_character_widget->clear(); Wt::WText *prime_manage_character_placeholder = new Wt::WText("Manage your 2 free chars, and all your 'donates' here", prime_manage_character_widget); //// The Manage Account Widget prime_manage_account_widget->clear(); Wt::WText *prime_manage_account_placeholder = new Wt::WText("Your details", prime_manage_account_widget); //// The Donations Tab Widget prime_donations_tab_widget->clear(); Wt::WText *prime_donations_tab_placeholder = new Wt::WText("Give me your money ;)", prime_donations_tab_widget); //// The Logout Widget prime_logout_widget->clear(); Wt::WPushButton *prime_logout = new Wt::WPushButton("Logout", prime_logout_widget); prime_logout->clicked.connect(SLOT(this, Prime::quit)); //// The Menu Widget prime_menu->addTab(prime_game_widget, "Game", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_inventory_widget, "Inventory", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_largemap_widget, "Large Map", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_factions_widget, "Factions", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_manage_character_widget, "Characters", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_manage_account_widget, "Account", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_donations_tab_widget, "Donate", Wt::WTabWidget::LazyLoading); prime_menu->addTab(prime_logout_widget, "Logout", Wt::WTabWidget::LazyLoading); prime_menu->currentChanged.connect(SLOT(this, Prime::populate_largemap)); //// The Root Widget prime_root_widget->clear(); prime_root_widget->addWidget(prime_menu); Prime::populate_minimap(); }