Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
202 lines
5.5 KiB
C++
202 lines
5.5 KiB
C++
// AdminStoreDlgBar.cpp : 구현 파일입니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "AdminToolClient.h"
|
|
#include "AdminStoreDlgBar.h"
|
|
#include "ListCtrlSortClass.h"
|
|
#include "PacketManager.h"
|
|
#include "WindowMgr.h"
|
|
#include "GlobalFunctions.h"
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CAdminStoreDlgBar, CInitDialogBar)
|
|
CAdminStoreDlgBar::CAdminStoreDlgBar()
|
|
: m_bSortListAsc(false)
|
|
{
|
|
INSERT_WINDOW(IDD_STATUS_DLGBAR, static_cast<CWnd*>(this));
|
|
}
|
|
|
|
CAdminStoreDlgBar::~CAdminStoreDlgBar()
|
|
{
|
|
ERASE_WINDOW(IDD_STATUS_DLGBAR);
|
|
}
|
|
|
|
void CAdminStoreDlgBar::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CInitDialogBar::DoDataExchange(pDX);
|
|
|
|
DDX_Control(pDX, IDC_ADMINSTORELIST, m_ctrlAdminStoreList);
|
|
DDX_Control(pDX, IDC_WORKREPORT_LIST, m_ctrlWorkReportList);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CAdminStoreDlgBar, CInitDialogBar)
|
|
ON_WM_CONTEXTMENU()
|
|
ON_COMMAND(ID_AS_ITEMCOPY, OnAstoreitemcopy)
|
|
ON_COMMAND(ID_AS_ITEMEDIT, OnAsItemedit)
|
|
ON_COMMAND(ID_AS_ITEMDEL, OnAsItemdel)
|
|
ON_NOTIFY(LVN_COLUMNCLICK, IDC_ADMINSTORELIST, OnLvnColumnclickAdminstorelist)
|
|
ON_NOTIFY(NM_CLICK, IDC_ADMINSTORELIST, OnNMClickAdminstorelist)
|
|
ON_NOTIFY(NM_DBLCLK, IDC_ADMINSTORELIST, OnNMDblclkAdminstorelist)
|
|
ON_MESSAGE(WM_INITDIALOG, InitDialog)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CAdminStoreDlgBar 메시지 처리기입니다.
|
|
|
|
LRESULT CAdminStoreDlgBar::InitDialog(WPARAM, LPARAM)
|
|
{
|
|
UpdateData(FALSE);
|
|
OnInitDialog();
|
|
|
|
return 0L;
|
|
}
|
|
|
|
BOOL CAdminStoreDlgBar::OnInitDialog()
|
|
{
|
|
SetUIString(this->m_hWnd, IDC_BOTTOMBAR_01, "IDC_BOTTOMBAR_01");
|
|
SetUIString(this->m_hWnd, IDC_BOTTOMBAR_02, "IDC_BOTTOMBAR_02");
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnContextMenu(CWnd* pWnd, CPoint point)
|
|
{
|
|
if(pWnd->GetSafeHwnd() == m_ctrlAdminStoreList.GetSafeHwnd()
|
|
&& m_ctrlAdminStoreList.GetSelectedCount() == 1)
|
|
{
|
|
CMenu muTemp, *pContextMenu;
|
|
muTemp.LoadMenu(IDR_CONTEXTMENU);
|
|
pContextMenu = muTemp.GetSubMenu(8);
|
|
pContextMenu->ModifyMenu(0, MF_STRING | MF_BYPOSITION, ID_AS_ITEMCOPY, GetLocalString("MENU_027"));
|
|
pContextMenu->ModifyMenu(2, MF_STRING | MF_BYPOSITION, ID_AS_ITEMEDIT, GetLocalString("MENU_024"));
|
|
pContextMenu->ModifyMenu(3, MF_STRING | MF_BYPOSITION, ID_AS_ITEMDEL, GetLocalString("MENU_025"));
|
|
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
|
|
}
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnAstoreitemcopy()
|
|
{
|
|
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
|
|
|
|
CPacketMgr::GetInstance()->SendPktGetAdminStoreItem(
|
|
PktAdminMgr::PktGetAdminStoreItem::CREATE,
|
|
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnAsItemedit()
|
|
{
|
|
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
|
|
|
|
CPacketMgr::GetInstance()->SendPktGetAdminStoreItem(
|
|
PktAdminMgr::PktGetAdminStoreItem::EDIT,
|
|
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnAsItemdel()
|
|
{
|
|
int iSelIndex = m_ctrlAdminStoreList.GetNextItem(-1, LVNI_SELECTED);
|
|
|
|
CPacketMgr::GetInstance()->SendPktAdminStoreDelete(
|
|
_ttol(m_ctrlAdminStoreList.GetItemText(iSelIndex, 0)));
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnLvnColumnclickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
|
|
|
if(pNMLV->iSubItem == m_iSortListItem)
|
|
{
|
|
m_bSortListAsc = !m_bSortListAsc;
|
|
}
|
|
else
|
|
{
|
|
m_iSortListItem = pNMLV->iSubItem;
|
|
m_bSortListAsc = true;
|
|
}
|
|
|
|
SortListWndItem(&m_ctrlAdminStoreList, m_iSortListItem);
|
|
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CAdminStoreDlgBar::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
|
|
{
|
|
CListCtrlSortClass SortClass(pListCtrl,iCol);
|
|
|
|
switch(m_iSortListItem)
|
|
{
|
|
case SORT_TYPE::STORE_ID:
|
|
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
|
|
break;
|
|
case SORT_TYPE::SERVER_GROUP:
|
|
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
|
break;
|
|
case SORT_TYPE::OWNER:
|
|
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
|
break;
|
|
case SORT_TYPE::NAME:
|
|
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnNMClickAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
if(g_bItemGrab)
|
|
{
|
|
char StoreBuffer[PktAdminMgr::PktAdminStoreInsert::MAX_ITEM_INFO];
|
|
unsigned long dwStoreBufferLength = 0;
|
|
|
|
g_stMyItemInfo.m_stItemInfo.AdminStore_Out(StoreBuffer, dwStoreBufferLength);
|
|
|
|
CPacketMgr::GetInstance()->SendPktAdminStoreInsert(PktAdminMgr::PktAdminStoreInsert::EMPTY_SERVERID,
|
|
_T("Adminstrator"), CONV_CLISTR(g_stMyItemInfo.m_stItemInfo.m_szItemName), StoreBuffer);
|
|
}
|
|
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CAdminStoreDlgBar::OnNMDblclkAdminstorelist(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
if(!g_bItemGrab)
|
|
{
|
|
OnAsItemedit();
|
|
}
|
|
|
|
*pResult = 0;
|
|
}
|
|
|
|
void CAdminStoreDlgBar::WorkReport(CString report, REPORT_TYPE eType)
|
|
{
|
|
CString contents;
|
|
SYSTEMTIME SysTime;
|
|
|
|
GetLocalTime(&SysTime);
|
|
contents.Format(_T("[%04d-%02d-%02d %02d:%02d:%02d] %s"),
|
|
SysTime.wYear, SysTime.wMonth, SysTime.wDay, SysTime.wHour, SysTime.wMinute, SysTime.wSecond, report);
|
|
|
|
switch(eType){
|
|
case GENERAL:
|
|
m_ctrlWorkReportList.AddLine(CXListBox::White, CXListBox::Black, contents);
|
|
break;
|
|
case NOTIFY:
|
|
m_ctrlWorkReportList.AddLine(CXListBox::Aqua, CXListBox::Black, contents);
|
|
break;
|
|
case CAUTION:
|
|
m_ctrlWorkReportList.AddLine(CXListBox::Yellow, CXListBox::Black, contents);
|
|
break;
|
|
case SUCCESS:
|
|
m_ctrlWorkReportList.AddLine(CXListBox::Lime, CXListBox::Black, contents);
|
|
break;
|
|
case FAILED:
|
|
m_ctrlWorkReportList.AddLine(CXListBox::Fuschia, CXListBox::Black, contents);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void CAdminStoreDlgBar::SetGoldEditBox(unsigned __int64 i64Gold)
|
|
{
|
|
// 여기서 단위를 적당히 조정해서 출력!
|
|
//SetDlgItemText(
|
|
} |