Ejemplo n.º 1
0
void Window_trigger::init()
{
    kdDebug(1217) << "Window_trigger::init()" << endl;
    connect(windows_handler, SIGNAL(window_added(WId)), this, SLOT(window_added(WId)));
    connect(windows_handler, SIGNAL(window_removed(WId)), this, SLOT(window_removed(WId)));
    if(window_actions & (WINDOW_ACTIVATES | WINDOW_DEACTIVATES /*| WINDOW_DISAPPEARS*/))
        connect(windows_handler, SIGNAL(active_window_changed(WId)), this, SLOT(active_window_changed(WId)));
    connect(windows_handler, SIGNAL(window_changed(WId, unsigned int)), this, SLOT(window_changed(WId, unsigned int)));
}
Ejemplo n.º 2
0
void tlobby_main::switch_to_window(size_t id)
{
	active_window_ = id;
	assert(active_window_ < open_windows_.size());
	chat_log_container_->select_page(active_window_);
	roomlistbox_->select_row(active_window_);
	active_window_changed();
}
Ejemplo n.º 3
0
void tchatbox::close_window(size_t idx)
{
	const tlobby_chat_window& t = open_windows_[idx];
	bool active_changed = idx == active_window_;
	DBG_LB << "Close window " << idx << " - " << t.name << "\n";

	if((t.name == "lobby" && t.whisper == false) || open_windows_.size() == 1) {
		return;
	}

	if(t.whisper == false) {
		// closing a room window -- send a part to the server
		::config data, msg;
		msg["room"] = t.name;
		msg["player"] = preferences::login();
		data.add_child("room_part", msg);
		send_to_server(data);
	}

	if(active_window_ == open_windows_.size() - 1) {
		active_window_--;
	}

	if(t.whisper) {
		lobby_info().get_whisper_log(t.name).clear();
	} else {
		lobby_info().close_room(t.name);
	}

	open_windows_.erase(open_windows_.begin() + idx);

	roomlistbox_->remove_row(idx);
	roomlistbox_->select_row(active_window_);

	chat_log_container_->remove_page(idx);
	chat_log_container_->select_page(active_window_);

	if(active_changed) {
		active_window_changed();
	}
}
Ejemplo n.º 4
0
void Active_window_condition::init()
    {
    connect( windows_handler, TQT_SIGNAL( active_window_changed( WId )),
        this, TQT_SLOT( active_window_changed( WId )));
    }
Ejemplo n.º 5
0
void tlobby_main::pre_show(twindow& window)
{
	SCOPE_LB;
	roomlistbox_ = find_widget<tlistbox>(&window, "room_list", false, true);
#ifdef GUI2_EXPERIMENTAL_LISTBOX
	connect_signal_notify_modified(
			*roomlistbox_,
			std::bind(&tlobby_main::room_switch_callback,
						*this,
						std::ref(window)));
#else
	roomlistbox_->set_callback_value_change(
			dialog_callback<tlobby_main, &tlobby_main::room_switch_callback>);
#endif

	gamelistbox_ = find_widget<tlistbox>(&window, "game_list", false, true);
#ifdef GUI2_EXPERIMENTAL_LISTBOX
	connect_signal_notify_modified(
			*gamelistbox_,
			std::bind(&tlobby_main::gamelist_change_callback,
						*this,
						std::ref(window)));
#else
	gamelistbox_->set_callback_value_change(
			dialog_callback<tlobby_main,
							&tlobby_main::gamelist_change_callback>);
#endif

	window.keyboard_capture(gamelistbox_);

	player_list_.init(window);

	player_list_.sort_by_name->set_value(preferences::playerlist_sort_name());
	player_list_.sort_by_relation->set_value(preferences::playerlist_sort_relation());
	player_list_.update_sort_icons();

	player_list_.sort_by_name->set_callback_state_change(
			std::bind(&tlobby_main::player_filter_callback, this, _1));
	player_list_.sort_by_relation->set_callback_state_change(
			std::bind(&tlobby_main::player_filter_callback, this, _1));

	chat_log_container_ = find_widget<tmulti_page>(&window, "chat_log_container", false, true);

	window.set_enter_disabled(true);

	window_ = &window;

	chat_input_ = find_widget<ttext_box>(&window, "chat_input", false, true);
	assert(chat_input_);
	connect_signal_pre_key_press(
		*chat_input_,
		std::bind(&tlobby_main::chat_input_keypress_callback,
				this,
				_3,
				_4,
				_5,
				std::ref(window)));

	connect_signal_mouse_left_click(
		find_widget<tbutton>(&window, "create", false),
		std::bind(&tlobby_main::create_button_callback,
				this,
				std::ref(window)));

	connect_signal_mouse_left_click(
		find_widget<tbutton>(&window, "refresh", false),
		std::bind(&tlobby_main::refresh_button_callback,
				this,
				std::ref(window)));

	connect_signal_mouse_left_click(
		find_widget<tbutton>(&window, "show_preferences", false),
		std::bind(&tlobby_main::show_preferences_button_callback,
				this,
				std::ref(window)));

	connect_signal_mouse_left_click(
		find_widget<tbutton>(&window, "join_global", false),
		std::bind(&tlobby_main::join_global_button_callback,
				this,
				std::ref(window)));
	find_widget<tbutton>(&window, "join_global", false).set_active(false);

	connect_signal_mouse_left_click(
		find_widget<tbutton>(&window, "observe_global", false),
		std::bind(&tlobby_main::observe_global_button_callback,
				this,
				std::ref(window)));

	find_widget<tbutton>(&window, "observe_global", false).set_active(false);

	ttoggle_button& skip_replay
			= find_widget<ttoggle_button>(&window, "skip_replay", false);
	skip_replay.set_value(preferences::skip_mp_replay());
	skip_replay.set_callback_state_change(
			std::bind(&tlobby_main::skip_replay_changed_callback, this, _1));

	filter_friends_ = find_widget<ttoggle_button>(&window, "filter_with_friends", false, true);
	filter_ignored_ = find_widget<ttoggle_button>(&window, "filter_without_ignored", false, true);
	filter_slots_   = find_widget<ttoggle_button>(&window, "filter_vacant_slots", false, true);
	filter_invert_  = find_widget<ttoggle_button>(&window, "filter_invert", false, true);
	filter_text_    = find_widget<ttext_box>(&window, "filter_text", false, true);

	filter_friends_->set_callback_state_change(
			std::bind(&tlobby_main::game_filter_change_callback, this, _1));
	filter_ignored_->set_callback_state_change(
			std::bind(&tlobby_main::game_filter_change_callback, this, _1));
	filter_slots_->set_callback_state_change(
			std::bind(&tlobby_main::game_filter_change_callback, this, _1));
	filter_invert_->set_callback_state_change(
			std::bind(&tlobby_main::game_filter_change_callback, this, _1));
	connect_signal_pre_key_press(
			*filter_text_,
			std::bind(&tlobby_main::game_filter_keypress_callback, this, _5));

	room_window_open("lobby", true);
	active_window_changed();
	game_filter_reload();

	// Force first update to be directly.
	tlobby_main::network_handler();
	lobby_update_timer_ = add_timer(
		game_config::lobby_network_timer, std::bind(&tlobby_main::network_handler, this), true);
}
Ejemplo n.º 6
0
void WindowsHandler::active_window_changed_slot( WId window_P )
    {
    if( signals_enabled )
        emit active_window_changed( window_P );
    }