void ttitle_screen::pre_show(CVideo& video, twindow& window)
{
	window_ = &window;

	set_restore(false);
	window.set_click_dismiss(false);
	window.set_escape_disabled(true);

	std::stringstream strstr;
	std::string color = game_config::local_only? "red": "green";

	strstr.str("");
	tlabel* label = find_widget<tlabel>(&window, "coin", true, true);
	strstr << tintegrate::generate_format(group.coin(), color, 17);
	label->set_label(strstr.str());

	strstr.str("");
	label = find_widget<tlabel>(&window, "score", true, true);
	strstr << tintegrate::generate_format(group.score(), color, 17);
	label->set_label(strstr.str());

	strstr.str("");
	label = find_widget<tlabel>(&window, "signin_data", true, true);
	if (!game_config::local_only) {
		strstr << tintegrate::generate_format(group.signin().continue_days, "green", 17) << "/";
		if (!group.signin().break_days) {
			color = "green";
		} else if (group.signin().break_days < game_config::max_breaks) {
			color = "yellow";
		} else {
			color = "red";
		}
		strstr << tintegrate::generate_format(group.signin().break_days, color, 17);
	} else {
		strstr << tintegrate::generate_format("---/-", "white", 17);
	}
	label->set_label(strstr.str());

	tcontrol* control = find_widget<tcontrol>(&window, "icon_vip", true, true);
	if (!preferences::vip2()) {
		control->set_visible(twidget::INVISIBLE);
	}

	// Set the version number
	control = find_widget<tcontrol>(&window, "revision_number", false, false);
	if (control) {
		// control->set_label(_("V") + game_config::version);
		// control->set_label(_("V") + game_config::version + "-alpha");
		// control->set_label(_("v") + game_config::version + "-beta");
		control->set_label(_("v") + game_config::version + "-beta4");
	}
	window.canvas()[0].set_variable("revision_number", variant(_("Version") + std::string(" ") + game_config::version));

	if (!game_config::images::game_title.empty()) {
		window.canvas()[0].set_variable("background_image",	variant(game_config::images::game_title));
	}

	/***** Set the logo *****/
	tcontrol* logo = find_widget<tcontrol>(&window, "logo", false, false);
	if (logo) {
		logo->set_label(game_config::logo_png);
	}

	label = find_widget<tlabel>(&window, "player_name", false, true);
	label->set_label(player_hero_.name());

	tbutton* b;
	for (int item = 0; item < nb_items; item ++) {
		b = find_widget<tbutton>(&window, menu_items[item], false, false);
		if (!b) {
			continue;
		}
		std::string str;
		if (!strcmp(menu_items[item], "player")) {
			str = player_hero_.image(true);

		} else if (!strcmp(menu_items[item], "signin")) {
			if (group.signin().today) {
				str = std::string("icons/") + "signin-ok" + ".png";
			} else {
				str = std::string("icons/") + "signin" + ".png";
			}

		} else {
			if (!strcmp(menu_items[item], "message")) {
				if (group.message_count()) {
					b->set_label("misc/red-dot12.png");
				}
			}
			str = std::string("icons/") + menu_items[item] + ".png";
		}

		for (int i = 0; i < 4; i ++) {
			b->canvas()[i].set_variable("image", variant(str));
		}
	}

	if (game_config::tiny_gui) {
		b = find_widget<tbutton>(&window, "design", false, false);
		if (b) {
			b->set_visible(twidget::INVISIBLE);
		}
		b = find_widget<tbutton>(&window, "editor", false, false);
		if (b) {
			b->set_visible(twidget::INVISIBLE);
		}

	} else if (!preferences::developer()) {
		b = find_widget<tbutton>(&window, "design", false, false);
		if (b) {
			b->set_visible(twidget::INVISIBLE);
		}
	}

#if defined(__APPLE__) && TARGET_OS_IPHONE
	b = find_widget<tbutton>(&window, "quit", false, false);
	if (b) {
		b->set_visible(twidget::INVISIBLE);
	}
#endif

	for (int item = 0; item < nb_items; item ++) {
		std::string id = menu_items[item];
		int retval = twindow::NONE;
		if (id == "editor") {
			retval = START_MAP_EDITOR;
		} else if (id == "quit") {
			retval = QUIT_GAME;
		} else if (id == "help") {
			retval = HELP;
		} else if (id == "campaign") {
			retval = NEW_CAMPAIGN;
		} else if (id == "player") {
			retval = PLAYER;
		} else if (id == "side") {
			retval = PLAYER_SIDE;
		} else if (id == "multiplayer") {
			retval = MULTIPLAYER;
		} else if (id == "load") {
			retval = LOAD_GAME;
		} else if (id == "report") {
			retval = REPORT;
		} else if (id == "language") {
			retval = CHANGE_LANGUAGE;
		} else if (id == "message") {
			retval = MESSAGE;
		} else if (id == "preferences") {
			retval = EDIT_PREFERENCES;
		} else if (id == "signin") {
			retval = SIGNIN;
		} else if (id == "shop") {
			retval = INAPP_PURCHASE;
		}

		connect_signal_mouse_left_click(
			find_widget<tbutton>(&window, id, false)
			, boost::bind(
				&ttitle_screen::set_retval
				, this
				, boost::ref(window)
				, retval));
	}

	tlobby::thandler::join();

	config cfg;
	cfg["id"] = anim2::rfind(anim2::TITLE_SCREEN);
	cfg["width"] = 1600;
	cfg["height"] = 900;
	window.insert_animation(cfg, false);
}