SpyFrame::SpyFrame(dwt::TabView* mdiParent) : BaseType(mdiParent, T_("Search Spy"), IDH_SEARCH_SPY, IDR_SPY), searches(0), ignoreTTH(0), bIgnoreTTH(BOOLSETTING(SPY_FRAME_IGNORE_TTH_SEARCHES)), total(0), cur(0) { memset(perSecond, 0, sizeof(perSecond)); { Table::Seed cs = WinUtil::Seeds::Table; cs.style |= LVS_SINGLESEL; searches = addChild(cs); addWidget(searches); searches->createColumns(WinUtil::getStrings(columnNames)); searches->setColumnOrder(WinUtil::splitTokens(SETTING(SPYFRAME_ORDER), columnIndexes)); searches->setColumnWidths(WinUtil::splitTokens(SETTING(SPYFRAME_WIDTHS), columnSizes)); searches->setSort(COLUMN_COUNT, dwt::Table::SORT_INT, false); searches->onColumnClick(std::tr1::bind(&SpyFrame::handleColumnClick, this, _1)); searches->onContextMenu(std::tr1::bind(&SpyFrame::handleContextMenu, this, _1)); } { CheckBox::Seed cs(T_("Ignore TTH searches")); ignoreTTH = addChild(cs); ignoreTTH->setHelpId(IDH_SPY_IGNORE_TTH); ignoreTTH->setChecked(bIgnoreTTH); ignoreTTH->onClicked(std::tr1::bind(&SpyFrame::handleIgnoreTTHClicked, this)); } initStatus(); statusSizes[STATUS_IGNORE_TTH] = 150; ///@todo get real checkbox + text width setStatusHelpId(STATUS_TOTAL, IDH_SPY_TOTAL); setStatusHelpId(STATUS_AVG_PER_SECOND, IDH_SPY_AVG_PER_SECOND); setStatusHelpId(STATUS_HITS, IDH_SPY_HITS); setStatusHelpId(STATUS_HIT_RATIO, IDH_SPY_HIT_RATIO); layout(); onSpeaker(std::tr1::bind(&SpyFrame::handleSpeaker, this, _1, _2)) ; ShareManager::getInstance()->setHits(0); ClientManager::getInstance()->addListener(this); initSecond(); }
UsersFrame::UsersFrame(dwt::TabView* mdiParent) : BaseType(mdiParent, T_("Favorite Users"), IDH_FAVUSERS, IDR_USERS), users(0), startup(true) { { WidgetUsers::Seed cs; cs.lvStyle |= LVS_EX_CHECKBOXES; users = addChild(cs); addWidget(users); users->createColumns(WinUtil::getStrings(columnNames)); users->setColumnOrder(WinUtil::splitTokens(SETTING(HUBFRAME_ORDER), columnIndexes)); users->setColumnWidths(WinUtil::splitTokens(SETTING(HUBFRAME_WIDTHS), columnSizes)); users->setSort(COLUMN_NICK); users->onDblClicked(std::tr1::bind(&UsersFrame::handleGetList, this)); users->onKeyDown(std::tr1::bind(&UsersFrame::handleKeyDown, this, _1)); users->onRaw(std::tr1::bind(&UsersFrame::handleItemChanged, this, _2), dwt::Message(WM_NOTIFY, LVN_ITEMCHANGED)); users->onContextMenu(std::tr1::bind(&UsersFrame::handleContextMenu, this, _1)); } FavoriteManager::FavoriteMap ul = FavoriteManager::getInstance()->getFavoriteUsers(); HoldRedraw hold(users); for(FavoriteManager::FavoriteMap::iterator i = ul.begin(); i != ul.end(); ++i) { addUser(i->second); } FavoriteManager::getInstance()->addListener(this); initStatus(); layout(); startup = false; onSpeaker(std::tr1::bind(&UsersFrame::handleSpeaker, this, _1, _2)); }