void NetClientDlg::Show() { int selected_index = -1; if (!IsShown()) { FormWindow::Show(); // try to retrieve list of active servers from web broker if (config && lst_servers) { selected_index = config->GetServerIndex(); lst_servers->ClearItems(); config->Download(); } } if (config && lst_servers) { if (lst_servers->NumItems() != config->GetServerList().size()) ShowServers(); else UpdateServers(); if (selected_index >= 0 && selected_index < lst_servers->NumItems()) { config->SetServerIndex(selected_index); lst_servers->SetSelected(selected_index); OnSelect(0); } } }
void NetClientDlg::ExecFrame() { if (!config || !lst_servers) return; if (lst_servers->NumItems() != config->GetServerList().size()) ShowServers(); else UpdateServers(); NetServerInfo* info = config->GetServerInfo(server_index); bool del_enabled = info != 0; bool join_enabled = info != 0 && info->status > NetServerInfo::OFFLINE; bool host_enabled = join_enabled && info->hosted == 0; if (btn_host) btn_host->SetEnabled(host_enabled); if (btn_join) btn_join->SetEnabled(join_enabled); if (btn_del) btn_del->SetEnabled(del_enabled); }
void CFolderJoin::UpdateLists(LTBOOL bForce) { // Check for a forced update... if (m_bForceNextUpdate) { bForce = LTTRUE; m_bForceNextUpdate = LTFALSE; } // Check if we got a new server... static LTBOOL bDelayNewServer = LTFALSE; LTBOOL bNewServer = LTFALSE; if (GetGameSpyClientMgr()->ExistNewServer()) { bNewServer = LTTRUE; } if (bDelayNewServer) { bNewServer = LTTRUE; } // Make sure we don't do a full update too often... static uint32 timeLastFullUpdate = 0; if (!bForce && bNewServer) { if ((GetTickCount() - timeLastFullUpdate) < 1000) { bDelayNewServer = LTTRUE; } else { bForce = LTTRUE; } } else if (bNewServer) { bForce = LTTRUE; } if (bForce) { timeLastFullUpdate = GetTickCount(); bDelayNewServer = LTFALSE; } // Do the updates... UpdateServers(bForce); UpdatePlayers(bForce); UpdateOptions(bForce); }