コード例 #1
0
ファイル: hexchat.cpp プロジェクト: raziel23x/hexchat
void hexchat_globally_back()
{
    std::vector<int> xs;
    std::vector<int>::iterator xsi;
    hexchat_list *xl = hexchat_list_get(ph, "channels");

    if(xl)
    {
        while(hexchat_list_next(ph, xl))
        {
            xsi = std::find(xs.begin(), xs.end(), hexchat_list_int(ph, xl, "id"));

            if((xsi == xs.end()) &&
                    ((strlen(hexchat_list_str(ph, xl, "server")) > 0) ||
                     (strlen(hexchat_list_str(ph, xl, "channel")) > 0)))
            {
                xs.push_back(hexchat_list_int(ph, xl, "id"));
                hexchat_set_context(ph, (hexchat_context *)hexchat_list_str(ph, xl, "context"));
                hexchat_back();
            }
        }

        hexchat_list_free(ph, xl);
    }
}
コード例 #2
0
ファイル: callbacks.cpp プロジェクト: 94m3k1n9/hexchat
LRESULT CALLBACK sdTrayProc(HWND hWnd, int msg)
{
	switch(msg)
	{
	case ACT_EXIT:
		{
			g_bCanQuit = true;
			PostMessage(hWnd, WM_CLOSE, 0, 0);
		}
		break;
	case ACT_RESTORE:
		{
			/*************************************************/
			/** user wants us to restore the HexChat window **/
			/** and of autoaway is on, set as back ******** **/
			/*************************************************/
			SendMessage(g_hXchatWnd, WM_SYSCOMMAND, SC_RESTORE, 0);
			SetForegroundWindow(hWnd);
			
			if((!g_iIsActive) && (g_dwPrefs & (1<<PREF_AOM)))
			{
				hexchat_globally_back();
				g_iIsActive = 1;
			}
		}
		break;
	case ACT_SETTINGS:
		{
			ShowWindow(g_hPrefDlg, SW_SHOW);
		}
		break;
	case ACT_AWAY:
		{
			hexchat_globally_away(g_szAway);
		}
		break;
	case ACT_BACK:
		{
			hexchat_globally_back();
		}
		break;
	default:
		{
			if(msg > 0)
			{
				hexchat_set_context(ph, hexchat_find_server(msg-1));

				if(!hexchat_get_info(ph, "away"))
				{
					hexchat_away(g_szAway);
				}
				else
				{
					hexchat_back();
				}
			}
		}
		break;
	}

	return 1;
}