#include "stdafx.h" #include "column_events.h" /* * ColEvents */ ColEvents::ColEvents() : m_nSource(5), m_hSource(NULL) { } void ColEvents::impl_copyConfig(const Column* pSource) { const ColEvents& src = *reinterpret_cast(pSource); m_nSource = src.m_nSource; } void ColEvents::impl_configRead(const SettingsTree& settings) { m_nSource = settings.readIntRanged(con::KeySource, 5, 0, 5); } void ColEvents::impl_configWrite(SettingsTree& settings) const { settings.writeInt(con::KeySource, m_nSource); } void ColEvents::impl_configToUI(OptionsCtrl& Opt, OptionsCtrl::Item hGroup) { m_hSource = Opt.insertCombo(hGroup, TranslateT("Events to count")); static const TCHAR* sourceTexts[] = { LPGENT("URLs (incoming)"), LPGENT("URLs (outgoing)"), LPGENT("URLs (all)"), LPGENT("Files (incoming)"), LPGENT("Files (outgoing)"), LPGENT("Files (all)"), }; array_each_(i, sourceTexts) { Opt.addComboItem(m_hSource, TranslateTS(sourceTexts[i])); } Opt.setComboSelected(m_hSource, m_nSource); } void ColEvents::impl_configFromUI(OptionsCtrl& Opt) { m_nSource = Opt.getComboSelected(m_hSource); } void ColEvents::impl_outputRenderHeader(ext::ostream& tos, int row, int rowSpan) const { static const TCHAR* szShortDesc[] = { LPGENT("URLs"), LPGENT("Files"), }; static const TCHAR* szSourceDesc[] = { LPGENT("Incoming URLs"), LPGENT("Outgoing URLs"), LPGENT("URLs"), LPGENT("Incoming files"), LPGENT("Outgoing files"), LPGENT("Files"), }; if (row == 1) { writeRowspanTD(tos, getCustomTitle(TranslateTS(szShortDesc[m_nSource / 3]), TranslateTS(szSourceDesc[m_nSource])), row, 1, rowSpan); } } void ColEvents::impl_outputRenderRow(ext::ostream& tos, const Contact& contact, DisplayType) { static int (Contact::*getData[6])() const = { &Contact::getInUrls, &Contact::getOutUrls, &Contact::getTotalUrls, &Contact::getInFiles, &Contact::getOutFiles, &Contact::getTotalFiles, }; tos << _T("") << utils::intToGrouped((contact.*getData[m_nSource])()) << _T("") << ext::endl; }