Files
Client/Server/AdminTool/AdminToolClient/GuildRestoreDlg.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
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>
2025-11-29 20:17:20 +09:00

143 lines
4.3 KiB
C++

// GuildRestoreDlg.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "GuildRestoreDlg.h"
#include "GlobalFunctions.h"
#include "CharacterDoc.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include "AdminClientConstants.h"
#include "ListCtrlSortClass.h"
// CGuildRestoreDlg 대화 상자입니다.
IMPLEMENT_DYNAMIC(CGuildRestoreDlg, CDialog)
CGuildRestoreDlg::CGuildRestoreDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGuildRestoreDlg::IDD, pParent)
, m_bAllGroupChk(TRUE)
, m_dwSearchCount(0)
{
INSERT_WINDOW(IDD_GUILDRESTOREDLG, static_cast<CWnd*>(this));
}
CGuildRestoreDlg::~CGuildRestoreDlg()
{
ERASE_WINDOW(IDD_GUILDRESTOREDLG);
}
void CGuildRestoreDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_GUILDRESTORE_DELGUILD_LIST, m_ctrlRestoreGuildList);
DDX_Control(pDX, IDC_GUILDRESTORE_SERVERGROUP_CB, m_ctrlServerGroupCb);
DDX_Check(pDX, IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, m_bAllGroupChk);
DDX_Text(pDX, IDC_GUILDRESTORE_SEARCHCOUNT, m_dwSearchCount);
}
BEGIN_MESSAGE_MAP(CGuildRestoreDlg, CDialog)
ON_BN_CLICKED(IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, OnBnClickedAllServergroupChk)
ON_BN_CLICKED(IDC_GUILDRESTORE_SEARCH_BTN, OnBnClickedSearchBtn)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_GUILDRESTORE_DELGUILD_LIST, OnLvnColumnclickGuildrestoreDelguildList)
END_MESSAGE_MAP()
// CGuildRestoreDlg 메시지 처리기입니다.
BOOL CGuildRestoreDlg::OnInitDialog()
{
CDialog::OnInitDialog();
ServerGroupComboSet(m_ctrlServerGroupCb);
m_ctrlRestoreGuildList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB);
m_ctrlRestoreGuildList.SetBkColor(RGB(255, 236, 236));
m_ctrlRestoreGuildList.SetTextBkColor(RGB(255, 236, 236));
m_ctrlRestoreGuildList.InsertColumn(0, GetLocalString("SERVER_GROUP"), LVCFMT_LEFT, 80);
m_ctrlRestoreGuildList.InsertColumn(1, _T("GID"), LVCFMT_LEFT, 65);
m_ctrlRestoreGuildList.InsertColumn(2, GetLocalString("GUILD_NAME"), LVCFMT_LEFT, 90);
m_ctrlRestoreGuildList.InsertColumn(3, _T("Gold"), LVCFMT_LEFT, 80);
m_ctrlRestoreGuildList.InsertColumn(4, GetLocalString("DISBAND_GUILD_TIME"), LVCFMT_LEFT, 130);
SetWindowText(GetLocalString("IDD_GUILDRESTOREDLG"));
SetUIString(this->m_hWnd, IDC_GUILDRESTORE_ALLSERVERGROUP_CHK, "IDC_GUILDRESTORE_ALLSERVERGROUP_CHK");
SetUIString(this->m_hWnd, IDC_GUILDRESTORE_SEARCH_BTN, "IDC_GUILDRESTORE_SEARCH_BTN");
SetUIString(this->m_hWnd, IDC_GUILDRESTORE_01, "IDC_GUILDRESTORE_01");
return TRUE;
}
void CGuildRestoreDlg::OnBnClickedAllServergroupChk()
{
UpdateData(true);
m_ctrlServerGroupCb.EnableWindow(!m_bAllGroupChk);
}
void CGuildRestoreDlg::OnBnClickedSearchBtn()
{
m_ctrlRestoreGuildList.DeleteAllItems();
CString strGroupName;
unsigned long dwServerGroup;
if(m_bAllGroupChk)
{
for(unsigned long dwGroupIndex = 0; dwGroupIndex < CON::MAX_GROUP_NUM; dwGroupIndex++)
CPacketMgr::GetInstance()->SendGuildRestoreDataList(m_bAllGroupChk, dwGroupIndex);
}
else
{
m_ctrlServerGroupCb.GetLBText(m_ctrlServerGroupCb.GetCurSel(), strGroupName);
CCharacterDoc::GetInstance().GetServerIndex(strGroupName, dwServerGroup);
CPacketMgr::GetInstance()->SendGuildRestoreDataList(m_bAllGroupChk, dwServerGroup);
}
}
void CGuildRestoreDlg::OnLvnColumnclickGuildrestoreDelguildList(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_ctrlRestoreGuildList, m_iSortListItem);
*pResult = 0;
}
void CGuildRestoreDlg::SortListWndItem(CListCtrl* pListCtrl, const int iCol)
{
CListCtrlSortClass SortClass(pListCtrl,iCol);
switch(m_iSortListItem)
{
case SORT_TYPE::SERVER_GROUP:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::GID:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::NAME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
case SORT_TYPE::GOLD:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtINT);
break;
case SORT_TYPE::DELETE_TIME:
SortClass.Sort(m_bSortListAsc, CListCtrlSortClass::SortDataType::dtSTRING);
break;
}
}