void CServerWnd::Localize() { serverlistctrl.Localize(); serverlistctrl.ShowServerCount(); GetDlgItem(IDC_LOGRESET)->SetWindowText(GetResString(IDS_PW_RESET)); m_ctrlMyInfoFrm.SetWindowText(GetResString(IDS_MYINFO)); TCITEM item; CString name; name = GetResString(IDS_SV_SERVERINFO); name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneServerInfo, &item); name = GetResString(IDS_SV_LOG); name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneLog, &item); name = SZ_DEBUG_LOG_TITLE; name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneVerboseLog, &item); UpdateLogTabSelection(); }
void CServerWnd::Localize() { serverlistctrl.Localize(); serverlistctrl.ShowServerCount(); m_ctrlNewServerFrm.SetWindowText(GetResString(IDS_SV_NEWSERVER)); GetDlgItem(IDC_SSTATIC4)->SetWindowText(GetResString(IDS_SV_ADDRESS)); GetDlgItem(IDC_SSTATIC7)->SetWindowText(GetResString(IDS_SV_PORT)); GetDlgItem(IDC_SSTATIC3)->SetWindowText(GetResString(IDS_SW_NAME)); GetDlgItem(IDC_ADDSERVER)->SetWindowText(GetResString(IDS_SV_ADD)); m_ctrlUpdateServerFrm.SetWindowText(GetResString(IDS_SV_MET)); // >> add by Ken GetDlgItem(IDC_SERVER_LISTS)->SetWindowText(GetResString(IDS_SERVER_LISTS)); // << add by Ken GetDlgItem(IDC_UPDATESERVERMETFROMURL)->SetWindowText(GetResString(IDS_SV_UPDATE)); GetDlgItem(IDC_LOGRESET)->SetWindowText(GetResString(IDS_PW_RESET)); m_ctrlMyInfoFrm.SetWindowText(GetResString(IDS_MYINFO)); TCITEM item; CString name; name = GetResString(IDS_SV_SERVERINFO); name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneServerInfo, &item); name = GetResString(IDS_SV_LOG); name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneLog, &item); name = SZ_DEBUG_LOG_TITLE; name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneVerboseLog, &item); //Xman Anti-Leecher-Log name = GetResString(IDS_LEERCHERLOGTITLE); name.Replace(_T("&"), _T("&&")); item.mask = TCIF_TEXT; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); StatusSelector.SetItem(PaneLeecherLog, &item); //Xman end UpdateLogTabSelection(); UpdateControlsState(); }
void CServerWnd::OnTcnSelchangeTab3(NMHDR* /*pNMHDR*/, LRESULT* pResult) { UpdateLogTabSelection(); *pResult = 0; }
BOOL CServerWnd::OnInitDialog() { if (theApp.m_fontLog.m_hObject == NULL) { CFont* pFont = GetDlgItem(IDC_SSTATIC)->GetFont(); LOGFONT lf; pFont->GetObject(sizeof lf, &lf); theApp.m_fontLog.CreateFontIndirect(&lf); } ReplaceRichEditCtrl(GetDlgItem(IDC_MYINFOLIST), this, GetDlgItem(IDC_SSTATIC)->GetFont()); CResizableDialog::OnInitDialog(); // using ES_NOHIDESEL is actually not needed, but it helps to get around a tricky window update problem! // If that style is not specified there are troubles with right clicking into the control for the very first time!? #define LOG_PANE_RICHEDIT_STYLES WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_READONLY | ES_NOHIDESEL CRect rect; GetDlgItem(IDC_SERVMSG)->GetWindowRect(rect); GetDlgItem(IDC_SERVMSG)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (servermsgbox->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_SERVMSG)){ servermsgbox->SetProfileSkinKey(_T("ServerInfoLog")); servermsgbox->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); servermsgbox->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); servermsgbox->SetEventMask(servermsgbox->GetEventMask() | ENM_LINK); servermsgbox->SetFont(&theApp.m_fontHyperText); servermsgbox->ApplySkin(); servermsgbox->SetTitle(GetResString(IDS_SV_SERVERINFO)); //Xman ModID /* servermsgbox->AppendText(_T("eMule v") + theApp.m_strCurVersionLong + _T("\n")); */ // ==> ModID [itsonlyme/SiRoB] - Stulle /* servermsgbox->AppendText(_T("eMule v") + theApp.m_strCurVersionLong + _T(" [") + MOD_VERSION + _T("]") + _T("\n")); */ servermsgbox->AppendText(_T("eMule v") + theApp.m_strCurVersionLong + _T(" [") + theApp.m_strModLongVersion + _T("]\n")); // <== ModID [itsonlyme/SiRoB] - Stulle //Xman end // MOD Note: Do not remove this part - Merkur m_strClickNewVersion = GetResString(IDS_EMULEW) + _T(" ") + GetResString(IDS_EMULEW3) + _T(" ") + GetResString(IDS_EMULEW2); servermsgbox->AppendHyperLink(_T(""), _T(""), m_strClickNewVersion, _T("")); // MOD Note: end //Xman versions check // ==> Removed Xtreme version check [Stulle] - Stulle /* servermsgbox->AppendText(_T("\n")); m_strClickNewXtremeVersion=_T("Click to check for new Xtreme-Version"); servermsgbox->AppendHyperLink(_T(""),_T(""),m_strClickNewXtremeVersion,_T("")); */ // <== Removed Xtreme version check [Stulle] - Stulle //Xman end servermsgbox->AppendText(_T("\n\n")); } GetDlgItem(IDC_LOGBOX)->GetWindowRect(rect); GetDlgItem(IDC_LOGBOX)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (logbox->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_LOGBOX)){ logbox->SetProfileSkinKey(_T("Log")); logbox->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); logbox->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); if (theApp.m_fontLog.m_hObject) logbox->SetFont(&theApp.m_fontLog); logbox->ApplySkin(); logbox->SetTitle(GetResString(IDS_SV_LOG)); logbox->SetAutoURLDetect(FALSE); } GetDlgItem(IDC_DEBUG_LOG)->GetWindowRect(rect); GetDlgItem(IDC_DEBUG_LOG)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (debuglog->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_DEBUG_LOG)){ debuglog->SetProfileSkinKey(_T("VerboseLog")); debuglog->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); debuglog->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); if (theApp.m_fontLog.m_hObject) debuglog->SetFont(&theApp.m_fontLog); debuglog->ApplySkin(); debuglog->SetTitle(SZ_DEBUG_LOG_TITLE); debuglog->SetAutoURLDetect(FALSE); } //Xman Anti-Leecher-Log GetDlgItem(IDC_LEECHERLOG)->GetWindowRect(rect); GetDlgItem(IDC_LEECHERLOG)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (leecherlog->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_LEECHERLOG)){ leecherlog->SetProfileSkinKey(_T("VerboseLog")); leecherlog->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); leecherlog->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); if (theApp.m_fontLog.m_hObject) leecherlog->SetFont(&theApp.m_fontLog); leecherlog->ApplySkin(); leecherlog->SetTitle(GetResString(IDS_LEERCHERLOGTITLE)); leecherlog->SetAutoURLDetect(FALSE); } //Xman end OnBackcolor(); // Design Settings [eWombat/Stulle] - Max SetAllIcons(); Localize(); serverlistctrl.Init(); ((CEdit*)GetDlgItem(IDC_SPORT))->SetLimitText(5); GetDlgItem(IDC_SPORT)->SetWindowText(_T("4661")); TCITEM newitem; CString name; name = GetResString(IDS_SV_SERVERINFO); name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 1; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneServerInfo ); name = GetResString(IDS_SV_LOG); name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 0; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneLog ); name = SZ_DEBUG_LOG_TITLE; name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 0; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneVerboseLog ); //Xman Anti-Leecher-Log name=GetResString(IDS_LEERCHERLOGTITLE); name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT|TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 0; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneLeecherLog ); //Xman end AddAnchor(IDC_SERVLST_ICO, TOP_LEFT); AddAnchor(IDC_SERVLIST_TEXT, TOP_LEFT); AddAnchor(serverlistctrl, TOP_LEFT, MIDDLE_RIGHT); AddAnchor(m_ctrlNewServerFrm, TOP_RIGHT); AddAnchor(IDC_SSTATIC4, TOP_RIGHT); AddAnchor(IDC_SSTATIC7, TOP_RIGHT); AddAnchor(IDC_IPADDRESS, TOP_RIGHT); AddAnchor(IDC_SSTATIC3, TOP_RIGHT); AddAnchor(IDC_SNAME, TOP_RIGHT); AddAnchor(IDC_ADDSERVER, TOP_RIGHT); AddAnchor(IDC_SSTATIC5, TOP_RIGHT); AddAnchor(m_ctrlMyInfoFrm, TOP_RIGHT, BOTTOM_RIGHT); AddAnchor(m_MyInfo, TOP_RIGHT, BOTTOM_RIGHT); AddAnchor(IDC_SPORT, TOP_RIGHT); AddAnchor(m_ctrlUpdateServerFrm, TOP_RIGHT); AddAnchor(IDC_SERVERMETURL, TOP_RIGHT); AddAnchor(IDC_UPDATESERVERMETFROMURL, TOP_RIGHT); AddAnchor(IDC_SERVER_LISTS, TOP_RIGHT); // Links for Server list and nodes file [Stulle] - Stulle AddAnchor(StatusSelector, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_LOGRESET, MIDDLE_RIGHT); // avoid resizing GUI glitches with the tab control by adding this control as the last one (Z-order) AddAnchor(IDC_ED2KCONNECT, TOP_RIGHT); AddAnchor(IDC_DD, TOP_RIGHT); // The resizing of those log controls (rich edit controls) works 'better' when added as last anchors (?) AddAnchor(*servermsgbox, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(*logbox, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(*debuglog, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(*leecherlog, MIDDLE_LEFT, BOTTOM_RIGHT); //Xman Anti-Leecher-Log // Set the tab control to the bottom of the z-order. This solves a lot of strange repainting problems with // the rich edit controls (the log panes). ::SetWindowPos(StatusSelector, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOSIZE); debug = true; ToggleDebugWindow(); leecherlog->ShowWindow(SW_HIDE); //Xman Anti-Leecher-Log debuglog->ShowWindow(SW_HIDE); logbox->ShowWindow(SW_HIDE); servermsgbox->ShowWindow(SW_SHOW); // optional: restore last used log pane if (thePrefs.GetRestoreLastLogPane()) { if (thePrefs.GetLastLogPaneID() >= 0 && thePrefs.GetLastLogPaneID() < StatusSelector.GetItemCount()) { int iCurSel = StatusSelector.GetCurSel(); StatusSelector.SetCurSel(thePrefs.GetLastLogPaneID()); if (thePrefs.GetLastLogPaneID() == StatusSelector.GetCurSel()) UpdateLogTabSelection(); else StatusSelector.SetCurSel(iCurSel); } } m_MyInfo.SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); m_MyInfo.SetAutoURLDetect(); m_MyInfo.SetEventMask(m_MyInfo.GetEventMask() | ENM_LINK); PARAFORMAT pf = {0}; pf.cbSize = sizeof pf; if (m_MyInfo.GetParaFormat(pf)){ pf.dwMask |= PFM_TABSTOPS; pf.cTabCount = 4; pf.rgxTabs[0] = 900; pf.rgxTabs[1] = 1000; pf.rgxTabs[2] = 1100; pf.rgxTabs[3] = 1200; m_MyInfo.SetParaFormat(pf); } m_cfDef.cbSize = sizeof m_cfDef; if (m_MyInfo.GetSelectionCharFormat(m_cfDef)){ m_cfBold = m_cfDef; m_cfBold.dwMask |= CFM_BOLD; m_cfBold.dwEffects |= CFE_BOLD; } if (thePrefs.GetUseAutocompletion()){ m_pacServerMetURL = new CCustomAutoComplete(); m_pacServerMetURL->AddRef(); if (m_pacServerMetURL->Bind(::GetDlgItem(m_hWnd, IDC_SERVERMETURL), ACO_UPDOWNKEYDROPSLIST | ACO_AUTOSUGGEST | ACO_FILTERPREFIXES )) m_pacServerMetURL->LoadList(thePrefs.GetMuleDirectory(EMULE_CONFIGDIR) + SERVERMET_STRINGS_PROFILE); if (theApp.m_fontSymbol.m_hObject){ GetDlgItem(IDC_DD)->SetFont(&theApp.m_fontSymbol); GetDlgItem(IDC_DD)->SetWindowText(_T("6")); // show a down-arrow } } else GetDlgItem(IDC_DD)->ShowWindow(SW_HIDE); InitWindowStyles(this); // splitter CRect rcSpl; rcSpl.left = 55; rcSpl.right = 300; rcSpl.top = 55; rcSpl.bottom = rcSpl.top + SVWND_SPLITTER_HEIGHT; m_wndSplitter.Create(WS_CHILD | WS_VISIBLE, rcSpl, this, IDC_SPLITTER_SERVER); m_wndSplitter.SetDrawBorder(true); InitSplitter(); return true; }
void CServerWnd::Localize() { serverlistctrl.Localize(); if (thePrefs.GetLanguageID() != m_uLangID){ m_uLangID = thePrefs.GetLanguageID(); GetDlgItem(IDC_SERVLIST_TEXT)->SetWindowText(GetResString(IDS_SV_SERVERLIST)); m_ctrlNewServerFrm.SetWindowText(GetResString(IDS_SV_NEWSERVER)); GetDlgItem(IDC_SSTATIC4)->SetWindowText(GetResString(IDS_SV_ADDRESS)); GetDlgItem(IDC_SSTATIC7)->SetWindowText(GetResString(IDS_SV_PORT)); GetDlgItem(IDC_SSTATIC3)->SetWindowText(GetResString(IDS_SW_NAME)); GetDlgItem(IDC_ADDSERVER)->SetWindowText(GetResString(IDS_SV_ADD)); m_ctrlUpdateServerFrm.SetWindowText(GetResString(IDS_SV_MET)); GetDlgItem(IDC_UPDATESERVERMETFROMURL)->SetWindowText(GetResString(IDS_SV_UPDATE)); GetDlgItem(IDC_LOGRESET)->SetWindowText(GetResString(IDS_PW_RESET)); m_ctrlMyInfoFrm.SetWindowText(GetResString(IDS_NETWORK_INFO)); TCITEM item; CString name; name = GetResString(IDS_SV_SERVERINFO); item.mask = TCIF_TEXT|TCIF_IMAGE|TCIF_PARAM; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); item.iImage = 1; item.lParam = PaneServerInfo; StatusSelector.SetItem(PaneServerInfo, &item); name = GetResString(IDS_SV_LOG); item.mask = TCIF_TEXT|TCIF_IMAGE|TCIF_PARAM; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); item.iImage = 0; item.lParam = PaneLog; StatusSelector.SetItem(PaneLog, &item); TCITEM itemtoLocal; itemtoLocal.mask = TCIF_PARAM; StatusSelector.GetItem(2,&itemtoLocal); if( itemtoLocal.lParam==PaneVerboseLog ) { name = SZ_DEBUG_LOG_TITLE; item.mask = TCIF_TEXT|TCIF_IMAGE|TCIF_PARAM; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); item.iImage = 0; item.lParam = PaneVerboseLog; StatusSelector.SetItem(2, &item); } else if( itemtoLocal.lParam==PaneLeecherLog ) { //Xman Anti-Leecher-Log name = GetResString(IDS_LEERCHERLOGTITLE); item.mask = TCIF_TEXT|TCIF_IMAGE|TCIF_PARAM; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); item.lParam = PaneLeecherLog; item.iImage = 2; StatusSelector.SetItem(2, &item); //Xman end } if( StatusSelector.GetItemCount()==4 ) { //Xman Anti-Leecher-Log name = GetResString(IDS_LEERCHERLOGTITLE); item.mask = TCIF_TEXT|TCIF_IMAGE|TCIF_PARAM; item.pszText = const_cast<LPTSTR>((LPCTSTR)name); item.lParam = PaneLeecherLog; item.iImage = 2; StatusSelector.SetItem(3, &item); //Xman end } } UpdateLogTabSelection(); UpdateControlsState(); }
BOOL CServerWnd::OnInitDialog() { if (theApp.m_fontLog.m_hObject == NULL) { CFont* pFont = GetDlgItem(IDC_MYINFO)->GetFont(); LOGFONT lf; pFont->GetObject(sizeof lf, &lf); theApp.m_fontLog.CreateFontIndirect(&lf); } ReplaceRichEditCtrl(GetDlgItem(IDC_MYINFOLIST), this, GetDlgItem(IDC_MYINFO)->GetFont()); CResizableDialog::OnInitDialog(); // using ES_NOHIDESEL is actually not needed, but it helps to get around a tricky window update problem! // If that style is not specified there are troubles with right clicking into the control for the very first time!? #define LOG_PANE_RICHEDIT_STYLES WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_READONLY | ES_NOHIDESEL CRect rect; GetDlgItem(IDC_SERVMSG)->GetWindowRect(rect); GetDlgItem(IDC_SERVMSG)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (servermsgbox->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_SERVMSG)){ servermsgbox->SetProfileSkinKey(_T("ServerInfoLog")); servermsgbox->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); servermsgbox->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); servermsgbox->SetEventMask(servermsgbox->GetEventMask() | ENM_LINK); servermsgbox->SetFont(&theApp.m_fontHyperText); servermsgbox->ApplySkin(); servermsgbox->SetTitle(GetResString(IDS_SV_SERVERINFO)); /* ismod: mod version servermsgbox->AppendText(_T("eMule v") + theApp.m_strCurVersionLong + _T("\n")); */ servermsgbox->AppendText(_T("eMule v") + theApp.m_strCurVersionLong + _T(" ") + theApp.m_strCurVersionLongMod + _T("\n")); // MOD Note: Do not remove this part - Merkur /* ismod: no new version check m_strClickNewVersion = GetResString(IDS_EMULEW) + _T(" ") + GetResString(IDS_EMULEW3) + _T(" ") + GetResString(IDS_EMULEW2); servermsgbox->AppendHyperLink(_T(""), _T(""), m_strClickNewVersion, _T("")); */ // MOD Note: end servermsgbox->AppendText(_T("\n\n")); // ismod: ed2k club link m_strED2kClub = _T("Посетить Клуб \"Ословеды\""); servermsgbox->AppendHyperLink(_T(""), _T(""), m_strED2kClub, _T("")); servermsgbox->AppendText(_T("\n\n")); } GetDlgItem(IDC_LOGBOX)->GetWindowRect(rect); GetDlgItem(IDC_LOGBOX)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (logbox->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_LOGBOX)){ logbox->SetProfileSkinKey(_T("Log")); logbox->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); logbox->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); if (theApp.m_fontLog.m_hObject) logbox->SetFont(&theApp.m_fontLog); logbox->ApplySkin(); logbox->SetTitle(GetResString(IDS_SV_LOG)); logbox->SetAutoURLDetect(FALSE); } GetDlgItem(IDC_DEBUG_LOG)->GetWindowRect(rect); GetDlgItem(IDC_DEBUG_LOG)->DestroyWindow(); ::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rect, 2); if (debuglog->Create(LOG_PANE_RICHEDIT_STYLES, rect, this, IDC_DEBUG_LOG)){ debuglog->SetProfileSkinKey(_T("VerboseLog")); debuglog->ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_FRAMECHANGED); debuglog->SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); if (theApp.m_fontLog.m_hObject) debuglog->SetFont(&theApp.m_fontLog); debuglog->ApplySkin(); debuglog->SetTitle(SZ_DEBUG_LOG_TITLE); debuglog->SetAutoURLDetect(FALSE); } SetAllIcons(); Localize(); serverlistctrl.Init(); TCITEM newitem; CString name; name = GetResString(IDS_SV_SERVERINFO); name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 1; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneServerInfo ); name = GetResString(IDS_SV_LOG); name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 0; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneLog ); name = SZ_DEBUG_LOG_TITLE; name.Replace(_T("&"), _T("&&")); newitem.mask = TCIF_TEXT | TCIF_IMAGE; newitem.pszText = const_cast<LPTSTR>((LPCTSTR)name); newitem.iImage = 0; VERIFY( StatusSelector.InsertItem(StatusSelector.GetItemCount(), &newitem) == PaneVerboseLog ); AddAnchor(IDC_SERVLST_ICO, TOP_LEFT); AddAnchor(IDC_SERVLIST_TEXT, TOP_LEFT); AddAnchor(serverlistctrl, TOP_LEFT, MIDDLE_RIGHT); AddAnchor(m_ctrlMyInfoFrm, TOP_RIGHT, BOTTOM_RIGHT); AddAnchor(m_MyInfo, TOP_RIGHT, BOTTOM_RIGHT); AddAnchor(StatusSelector, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(IDC_LOGRESET, MIDDLE_RIGHT); // avoid resizing GUI glitches with the tab control by adding this control as the last one (Z-order) // The resizing of those log controls (rich edit controls) works 'better' when added as last anchors (?) AddAnchor(*servermsgbox, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(*logbox, MIDDLE_LEFT, BOTTOM_RIGHT); AddAnchor(*debuglog, MIDDLE_LEFT, BOTTOM_RIGHT); // Set the tab control to the bottom of the z-order. This solves a lot of strange repainting problems with // the rich edit controls (the log panes). ::SetWindowPos(StatusSelector, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOSIZE); debug = true; ToggleDebugWindow(); debuglog->ShowWindow(SW_HIDE); logbox->ShowWindow(SW_HIDE); servermsgbox->ShowWindow(SW_SHOW); // optional: restore last used log pane if (thePrefs.GetRestoreLastLogPane()) { if (thePrefs.GetLastLogPaneID() >= 0 && thePrefs.GetLastLogPaneID() < StatusSelector.GetItemCount()) { int iCurSel = StatusSelector.GetCurSel(); StatusSelector.SetCurSel(thePrefs.GetLastLogPaneID()); if (thePrefs.GetLastLogPaneID() == StatusSelector.GetCurSel()) UpdateLogTabSelection(); else StatusSelector.SetCurSel(iCurSel); } } m_MyInfo.SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(3, 3)); m_MyInfo.SetAutoURLDetect(); m_MyInfo.SetEventMask(m_MyInfo.GetEventMask() | ENM_LINK); PARAFORMAT pf = {0}; pf.cbSize = sizeof pf; if (m_MyInfo.GetParaFormat(pf)){ pf.dwMask |= PFM_TABSTOPS; pf.cTabCount = 4; pf.rgxTabs[0] = 900; pf.rgxTabs[1] = 1000; pf.rgxTabs[2] = 1100; pf.rgxTabs[3] = 1200; m_MyInfo.SetParaFormat(pf); } m_cfDef.cbSize = sizeof m_cfDef; if (m_MyInfo.GetSelectionCharFormat(m_cfDef)){ m_cfBold = m_cfDef; m_cfBold.dwMask |= CFM_BOLD; m_cfBold.dwEffects |= CFE_BOLD; } InitWindowStyles(this); // splitter CRect rcSpl; rcSpl.left = 55; rcSpl.right = 300; rcSpl.top = 55; rcSpl.bottom = rcSpl.top + SVWND_SPLITTER_HEIGHT; m_wndSplitter.Create(WS_CHILD | WS_VISIBLE, rcSpl, this, IDC_SPLITTER_SERVER); m_wndSplitter.SetDrawBorder(true); InitSplitter(); return true; }