LRESULT StatsFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { // [+]IRainman //DownloadManager::getInstance()->addListener(this); //UploadManager::getInstance()->addListener(this); // [~]IRainman create_timer(1000); SetFont(Fonts::g_font); bHandled = FALSE; #ifdef FLYLINKDC_USE_SHOW_UD_RATIO ctrlRatio.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, WS_EX_CLIENTEDGE, IDC_UD_RATIO); ratioContainer.SubclassWindow(ctrlRatio); SET_EXTENDENT_LIST_VIEW_STYLE(ctrlRatio); SET_LIST_COLOR(ctrlRatio); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (uint8_t j = 0; j < COLUMN_LAST; j++) { ctrlRatio.InsertColumn(j, CTSTRING_I(columnNames[j]), LVCFMT_LEFT, columnSizes[j], j); } #endif return 1; }
LRESULT RecentHubsFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { ctrlHubs.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS, WS_EX_CLIENTEDGE, IDC_RECENTS); SET_EXTENDENT_LIST_VIEW_STYLE(ctrlHubs); SET_LIST_COLOR(ctrlHubs); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(RECENTFRAME_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(RECENTFRAME_WIDTHS), COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (int j = 0; j < COLUMN_LAST; j++) { const int fmt = LVCFMT_LEFT; ctrlHubs.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); } ctrlHubs.SetColumnOrderArray(COLUMN_LAST, columnIndexes); ctrlConnect.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_CONNECT); ctrlConnect.SetWindowText(CTSTRING(CONNECT)); ctrlConnect.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlRemove.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_REMOVE); ctrlRemove.SetWindowText(CTSTRING(REMOVE)); ctrlRemove.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlRemoveAll.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_REMOVE_ALL); ctrlRemoveAll.SetWindowText(CTSTRING(REMOVE_ALL)); ctrlRemoveAll.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov FavoriteManager::getInstance()->addListener(this); SettingsManager::getInstance()->addListener(this); updateList(FavoriteManager::getInstance()->getRecentHubs()); const int l_sort = SETTING(HUBS_RECENTS_COLUMNS_SORT); int l_sort_type = ExListViewCtrl::SORT_STRING_NOCASE; if (l_sort == 2 || l_sort == 3) l_sort_type = ExListViewCtrl::SORT_INT; ctrlHubs.setSort(SETTING(HUBS_RECENTS_COLUMNS_SORT), l_sort_type , BOOLSETTING(HUBS_RECENTS_COLUMNS_SORT_ASC)); hubsMenu.CreatePopupMenu(); hubsMenu.AppendMenu(MF_STRING, IDC_CONNECT, CTSTRING(CONNECT)); hubsMenu.AppendMenu(MF_STRING, IDC_ADD, CTSTRING(ADD_TO_FAVORITES_HUBS)); hubsMenu.AppendMenu(MF_STRING, IDC_REM_AS_FAVORITE, CTSTRING(REMOVE_FROM_FAVORITES_HUBS)); hubsMenu.AppendMenu(MF_STRING, IDC_EDIT, CTSTRING(PROPERTIES)); hubsMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); hubsMenu.AppendMenu(MF_STRING, IDC_REMOVE_ALL, CTSTRING(REMOVE_ALL)); hubsMenu.SetMenuDefaultItem(IDC_CONNECT); bHandled = FALSE; return TRUE; }
LRESULT RSSNewsFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { // CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); //[-] SCALOlaz // ctrlStatus.Attach(m_hWndStatusBar); ctrlList.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_SINGLESEL, WS_EX_CLIENTEDGE, IDC_RSS); SET_EXTENDENT_LIST_VIEW_STYLE(ctrlList); ctrlList.SetImageList(g_fileImage.getIconList(), LVSIL_SMALL); SET_LIST_COLOR(ctrlList); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(RSS_COLUMNS_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(RSS_COLUMNS_WIDTHS), COLUMN_LAST); for (size_t j = 0; j < COLUMN_LAST; j++) { const int fmt = (j == COLUMN_DATE) ? LVCFMT_RIGHT : LVCFMT_LEFT; ctrlList.InsertColumn(j, TSTRING_I(rss_columnNames[j]), fmt, columnSizes[j], j); } ctrlList.setColumnOrderArray(COLUMN_LAST, columnIndexes); ctrlList.setVisible(SETTING(RSS_COLUMNS_VISIBLE)); // ctrlList.setSortColumn(COLUMN_DATE); // ctrlList.setAscending(false); ctrlList.setSortColumn(SETTING(RSS_COLUMNS_SORT)); ctrlList.setAscending(BOOLSETTING(RSS_COLUMNS_SORT_ASC)); ctrlRemoveAll.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_REMOVE_ALL); ctrlRemoveAll.SetWindowText(CTSTRING(CDM_CLEAR)); ctrlRemoveAll.SetFont(Fonts::g_systemFont); copyMenu.CreatePopupMenu(); copyMenu.AppendMenu(MF_STRING, IDC_COPY_URL, CTSTRING(RSS_URL)); copyMenu.AppendMenu(MF_STRING, IDC_COPY_ACTUAL_LINE, (CTSTRING(RSS_TITLE) + Text::toT(" + ") + CTSTRING(RSS_URL)).c_str()); UpdateLayout(); SettingsManager::getInstance()->addListener(this); RSSManager::getInstance()->addListener(this); RSSManager::updateFeeds(); updateList(RSSManager::lockNewsList()); RSSManager::unlockNewsList(); bHandled = FALSE; return TRUE; }
LRESULT FlyUpdateDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { SetWindowText(CTSTRING(AUTOUPDATE_TITLE)); GetDlgItem(IDC_STATICDESCRIPTION).SetWindowText(Text::toT(m_data).c_str()); CRect rc; ctrlCommands.Attach(GetDlgItem(IDC_UPDATE_FILES)); ctrlCommands.GetClientRect(rc); ctrlCommands.InsertColumn(0, CTSTRING(FILE), LVCFMT_LEFT, (rc.Width() / 8) * 5, 0); ctrlCommands.InsertColumn(1, CTSTRING(SIZE), LVCFMT_LEFT, rc.Width() / 6, 1); ctrlCommands.InsertColumn(2, CTSTRING(COMPRESSED), LVCFMT_LEFT, rc.Width() / 6, 2); SET_EXTENDENT_LIST_VIEW_STYLE(ctrlCommands); SET_LIST_COLOR(ctrlCommands); auto cnt = ctrlCommands.GetItemCount(); for (size_t i = 0; i < m_fileList.size(); i++) { ctrlCommands.insert(cnt++, Text::toT(m_fileList[i].m_sName).c_str()); ctrlCommands.SetItemText(i, 1, Text::toT(Util::formatBytes(m_fileList[i].m_size)).c_str()); ctrlCommands.SetItemText(i, 2, Text::toT(Util::formatBytes(m_fileList[i].m_packedSize)).c_str()); } GetDlgItem(IDOK).SetWindowText(CTSTRING(AUTOUPDATE_UPDATE_NOW_BUTTON)); GetDlgItem(IDC_IGNOREUPDATE).SetWindowText(CTSTRING(AUTOUPDATE_UPDATE_IGNORE_BUTTON)); GetDlgItem(IDCANCEL).SetWindowText(CTSTRING(AUTOUPDATE_UPDATE_CANCEL_BUTTON)); // TODO падаем на XP WinUtil::FillRichEditFromString((HWND)GetDlgItem(IDC_RTFDESCRIPTION), m_rtfData); // TODO please refactoring this to use unicode. m_UpdateIcon = (HICON)::LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_AUTOUPDATE), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR); SetIcon(m_UpdateIcon, FALSE); SetIcon(m_UpdateIcon, TRUE); // for Custom Themes Bitmap img_f.LoadFromResource(IDR_FLYLINK_PNG, _T("PNG")); // Leak? GetDlgItem(IDC_STATIC).SendMessage(STM_SETIMAGE, IMAGE_BITMAP, LPARAM((HBITMAP)img_f)); LRESULT lResult = GetDlgItem(IDC_RTFDESCRIPTION).SendMessage(EM_GETEVENTMASK, 0, 0); GetDlgItem(IDC_RTFDESCRIPTION).SendMessage(EM_SETEVENTMASK , 0, lResult | ENM_LINK); GetDlgItem(IDC_RTFDESCRIPTION).SendMessage(EM_AUTOURLDETECT, TRUE, 0); CenterWindow(GetParent()); return TRUE; }
LRESULT WaitingUsersFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { m_showTree = BOOLSETTING(UPLOADQUEUEFRAME_SHOW_TREE); // status bar CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); ctrlStatus.Attach(m_hWndStatusBar); m_ctrlList.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, WS_EX_CLIENTEDGE, IDC_UPLOAD_QUEUE); SET_EXTENDENT_LIST_VIEW_STYLE(m_ctrlList); ctrlQueued.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP, WS_EX_CLIENTEDGE, IDC_DIRECTORIES); ctrlQueued.SetImageList(g_fileImage.getIconList(), TVSIL_NORMAL); m_ctrlList.SetImageList(g_fileImage.getIconList(), LVSIL_SMALL); m_nProportionalPos = SETTING(UPLOADQUEUEFRAME_SPLIT); SetSplitterPanes(ctrlQueued.m_hWnd, m_ctrlList.m_hWnd); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(UPLOADQUEUEFRAME_ORDER), UploadQueueItem::COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(UPLOADQUEUEFRAME_WIDTHS), UploadQueueItem::COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == UploadQueueItem::COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == UploadQueueItem::COLUMN_LAST); // column names, sizes for (uint8_t j = 0; j < UploadQueueItem::COLUMN_LAST; j++) { const int fmt = (j == UploadQueueItem::COLUMN_TRANSFERRED || j == UploadQueueItem::COLUMN_SIZE) ? LVCFMT_RIGHT : LVCFMT_LEFT; m_ctrlList.InsertColumn(j, TSTRING_I(columnNames[j]), fmt, columnSizes[j], j); } m_ctrlList.setColumnOrderArray(UploadQueueItem::COLUMN_LAST, columnIndexes); m_ctrlList.setVisible(SETTING(UPLOADQUEUEFRAME_VISIBLE)); //ctrlList.setSortColumn(COLUMN_NICK); m_ctrlList.setSortColumn(SETTING(UPLOAD_QUEUE_COLUMNS_SORT)); m_ctrlList.setAscending(BOOLSETTING(UPLOAD_QUEUE_COLUMNS_SORT_ASC)); // colors SET_LIST_COLOR(m_ctrlList); ctrlQueued.SetBkColor(Colors::g_bgColor); ctrlQueued.SetTextColor(Colors::g_textColor); ctrlShowTree.Create(ctrlStatus.m_hWnd, rcDefault, _T("+/-"), WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN); ctrlShowTree.SetButtonStyle(BS_AUTOCHECKBOX, false); ctrlShowTree.SetCheck(m_showTree); ctrlShowTree.SetFont(Fonts::g_systemFont); showTreeContainer.SubclassWindow(ctrlShowTree.m_hWnd); memzero(statusSizes, sizeof(statusSizes)); statusSizes[0] = 16; ctrlStatus.SetParts(4, statusSizes); UpdateLayout(); UploadManager::getInstance()->addListener(this); SettingsManager::getInstance()->addListener(this); // Load all searches LoadAll(); create_timer(1000); bHandled = FALSE; return TRUE; }
LRESULT PublicHubsFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); ctrlStatus.Attach(m_hWndStatusBar); int w[3] = { 0, 0, 0 }; ctrlStatus.SetParts(3, w); m_ctrlHubs.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, // https://github.com/pavel-pimenov/flylinkdc-r5xx/issues/1611 WS_EX_CLIENTEDGE, IDC_HUBLIST); SET_EXTENDENT_LIST_VIEW_STYLE(m_ctrlHubs); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(PUBLICHUBSFRAME_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(PUBLICHUBSFRAME_WIDTHS), COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (int j = 0; j < COLUMN_LAST; j++) { const int fmt = (j == COLUMN_USERS) ? LVCFMT_RIGHT : LVCFMT_LEFT; m_ctrlHubs.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); } m_ctrlHubs.SetColumnOrderArray(COLUMN_LAST, columnIndexes); SET_LIST_COLOR(m_ctrlHubs); m_ctrlHubs.SetImageList(g_flagImage.getIconList(), LVSIL_SMALL); /* extern HIconWrapper g_hOfflineIco; extern HIconWrapper g_hOnlineIco; m_onlineStatusImg.Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 2); m_onlineStatusImg.AddIcon(g_hOnlineIco); m_onlineStatusImg.AddIcon(g_hOfflineIco); m_ctrlHubs.SetImageList(m_onlineStatusImg, LVSIL_SMALL); */ ClientManager::getOnlineClients(m_onlineHubs); m_ctrlHubs.SetFocus(); m_ctrlTree.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES | TVS_SHOWSELALWAYS | TVS_DISABLEDRAGDROP, WS_EX_CLIENTEDGE, IDC_ISP_TREE); m_ctrlTree.SetBkColor(Colors::g_bgColor); m_ctrlTree.SetTextColor(Colors::g_textColor); WinUtil::SetWindowThemeExplorer(m_ctrlTree.m_hWnd); m_treeContainer.SubclassWindow(m_ctrlTree); SetSplitterExtendedStyle(SPLIT_PROPORTIONAL); // При изменении размеров окна-контейнера размеры разделяемых областей меняются пропорционально. SetSplitterPanes(m_ctrlTree.m_hWnd, m_ctrlHubs.m_hWnd); m_nProportionalPos = SETTING(FLYSERVER_HUBLIST_SPLIT); ctrlConfigure.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_PUB_LIST_CONFIG); ctrlConfigure.SetWindowText(CTSTRING(CONFIGURE)); ctrlConfigure.SetFont(Fonts::g_systemFont); ctrlFilter.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | ES_AUTOHSCROLL, WS_EX_CLIENTEDGE); m_filterContainer.SubclassWindow(ctrlFilter.m_hWnd); ctrlFilter.SetFont(Fonts::g_systemFont); ctrlFilterSel.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | CBS_DROPDOWNLIST, WS_EX_CLIENTEDGE); ctrlFilterSel.SetFont(Fonts::g_systemFont, FALSE); //populate the filter list with the column names for (int j = 0; j < COLUMN_LAST; j++) { ctrlFilterSel.AddString(CTSTRING_I(columnNames[j])); } ctrlFilterSel.AddString(CTSTRING(ANY)); ctrlFilterSel.SetCurSel(COLUMN_LAST); ctrlFilterDesc.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_GROUPBOX, WS_EX_TRANSPARENT); ctrlFilterDesc.SetWindowText(CTSTRING(FILTER)); ctrlFilterDesc.SetFont(Fonts::g_systemFont); SettingsManager::getInstance()->addListener(this); updateList(); loadISPHubs(); m_ctrlHubs.setSort(COLUMN_USERS, ExListViewCtrl::SORT_INT, false); /* const int l_sort = SETTING(HUBS_PUBLIC_COLUMNS_SORT); int l_sort_type = ExListViewCtrl::SORT_STRING_NOCASE; if (l_sort == 2 || l_sort > 4) l_sort_type = ExListViewCtrl::SORT_INT; if (l_sort == 5) l_sort_type = ExListViewCtrl::SORT_BYTES; m_ctrlHubs.setSort(SETTING(HUBS_PUBLIC_COLUMNS_SORT), l_sort_type, BOOLSETTING(HUBS_PUBLIC_COLUMNS_SORT_ASC)); */ hubsMenu.CreatePopupMenu(); hubsMenu.AppendMenu(MF_STRING, IDC_CONNECT, CTSTRING(CONNECT)); hubsMenu.AppendMenu(MF_STRING, IDC_ADD, CTSTRING(ADD_TO_FAVORITES_HUBS)); hubsMenu.AppendMenu(MF_STRING, IDC_REM_AS_FAVORITE, CTSTRING(REMOVE_FROM_FAVORITES_HUBS)); hubsMenu.AppendMenu(MF_STRING, IDC_COPY_HUB, CTSTRING(COPY_HUB)); hubsMenu.SetMenuDefaultItem(IDC_CONNECT); bHandled = FALSE; return TRUE; }
LRESULT UsersFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { // CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); //[-] SCALOlaz // ctrlStatus.Attach(m_hWndStatusBar); ctrlUsers.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, WS_EX_CLIENTEDGE, IDC_USERS); SET_EXTENDENT_LIST_VIEW_STYLE_WITH_CHECK(ctrlUsers); ResourceLoader::LoadImageList(IDR_FAV_USERS_STATES, images, 16, 16); ctrlUsers.SetImageList(images, LVSIL_SMALL); SET_LIST_COLOR(ctrlUsers); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(USERSFRAME_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(USERSFRAME_WIDTHS), COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (int j = 0; j < COLUMN_LAST; j++) { ctrlUsers.InsertColumn(j, TSTRING_I(columnNames[j]), LVCFMT_LEFT, columnSizes[j], j); } ctrlUsers.setColumnOrderArray(COLUMN_LAST, columnIndexes); ctrlUsers.setVisible(SETTING(USERSFRAME_VISIBLE)); // !SMT!-UI //ctrlUsers.setSortColumn(COLUMN_NICK); ctrlUsers.setSortColumn(SETTING(USERS_COLUMNS_SORT)); ctrlUsers.setAscending(BOOLSETTING(USERS_COLUMNS_SORT_ASC)); // [-] brain-ripper // Make menu dynamic (in context menu handler), since its content depends of which // user selected (for add/remove favorites item) /* usersMenu.CreatePopupMenu(); usersMenu.AppendMenu(MF_STRING, IDC_EDIT, CTSTRING(PROPERTIES)); usersMenu.AppendMenu(MF_STRING, IDC_SUPER_USER, CTSTRING(SUPER_USER)); usersMenu.AppendMenu(MF_POPUP, (UINT_PTR)(HMENU)WinUtil::speedMenu, CTSTRING(UPLOAD_SPEED_LIMIT)); // !SMT!-S usersMenu.AppendMenu(MF_POPUP, (UINT_PTR)(HMENU)WinUtil::privateMenu, CTSTRING(IGNORE_PRIVATE)); // !SMT!-PSW usersMenu.AppendMenu(MF_STRING, IDC_OPEN_USER_LOG, CTSTRING(OPEN_USER_LOG)); usersMenu.AppendMenu(MF_SEPARATOR); appendUserItems(usersMenu, Util::emptyString); // TODO: hubhint usersMenu.AppendMenu(MF_SEPARATOR); usersMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); */ FavoriteManager::getInstance()->addListener(this); SettingsManager::getInstance()->addListener(this); CLockRedraw<> l_lock_draw(ctrlUsers); { FavoriteManager::LockInstanceUsers lockedInstance; const auto& l_fav_users = lockedInstance.getFavoriteUsersL(); for (auto i = l_fav_users.cbegin(); i != l_fav_users.cend(); ++i) { addUser(i->second); } } startup = false; bHandled = FALSE; return TRUE; }
LRESULT SpyFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); ctrlStatus.Attach(m_hWndStatusBar); ctrlSearches.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL, WS_EX_CLIENTEDGE, IDC_RESULTS); SET_EXTENDENT_LIST_VIEW_STYLE(ctrlSearches); SET_LIST_COLOR(ctrlSearches); m_ctrlIgnoreTTH.Create(ctrlStatus.m_hWnd, rcDefault, CTSTRING(IGNORE_TTH_SEARCHES), WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN); m_ctrlIgnoreTTH.SetButtonStyle(BS_AUTOCHECKBOX, false); m_ctrlIgnoreTTH.SetFont(Fonts::g_systemFont); m_ctrlIgnoreTTH.SetCheck(m_ignoreTTH); m_ignoreTTHContainer.SubclassWindow(m_ctrlIgnoreTTH.m_hWnd); m_ctrlShowNick.Create(ctrlStatus.m_hWnd, rcDefault, CTSTRING(SETTINGS_SHOW_SEEKERS_IN_SPY_FRAME), WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN); m_ctrlShowNick.SetButtonStyle(BS_AUTOCHECKBOX, false); m_ctrlShowNick.SetFont(Fonts::g_systemFont); m_ctrlShowNick.SetCheck(m_showNick); m_ShowNickContainer.SubclassWindow(m_ctrlShowNick.m_hWnd); const tstring l_log_path = Text::toT(Util::validateFileName(SETTING(LOG_DIRECTORY) + "spylog.log")); const tstring l_check_box_log_caption = TSTRING(SETTINGS_LOG_FILE_IN_SPY_FRAME) + _T(" (") + l_log_path + _T(" )"); m_ctrlSpyLogFile.Create(ctrlStatus.m_hWnd, rcDefault, l_check_box_log_caption.c_str(), WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN); m_ctrlSpyLogFile.SetButtonStyle(BS_AUTOCHECKBOX, false); m_ctrlSpyLogFile.SetFont(Fonts::g_systemFont); m_ctrlSpyLogFile.SetCheck(m_LogFile); m_SpyLogFileContainer.SubclassWindow(m_ctrlSpyLogFile.m_hWnd); WinUtil::splitTokens(columnIndexes, SETTING(SPYFRAME_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(SPYFRAME_WIDTHS), COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (int j = 0; j < COLUMN_LAST; j++) { const int fmt = (j == COLUMN_COUNT) ? LVCFMT_RIGHT : LVCFMT_LEFT; ctrlSearches.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); } //ctrlSearches.setSort(COLUMN_COUNT, ExListViewCtrl::SORT_INT, false); //ctrlSearches.setVisible(SETTING(SPYFRAME_VISIBLE)); // !SMT!-UI ctrlSearches.setSort(SETTING(SEARCH_SPY_COLUMNS_SORT), ExListViewCtrl::SORT_INT, BOOLSETTING(SEARCH_SPY_COLUMNS_SORT_ASC)); ShareManager::setHits(0); if (m_LogFile) { try { m_log = new File(l_log_path, File::WRITE, File::OPEN | File::CREATE); m_log->setEndPos(0); if (m_log->getPos() == 0) m_log->write("\xef\xbb\xbf"); } catch (const FileException& e) { LogManager::message("Error create file " + Text::fromT(l_log_path) + " error = " + e.getError()); safe_delete(m_log); } } //[~]IRainman refactoring SpyFrame create_timer(1000); ClientManager::g_isSpyFrame = true; bHandled = FALSE; return 1; }
LRESULT FavoriteHubsFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { ctrlHubs.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS, WS_EX_CLIENTEDGE, IDC_HUBLIST); SET_EXTENDENT_LIST_VIEW_STYLE_WITH_CHECK(ctrlHubs); SET_LIST_COLOR(ctrlHubs); ctrlHubs.EnableGroupView(TRUE); LVGROUPMETRICS metrics = {0}; metrics.cbSize = sizeof(metrics); metrics.mask = LVGMF_TEXTCOLOR; metrics.crHeader = SETTING(TEXT_GENERAL_FORE_COLOR); ctrlHubs.SetGroupMetrics(&metrics); // Create listview columns WinUtil::splitTokens(columnIndexes, SETTING(FAVORITESFRAME_ORDER), COLUMN_LAST); WinUtil::splitTokensWidth(columnSizes, SETTING(FAVORITESFRAME_WIDTHS), COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnSizes) == COLUMN_LAST); BOOST_STATIC_ASSERT(_countof(columnNames) == COLUMN_LAST); for (int j = 0; j < COLUMN_LAST; j++) { const int fmt = LVCFMT_LEFT; ctrlHubs.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); } ctrlHubs.SetColumnOrderArray(COLUMN_LAST, columnIndexes); //ctrlHubs.setVisible(SETTING(FAVORITESFRAME_VISIBLE)); // !SMT!-UI ctrlHubs.setSort(SETTING(HUBS_FAVORITES_COLUMNS_SORT), ExListViewCtrl::SORT_STRING_NOCASE, BOOLSETTING(HUBS_FAVORITES_COLUMNS_SORT_ASC)); ctrlConnect.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_CONNECT); ctrlConnect.SetWindowText(CTSTRING(CONNECT)); ctrlConnect.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlNew.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_NEWFAV); ctrlNew.SetWindowText(CTSTRING(NEW)); ctrlNew.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlProps.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_EDIT); ctrlProps.SetWindowText(CTSTRING(PROPERTIES)); ctrlProps.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlRemove.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_REMOVE); ctrlRemove.SetWindowText(CTSTRING(REMOVE)); ctrlRemove.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlUp.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_MOVE_UP); ctrlUp.SetWindowText(CTSTRING(MOVE_UP)); ctrlUp.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlDown.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_MOVE_DOWN); ctrlDown.SetWindowText(CTSTRING(MOVE_DOWN)); ctrlDown.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov ctrlManageGroups.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | BS_PUSHBUTTON , 0, IDC_MANAGE_GROUPS); ctrlManageGroups.SetWindowText(CTSTRING(MANAGE_GROUPS)); ctrlManageGroups.SetFont(Fonts::g_systemFont); // [~] Sergey Shuhskanov m_onlineStatusImg.Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 2); m_onlineStatusImg.AddIcon(g_hOnlineIco); m_onlineStatusImg.AddIcon(g_hOfflineIco); ctrlHubs.SetImageList(m_onlineStatusImg, LVSIL_SMALL); ClientManager::getOnlineClients(m_onlineHubs); FavoriteManager::getInstance()->addListener(this); SettingsManager::getInstance()->addListener(this); ClientManager::getInstance()->addListener(this); #ifdef IRAINMAN_ENABLE_CON_STATUS_ON_FAV_HUBS create_timer(1000 * 60); #endif fillList(); hubsMenu.CreatePopupMenu(); hubsMenu.AppendMenu(MF_STRING, IDC_OPEN_HUB_LOG, CTSTRING(OPEN_HUB_LOG)); hubsMenu.AppendMenu(MF_SEPARATOR); hubsMenu.AppendMenu(MF_STRING, IDC_CONNECT, CTSTRING(CONNECT)); hubsMenu.AppendMenu(MF_STRING, IDC_NEWFAV, CTSTRING(NEW)); hubsMenu.AppendMenu(MF_STRING, IDC_MOVE_UP, CTSTRING(MOVE_UP)); hubsMenu.AppendMenu(MF_STRING, IDC_MOVE_DOWN, CTSTRING(MOVE_DOWN)); hubsMenu.AppendMenu(MF_SEPARATOR); hubsMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); hubsMenu.AppendMenu(MF_SEPARATOR); hubsMenu.AppendMenu(MF_STRING, IDC_EDIT, CTSTRING(PROPERTIES)); hubsMenu.SetMenuDefaultItem(IDC_CONNECT); m_nosave = false; bHandled = FALSE; return TRUE; }