⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frienddialog.cpp

📁 墨香最新私服
💻 CPP
字号:
// FriendDialog.cpp: implementation of the CFriendDialog class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "FriendDialog.h"
#include "WindowIDEnum.h"
#include ".\Interface\cWindowManager.h"
#include "FriendManager.h"
#include "Gamein.h"
#include "MainBarDialog.h"
#include "MininoteDialog.h"
#include "cRitemEx.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFriendDialog::CFriendDialog()
{
	m_type = WT_FRIENDDLG;
	m_SelectedFriendPge = 1;
	m_LogInGroup = 0;
	m_LogOutGroup = 0;
//	strcpy(m_SelectedFriendName, "");
}

CFriendDialog::~CFriendDialog()
{

}

void CFriendDialog::Init(LONG x, LONG y, WORD wid, WORD hei, cImage * basicImage, LONG ID)
{
	cDialog::Init(x,y,wid,hei,basicImage,ID);
	m_type = WT_FRIENDDLG;
}

void CFriendDialog::Linking()
{
	m_pFriendListLCtl = (cListCtrl*)GetWindowForID(FRI_FRIENDLISTLCTL);
	for(int i=0; i<MAX_FRIEND_NOTE_PAGE_BTN; ++i)
	{
		m_FriendPageBtn[i] = (cButton*)GetWindowForID(FRI_PAGE1BTN+i);
	}
	m_AddFriendBtn = (cButton*)GetWindowForID(FRI_ADDFRIENDBTN);
	m_DelFriendBtn = (cButton*)GetWindowForID(FRI_DELFRIENDBTN);
	for(i=0; i<MAX_FRIEND_LIST; ++i)
	{
		m_pFriendChkBox[i] = (cCheckBox*)GetWindowForID(FRI_FRIENDLISTCHK1+i);
	}
	
	m_SendNoteBtn = (cButton*)GetWindowForID(FRI_SENDNOTEBTN);
	m_SendWhisperBtn = (cButton*)GetWindowForID(FRI_SENDWHISPERBTN);
}

void CFriendDialog::SetActive( BOOL val )
{
	cDialog::SetActive( val );

//--- main bar icon
	CMainBarDialog* pDlg = GAMEIN->GetMainInterfaceDialog();
	if( pDlg )
		pDlg->SetPushBarIcon( OPT_FRIENDDLGICON, m_bActive );
}

DWORD CFriendDialog::ActionEvent(CMouse * mouseInfo)
{
	DWORD we = WE_NULL;
	if( !m_bActive ) return we;
	we = cDialog::ActionEvent(mouseInfo);
	
	if(we & WE_ROWCLICK)
	{
		cRITEMEx * pRItem = (cRITEMEx *)m_pFriendListLCtl->GetRItem(m_pFriendListLCtl->GetSelectedRowIdx());
		if(pRItem != NULL)
		{
			if(pRItem->dwID) //磊悼 率瘤 扁瓷 眠啊.
			{
				GAMEIN->GetMiniNoteDialog()->SetActive(TRUE);
				GAMEIN->GetMiniNoteDialog()->SetMiniNote(pRItem->pString[0], "");
				GAMEIN->GetMiniNoteDialog()->ShowMiniNoteMode(eMinNoteMode_Write);
			}
		}
	}
	return we;
}
/*
void CFriendDialog::SetFriendList(MSG_FRIEND_LIST_DLG* pmsg)
{
	m_LogInGroup = 0;
	m_LogOutGroup = 0;

	ShowFriendPageBtn(pmsg->TotalPage);

	m_pFriendListLCtl->DeleteAllItems();
	
	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		m_pFriendChkBox[i]->SetChecked(0);
		m_pFriendChkBox[i]->SetActive(TRUE);
		
		if(pmsg->FriendList[i].Id != 0)
		{
			cRITEMEx *ritem = new cRITEMEx(1);
			strcpy(ritem->pString[0], pmsg->FriendList[i].Name);
			if(pmsg->FriendList[i].IsLoggIn)
			{
				ritem->rgb[0] = RGBA_MAKE(157,215,206,255);
			}
			else
			{
				ritem->rgb[0] = RGBA_MAKE(180,180,180,255);
			}
			ritem->dwID = pmsg->FriendList[i].Id;
			m_pFriendListLCtl->InsertItem(i, ritem);
		}
		else
			m_pFriendChkBox[i]->SetActive(FALSE);
	}
}
*/

