// GMLogMsgDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "AdminToolClient.h" #include "GMLogMsgDlg.h" #include "WindowMgr.h" #include "GlobalFunctions.h" #include "PacketManager.h" #include "CharacterDoc.h" #include "ListCtrlSortClass.h" #include "DetailInfoDlg.h" // CGMLogMsgDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CGMLogMsgDlg, CDialog) CGMLogMsgDlg::CGMLogMsgDlg(DLG_TYPE eDlgType, DlgOwnerInfo& stInfo, CWnd* pParent /*=NULL*/) : CDialog(CGMLogMsgDlg::IDD, pParent) , m_bSortListAsc(false) { INSERT_WINDOW(IDD_GMLOGMSGDLG, static_cast(this)); m_stDlgOwnerInfo.m_dwUID = stInfo.m_dwUID; m_stDlgOwnerInfo.m_dwCID = stInfo.m_dwCID; m_stDlgOwnerInfo.m_dwServerGroup = stInfo.m_dwServerGroup; m_eDlgType = eDlgType; } CGMLogMsgDlg::~CGMLogMsgDlg() { ERASE_WINDOW(IDD_GMLOGMSGDLG); } void CGMLogMsgDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_GMLOGMSG_LIST, m_ctrlGMLogMsgList); } BEGIN_MESSAGE_MAP(CGMLogMsgDlg, CDialog) ON_BN_CLICKED(IDC_GMLOG_ADD, OnBnClickedGmlogAdd) ON_BN_CLICKED(IDC_GMLOG_DEL, OnBnClickedGmlogDel) ON_NOTIFY(LVN_COLUMNCLICK, IDC_GMLOGMSG_LIST, OnLvnColumnclickGmlogmsgList) ON_BN_CLICKED(IDC_GMLOG_CLIPPING_BTN, OnBnClickedGmlogClippingBtn) ON_NOTIFY(NM_DBLCLK, IDC_GMLOGMSG_LIST, OnNMDblclkGmlogmsgList) END_MESSAGE_MAP() // CGMLogMsgDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CGMLogMsgDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlGMLogMsgList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB); m_ctrlGMLogMsgList.InsertColumn(0, GetLocalString("ADDED_STRING_051"), LVCFMT_LEFT, 50); m_ctrlGMLogMsgList.InsertColumn(1, GetLocalString("EDIT_TIME"), LVCFMT_LEFT, 140); m_ctrlGMLogMsgList.InsertColumn(2, GetLocalString("ADDED_STRING_050"), LVCFMT_LEFT, 150); m_ctrlGMLogMsgList.InsertColumn(3, GetLocalString("ADMIN_ID"), LVCFMT_LEFT, 100); CString strTitle; strTitle = GetLocalString("ADDED_STRING_046"); if (UID_LOG_TYPE == m_eDlgType) { strTitle.AppendFormat(" (UID: %u)", m_stDlgOwnerInfo.m_dwUID); SetDlgItemInt(IDC_GMLOG_UID_EDIT, (int)m_stDlgOwnerInfo.m_dwUID, false); SetDlgItemText(IDC_GMLOG_SERVER_EDIT, "none"); SetDlgItemInt(IDC_GMLOG_CID_EDIT, 0, false); CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_SELECT, m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID); } else if (CID_LOG_TYPE == m_eDlgType) { strTitle.AppendFormat(" (CID: %u)", m_stDlgOwnerInfo.m_dwCID); CString strServerName; CCharacterDoc::GetInstance().GetServerName(m_stDlgOwnerInfo.m_dwServerGroup, strServerName); SetDlgItemInt(IDC_GMLOG_UID_EDIT, (int)m_stDlgOwnerInfo.m_dwUID, false); SetDlgItemText(IDC_GMLOG_SERVER_EDIT, strServerName); SetDlgItemInt(IDC_GMLOG_CID_EDIT, (int)m_stDlgOwnerInfo.m_dwCID, false); CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_SELECT, m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID); } SetUIString(this->m_hWnd, IDC_GMLOG_LIST_GROUP, "ADDED_STRING_048"); SetUIString(this->m_hWnd, IDC_GMLOG_ADD_GROUP, "ADDED_STRING_049"); SetUIString(this->m_hWnd, IDC_GMLOG_GROUP_STATIC, "IDC_CHARRESTORE_03"); SetUIString(this->m_hWnd, IDC_GMLOG_ADD_GROUP, "ADDED_STRING_049"); SetUIString(this->m_hWnd, IDC_GMLOG_ADD, "IDC_DROPCONTROL_ADDITEM_BTN"); SetUIString(this->m_hWnd, IDC_GMLOG_CLIPPING_BTN, "IDC_BILLLOG_TO_CLIP_BTN"); SetUIString(this->m_hWnd, IDC_GMLOG_DEL, "ADDED_STRING_052"); SetWindowText(strTitle); return TRUE; } bool CGMLogMsgDlg::InsertGMLogMsgList(PktAdminMgr::PktGMLogMsg* lpData) { if (NULL == lpData) { return false; } CString strForFormat; int nInsertIndex = m_ctrlGMLogMsgList.GetItemCount(); strForFormat.Format(_T("%u"), lpData->m_dwLogID); m_ctrlGMLogMsgList.InsertItem(nInsertIndex, strForFormat); strForFormat.Format(_T("%s"), lpData->m_szEditDate); m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 1, strForFormat); strForFormat.Format(_T("%s"), lpData->m_szLogMsg); m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 2, strForFormat); strForFormat.Format(_T("%s"), lpData->m_szAdminID); m_ctrlGMLogMsgList.SetItemText(nInsertIndex, 3, strForFormat); return true; } void CGMLogMsgDlg::OnBnClickedGmlogAdd() { CString strMsg; GetDlgItemText(IDC_GMLOG_ADDLOG_EDIT, strMsg); if (false == strMsg.IsEmpty() && strMsg.GetLength() < PktAdminMgr::MAX_LOG) { char szMsg[PktAdminMgr::MAX_LOG]; _snprintf(szMsg, PktAdminMgr::MAX_LOG, "%s", strMsg); CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_INSERT, m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID, 0, szMsg); } else { Report(GetLocalString("ADDED_STRING_047"), CAUTION); } } void CGMLogMsgDlg::OnBnClickedGmlogDel() { if (1 == m_ctrlGMLogMsgList.GetSelectedCount()) { int nIndex = m_ctrlGMLogMsgList.GetNextItem(-1, LVIS_SELECTED); unsigned long dwLogID = atol(m_ctrlGMLogMsgList.GetItemText(nIndex, 0)); CPacketMgr::GetInstance()->SendPktGMLogMsg(PktAdminMgr::PktGMLogMsg::LOG_DELETE, m_stDlgOwnerInfo.m_dwServerGroup, m_stDlgOwnerInfo.m_dwUID, m_stDlgOwnerInfo.m_dwCID, dwLogID); } } void CGMLogMsgDlg::OnLvnColumnclickGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR); if(pNMLV->iSubItem == m_iSortListItem) { m_bSortListAsc = !m_bSortListAsc; } else { m_iSortListItem = pNMLV->iSubItem; m_bSortListAsc = true; } SortListWndItem(&m_ctrlGMLogMsgList, m_iSortListItem); *pResult = 0; } void CGMLogMsgDlg::SortListWndItem(CListCtrl* lpListCtrl, const int iCol) { CListCtrlSortClass SortClass(lpListCtrl, iCol); switch(m_iSortListItem) { case SORT_TYPE::LOGID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT); break; case SORT_TYPE::EDITDATE: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::LOGMSG: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; case SORT_TYPE::ADMINID: SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING); break; } } void CGMLogMsgDlg::OnBnClickedGmlogClippingBtn() { ClippingListCtrl(m_ctrlGMLogMsgList, 4, true); } void CGMLogMsgDlg::OnNMDblclkGmlogmsgList(NMHDR *pNMHDR, LRESULT *pResult) { if (1 == m_ctrlGMLogMsgList.GetSelectedCount()) { int nIndex = m_ctrlGMLogMsgList.GetNextItem(-1, LVIS_SELECTED); CString strMsg = m_ctrlGMLogMsgList.GetItemText(nIndex, 2); CDetailInfoDlg dlg(strMsg); dlg.DoModal(); } *pResult = 0; }