예제 #1
0
	virtual void PerformAction(const EFriendActionType::Type ActionType) override
	{
		switch(ActionType)
		{
			case EFriendActionType::AcceptFriendRequest : 
			{
				AcceptFriend();
				break;
			}
			case EFriendActionType::RemoveFriend :
			case EFriendActionType::IgnoreFriendRequest :
			case EFriendActionType::BlockFriend :
			case EFriendActionType::RejectFriendRequest:
			case EFriendActionType::CancelFriendRequest:
			{
				RemoveFriend(EFriendActionType::ToText(ActionType).ToString());
				break;
			}
			case EFriendActionType::SendFriendRequest : 
			{
				SendFriendRequest();
				break;
			}
			case EFriendActionType::InviteToGame : 
			{
				InviteToGame();
				break;
			}
			case EFriendActionType::JoinGame : 
			{
				JoinGame();
				break;
			}
			case EFriendActionType::RejectGame:
			{
				RejectGame();
				break;
			}
			case EFriendActionType::Chat:
			{
				StartChat();
				break;
			}
		}
		SetPendingAction(EFriendActionType::MAX_None);
	}
예제 #2
0
    QMenuBar *SessionManager::ConstructMenuBar()
    {
        // QMenuBar and QMenu init
        menu_bar_ = new QMenuBar(main_parent_);
        
        // FILE MENU
        QMenu *file_menu = new QMenu("File", main_parent_);
        QAction *hide_action = file_menu->addAction("Hide", this, SLOT( Hide() ));
        //hide_action->setEnabled(false); // Can't support hide on external mode

        // STATUS menu
        QMenu *status_menu = new QMenu("Status", main_parent_);
       
        set_status_message = status_menu->addAction("Set Status Message", session_helper_, SLOT( SetStatusMessage() ));
        status_menu->addSeparator();
        available_status = status_menu->addAction("Available", this, SLOT( StatusAvailable() ));
        chatty_status = status_menu->addAction("Chatty", this, SLOT( StatusChatty() ));
        away_status = status_menu->addAction("Away", this, SLOT( StatusAway() ));
        extended_away_status = status_menu->addAction("Extended Away", this, SLOT( StatusExtendedAway() ));
        busy_status = status_menu->addAction("Busy", this, SLOT( StatusBusy() ));
        hidden_status = status_menu->addAction("Hidden", this, SLOT( StatusHidden() ));

        set_status_message->setIcon(QIcon(":images/iconRename.png"));
        available_status->setCheckable(true);
        available_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("available"));
        chatty_status->setCheckable(true);
        chatty_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("chat"));
        away_status->setCheckable(true);
        away_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("away"));
        extended_away_status->setCheckable(true);
        extended_away_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("xa"));
        busy_status->setCheckable(true);
        busy_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("dnd"));
        hidden_status->setCheckable(true);
        hidden_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("hidden"));

        QActionGroup *status_group = new QActionGroup(main_parent_);            
        status_group->addAction(available_status);
        status_group->addAction(chatty_status);
        status_group->addAction(away_status);
        status_group->addAction(extended_away_status);
        status_group->addAction(busy_status);
        status_group->addAction(hidden_status);
        available_status->setChecked(true);

        status_menu->addSeparator();
        signout = status_menu->addAction("Sign out", this, SLOT( SignOut() ));
        signout->setIcon(QIcon(":images/iconSignout.png"));
        
        // JOIN MENU
        QMenu *actions_menu = new QMenu("Actions", main_parent_);
        add_new_friend = actions_menu->addAction("Add New Friend");
        add_new_friend->setIcon(QIcon(":images/iconAdd.png"));
        join_chat_room = actions_menu->addAction("Join Chat Room", this, SLOT( JoinChatRoom() ));
        join_chat_room->setIcon(QIcon(":/images/iconConference.png"));
        manage_spatial_voice = actions_menu->addAction("Manage 3D Voice", this, SLOT( Show3DSoundManager() ));
        manage_spatial_voice->setIcon(QIcon(":images/iconProperties.png"));
        
        // Add sub menus to menu bar
        menu_bar_->addMenu(file_menu);
        menu_bar_->addMenu(status_menu);
        menu_bar_->addMenu(actions_menu);
        menu_bar_->addAction("Show Friend List", this, SLOT( ToggleShowFriendList() ));
        
        // Connect signals
        connect(add_new_friend, SIGNAL( triggered() ),
                session_helper_, SLOT( SendFriendRequest() ));
        connect(this, SIGNAL( StatusChange(const QString&) ), 
                session_helper_, SLOT( SetMyStatus(const QString&) ));
        connect(session_helper_, SIGNAL( ChangeMenuBarStatus(const QString &) ), 
                this, SLOT( StatusChangedOutSideMenuBar(const QString &) ));

        return menu_bar_;
    }