void CFriendDialog::SetFriendList(int gotopage)
{
	m_LogInGroup = 0;
	m_LogOutGroup = 0;
	
	FRIEND_LIST FriendInfo;
	memset(&FriendInfo, 0, sizeof(FRIEND_LIST));
	FRIENDMGR->GetFriendListInfo(&FriendInfo, gotopage);
	
	ShowFriendPageBtn(FriendInfo.totalnum);

	m_pFriendListLCtl->DeleteAllItems();
	
	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		m_pFriendChkBox[i]->SetChecked(0);
		m_pFriendChkBox[i]->SetActive(TRUE);
		
		if(FriendInfo.Friend[i].Id != 0)
		{
			cRITEMEx *ritem = new cRITEMEx(1);
			strcpy(ritem->pString[0], FriendInfo.Friend[i].Name);
			if(FriendInfo.Friend[i].IsLoggIn)
			{
				ritem->rgb[0] = RGBA_MAKE(157,215,206,255);
			}
			else
			{
				ritem->rgb[0] = RGBA_MAKE(180,180,180,255);
			}
			ritem->dwID = FriendInfo.Friend[i].Id;
			m_pFriendListLCtl->InsertItem(i, ritem);
		}
		else
			m_pFriendChkBox[i]->SetActive(FALSE);
	}
}

void CFriendDialog::ShowFriendPageBtn(BYTE TotalPage)
{
	if(TotalPage == 0)
	{
		for(BYTE i=0; i<MAX_FRIEND_LIST_PAGE_BTN; ++i)
			m_FriendPageBtn[i]->SetActive(FALSE);
		return;
	}

	for(DWORD i=0; i<MAX_FRIEND_LIST_PAGE_BTN; ++i)
	{
		m_FriendPageBtn[i]->SetTextValue(i+1);
		m_FriendPageBtn[i]->SetActive(i+1 <= TotalPage);
	}
}


/*
void CFriendDialog::UpdateLogIn(char* LogInName)
{
	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		if(strcmp(m_FriendList[i].Name, LogInName) == 0)
		{
			m_FriendList[i].IsLoggIn = TRUE;
			RefreshDlg();
			return;
		}
	}
}

void CFriendDialog::UpdateLogOut(char* LogOutName)
{
	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		if(strcmp(m_FriendList[i].Name, LogOutName) == 0)
		{
			m_FriendList[i].IsLoggIn = FALSE;
			RefreshDlg();
			return;
		}
	}
}
*/


/*
void CFriendDialog::RefreshDlg()
{
	if(m_bDlgActive == TRUE)
	{
		m_pFriendListLCtl->DeleteAllItems();
		
		for(int i=0; i<MAX_FRIEND_LIST; ++i)
		{
			if(m_FriendList[i].Id != 0)
			{
				RITEMExf *ritem = new RITEMExf(2);
				
				strcpy(ritem->pString[0], m_FriendList[i].Name);
				if(m_FriendList[i].IsLoggIn)
				{
					if(m_LogInGroup == FALSE)
					{
						strcpy(ritem->pString[1], "柯扼牢");
						m_LogInGroup = TRUE;
					}
					else
						strcpy(ritem->pString[1], "");
				}
				else
				{
					if(m_LogOutGroup == FALSE)
					{
						strcpy(ritem->pString[1], "坷橇扼牢");
						m_LogOutGroup = TRUE;
					}
					else
						strcpy(ritem->pString[1], "");
					
					for(int n=0; n<2; ++i)
						ritem->rgb[n] = RGBA_MAKE(150,150,150,255);
				}
				ritem->dwID = m_FriendList[i].Id; 
				m_pFriendListLCtl->InsertItem(i, ritem);
			}
			
			ShowFriendPageBtn(m_TotalPage);
		}
	}
}
*/


void CFriendDialog::CheckedDelFriend()
{
	DWORD IDs[MAX_FRIEND_LIST];
	cCheckBox* pChkArray[MAX_FRIEND_LIST];
	memset(IDs,0,sizeof(DWORD)*MAX_FRIEND_LIST);

	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		pChkArray[i] = (cCheckBox*)GetWindowForID(FRI_FRIENDLISTCHK1+i);	
		if(pChkArray[i]->IsChecked())
		{
			cRITEMEx * rItem = (cRITEMEx *)m_pFriendListLCtl->GetRItem(i);
			if(rItem->dwID)
			{
				IDs[i] = rItem->dwID;
			}
		}
	}
	
	int lastidx = MAX_FRIEND_LIST;
	for(i=0;i<MAX_FRIEND_LIST;++i)
	{
		if(IDs[i] != 0)
			lastidx = i;
	}

	for(i=0;i<MAX_FRIEND_LIST;++i)
	{
		if(IDs[i] != 0)
		{
			BOOL bLast;
			if(i==lastidx)
				bLast = TRUE;
			else
				bLast = FALSE;
			FRIENDMGR->DelFriendSynbyID(IDs[i],bLast);
		}
	}
}

char* CFriendDialog::GetChkedName()
{
	cCheckBox* pChkArray[MAX_FRIEND_LIST];
	for(int i=0; i<MAX_FRIEND_LIST; ++i)
	{
		pChkArray[i] = (cCheckBox*)GetWindowForID(FRI_FRIENDLISTCHK1+i);	
		if(pChkArray[i]->IsChecked())
		{
			cRITEMEx * rItem = (cRITEMEx *)m_pFriendListLCtl->GetRItem(i);
			return rItem->pString[0];
		}
	}
	return "";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -