예제 #1
0
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();
}
예제 #2
0
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));
}