Exemplo n.º 1
0
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());
}
Exemplo n.º 2
0
      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);

      }
Exemplo n.º 3
0
  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);
  }
Exemplo n.º 4
0
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();
}
Exemplo n.º 5
0
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());
};
Exemplo n.º 6
0
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() );

}
Exemplo n.º 7
0
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);
}
Exemplo n.º 8
0
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);
}
Exemplo n.º 9
0
Arquivo: Auth2.C Projeto: LifeGo/wt
  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);
  }
Exemplo n.º 10
0
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());
}
Exemplo n.º 11
0
  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));
  }
Exemplo n.º 12
0
        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;
            }
        }
Exemplo n.º 13
0
Arquivo: Home.C Projeto: GuLinux/wt
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;
}
Exemplo n.º 14
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();
}