//------------------------------------------------------------------------------ // uiGuildMain_dialogproc.cpp // (C) 2005 ckbang //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #else #include "uiGuildMain.h" #include "BattleRoomEntry.h" #include "BattleEntryTable.h" #include "MapInfoParser.h" #include "BattleScene.h" #include "Hero.h" #include "ChatDialog.h" #include "uiBattleZonePassword/uiBattleZonePassword.h" #include "map.h" #include "uiGuildMan/uiGuildMan.h" #include "Input.h" #include "ObjectManager.h" #include "Mouse.h" #include "interfacemanager.h" #include "globalfunc.h" #include "uiGuildNotice/uiGuildNotice.h" #include "uiGuildRightDelegation/uiGuildRightDelegation.h" #include "uiGuildDutyVest/uiGuildDutyVest.h" #include "uiGuildAlliance/uiGuildAlliance.h" #include "uiCommunityInfo/uiCommunityInfo.h" #include "uiCommunityMan/uiCommunityMan.h" #include "GuildRightInfoParser.h" //------------------------------------------------------------------------------ WzID uiGuildMain::m_wzId[DIALOG_MAX] = { StrToWzID("L001"), // DLGPOS_LST_MEMBERS, StrToWzID("ST00"), // DLGPOS_TXT_CURRENT_SELECT StrToWzID("ST01"), // DLGPOS_TXT_NUMBER_OF_GUILDMEMBER StrToWzID("LS00"), // DLGPOS_LST_CORP StrToWzID("TI00"), //DLGPOS_BTN_SORT_NAME, StrToWzID("TI01"), //DLGPOS_BTN_SORT_LEVEL, StrToWzID("TI02"), //DLGPOS_BTN_SORT_CLASS, StrToWzID("TI11"), //DLGPOS_BTN_SORT_DUTY, StrToWzID("TI03"), //DLGPOS_BTN_SORT_CONNECT, StrToWzID("C001"), // DLGPOS_CHKBTN_MEMBER_INFOS StrToWzID("C002"), // DLGPOS_CHKBTN_GUILD_INFO StrToWzID("C003"), // DLGPOS_CHKBTN_GUILD_STYLE StrToWzID("C004"), // DLGPOS_CHKBTN_GUILD_MAN StrToWzID("B999"), // DLGPOS_BTN_EXIT, StrToWzID("TI05"), // DLGPOS_BTN_GUILD_INVITE, StrToWzID("TI06"), // DLGPOS_BTN_GUILD_DELETE, StrToWzID("TI08"), // DLGPOS_BTN_GUILD_EXIT, StrToWzID("TI10"), // DLGPOS_BTN_GUILD_NOTICE, StrToWzID("TI14"), // DLGPOS_BTN_DUTY_VEST, StrToWzID("TI04"), // DLGPOS_BTN_GUILD_RELATIONSHIP StrToWzID("TI07"), // DLGPOS_BTN_GUILD_MASTER_DELEGATION StrToWzID("TI12"), // DLGPOS_BTN_GUILD_MEMBER_RIGHT_INFO StrToWzID("TI13"), // DLGPOS_BTN_GUILD_CORP_CHANGE StrToWzID("BT00"), // DLGPOS_BTN_CORP_LIST StrToWzID("TI09"), // DLGPOS_BTN_RIGHT_DELEGATION, StrToWzID("VS00"), // DLGPOS_SCR_VERTICAL, }; //------------------------------------------------------------------------------ /** called to show request */ void uiGuildMain::OnShowWindow( BOOL val ) { if (val) { if (!this->m_bControlsInitialized) { this->ShowInterface(FALSE); return; } //m_bShow = true; keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_dialog_guild_main; msg.wParam = InterfaceManager::DIALOG_GUILD_MAIN; msg.DoSomething = GlobalFunc::DoGuildMain; g_KeyQueueManager.PushBack(msg); if (m_pScrollControl) { m_pScrollControl->SetScrollPosWZ(last_scrollbar_position()); } SetListCaption(); m_pListCorps->ShowWindowWZ(WZ_HIDE); } else { //m_bShow = false; if (m_pScrollControl) { set_last_scrollbar_position(m_pScrollControl->GetScrollPosWZ()); } uiCommunityMan* community_man = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_COMMUNITY)); if ((community_man != NULL) && ( community_man->GetCommunityinfo_Dialog() != NULL)) { if (community_man->GetCommunityinfo_Dialog()->request_uimanager_id() == UIMAN_GUILD) { community_man->GetCommunityinfo_Dialog()->ShowInterface(val); } } g_KeyQueueManager.DeleteMsg(eDoType_dialog_guild_main); } } //------------------------------------------------------------------------------ /** */ void uiGuildMain::MessageProc( SI_MESSAGE * pMessage ) { if (this->IsLock()) return; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { case DLGPOS_CHKBTN_GUILD_INFO: { //this->ShowInterface(FALSE); //GET_DIALOG(IM_GUILD_MANAGER::GUILD_WINDOW)->ShowInterface(TRUE); GetManager()->ChangeTab(GET_DIALOG(IM_GUILD_MANAGER::GUILD_WINDOW)); } break; case DLGPOS_BTN_EXIT: { if (GetManager()) { GetManager()->set_active_tab(this); } ShowInterfaceWithSound(FALSE); //m_bShow = FALSE; } break; // ±æµå ÃÊ´ë case DLGPOS_BTN_GUILD_INVITE: { if(GetManager()) { GetManager()->Invite(NULL); } } break; // ±æµå Á¦¸í case DLGPOS_BTN_GUILD_DELETE: { int start = this->m_pScrollControl->GetScrollPosWZ(); int cursel = this->m_pLstControl->GetCurSel(); if (cursel >= 0) { int iIndex = start + cursel; VEC_GUILD_MEMBER & rGuildMembers = const_cast (GetManager()->GetGuildMembers()); if(rGuildMembers.size() < static_cast(iIndex + 1)) return; stGUILD_MEMBER_INFO * member = GetSelectedPacketForGuildMember(); if (member) { if(GetManager()) { TCHAR tszKickCharName[MAX_CHARNAME_LENGTH+1] = {0,}; StrnCopy(tszKickCharName, member->m_tszCharName, MAX_CHARNAME_LENGTH); GetManager()->Kick(tszKickCharName); } } } } break; // ±æµå Å»Åð case DLGPOS_BTN_GUILD_EXIT: { if(GetManager()) { GetManager()->Withdraw(); } } break; case DLGPOS_BTN_GUILD_NOTICE: { // ±æµå °øÁö â ¶ç¿ì±â OpenGuildNotice(); } break; case DLGPOS_BTN_DUTY_VEST: //Á÷Ã¥ ºÎ¿© { OnClickDutyVest(); } break; case DLGPOS_BTN_RIGHT_DELEGATION: //±ÇÇÑ À§ÀÓ { OnClickRightDelegation(); } break; case DLGPOS_BTN_GUILD_MASTER_DELEGATION: // ±æµå ¸¶½ºÅÍ À§ÀÓ { OnClickGuildMasterDelegation(); } break; case DLGPOS_BTN_GUILD_MEMBER_RIGHT_INFO: // ±æµå ¸â¹ö ±ÇÇÑ Á¤º¸ { OnClickGuildMemberRightInfo(); } break; case DLGPOS_BTN_GUILD_CORP_CHANGE: { OnClickGuildCropChange(); } break; case DLGPOS_BTN_CORP_LIST: { if( m_pListCorps ) { ENUM_STATEWZ eState = m_pListCorps->GetState() == WZ_SHOW ?WZ_HIDE : WZ_SHOW; if( eState == WZ_SHOW ) InsertAllCorps(); m_pListCorps->ShowWindowWZ(eState); } } break; case DLGPOS_LST_CORP: { if( m_pListCorps->GetCurSel() != -1) { int iCurSel = m_pListCorps->GetCurSel(); byte * pData = (byte *)m_pListCorps->GetItemData(iCurSel); m_iCurSelCorps = *pData; m_pScrollControl->SetScrollPosWZ(0); SetListCaption(); } m_pListCorps->ShowWindowWZ(WZ_HIDE); } break; case DLGPOS_BTN_SORT_NAME: { GetManager()->SortMember(eSORT_NAME); } break; case DLGPOS_BTN_SORT_LEVEL: { GetManager()->SortMember(eSORT_LV); } break; case DLGPOS_BTN_SORT_CLASS: { GetManager()->SortMember(eSORT_CLASS); } break; case DLGPOS_BTN_SORT_DUTY: { GetManager()->SortMember(eSORT_DUTY); } break; case DLGPOS_BTN_SORT_CONNECT: { GetManager()->SortMember(eSORT_CONNETION); } break; case DLGPOS_BTN_GUILD_RELATIONSHIP: { BOOL right_by_grade = GuildRightInfoParser::Instance()->CheckGradeForRight( eGUILD_RIGHTS_RELATION, GetManager()->GetGuildInfo().m_GuildGrade); if (right_by_grade == FALSE) { TCHAR szMessage[INTERFACE_STRING_LENGTH + 1] = {0,}; //7207 ·¹º§ÀÌ ³·¾Æ ÇØ´ç ±â´É »ç¿ë ¸øÇÑ´Ù. g_InterfaceManager.GetInterfaceString(7207, szMessage); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_CHAT, szMessage); } else { MSG_CG_GUILD_ADD_INFO_SYN SendMsg; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &SendMsg, sizeof(SendMsg)); uiBase * pGuildAlliance = GET_DIALOG( IM_GUILD_MANAGER::GUILD_ALLIANCE ); if(pGuildAlliance) { pGuildAlliance->ShowInterface(TRUE); } } } break; } } break; case RT_MSG_LBUTTONDCLICK: { OnLDoubleButtonClick(pMessage); } break; default: { SolarDialog::MessageProc( pMessage ); } break; case RT_MSG_SB_PAGETOP: //. À­ÂÊ ¸öÅëÀ» ´­·¶´Ù. case RT_MSG_SB_LINETOP: { //.À­ÂÊ È­»ìÇ¥¸¦ ´­·¶´Ù. int pos = this->m_pScrollControl->GetScrollPosWZ(); // ÇöÀç ½ºÅ©·Ñ °ªÀ» ¹Þ¾Æ ¿Â´Ù. int mmin = 0 , mmax = 0; this->m_pScrollControl->GetScrollRangeWZ( &mmin, &mmax ); // ½ºÅ©·Ñ °ªÀÇ ÃÖ´ë ÃÖ¼Ò¸¦ ¾ò¾î ¿Â´Ù. if(pos>mmin) // ÇöÀç ÀÔ·ÂµÈ ¶óÀμö º¸´Ù ÀÛÀ¸¸é { int nSkipLevel=m_MaxPage/2;//¹ÝÆäÀÌÁöÀ̵¿ ( (pos-nSkipLevel)m_pScrollControl->SetScrollPosWZ(pos); } } break; case RT_MSG_SB_PAGEBOTTOM: //¾Æ·§ÂÊ ¸öÅëÀ» ´­·¶´Ù. case RT_MSG_SB_LINEBOTTOM: { //.¾Æ·§ÂÊ È­»ìÇ¥¸¦ ´­·¶´Ù int pos = this->m_pScrollControl->GetScrollPosWZ(); // ÇöÀç ½ºÅ©·Ñ °ªÀ» ¹Þ¾Æ ¿Â´Ù. int mmin = 0 , mmax = 0; this->m_pScrollControl->GetScrollRangeWZ( &mmin, &mmax ); // ½ºÅ©·Ñ °ªÀÇ ÃÖ´ë ÃÖ¼Ò¸¦ ¾ò¾î ¿Â´Ù. if(posmmax ? (pos=mmax):(pos+=nSkipLevel)); this->m_pScrollControl->SetScrollPosWZ(pos); } } break; } } //------------------------------------------------------------------------------ /** */ void uiGuildMain::OnUpdateSolarDialog() { if(!IsVisible()) { this->ShowInterface(FALSE); return; } if (this->IsLock()) return; for (int i=0; im_pChkBtnControls[i]->SetCheckState(false); } this->m_pChkBtnControls[0]->SetCheckState(true); this->updateMemberInfos(); updateMouseWheel(); } //------------------------------------------------------------------------------ /** */ void uiGuildMain::OnRenderSolarDialog() { this->renderMemberInfos(); } //------------------------------------------------------------------------------ bool uiGuildMain::OnLDoubleButtonClick(SI_MESSAGE* message) { switch (getCtrlIDToPos(message->dwCtrlID)) { case DLGPOS_LST_MEMBERS: { stGUILD_MEMBER_INFO* member_info = GetMemberInfo_byListboxCurSel(); if ((member_info != NULL) && #ifndef _NA_0_20100527_ADD_CHAR_RELATION_MEMO //#if'N'def (member_info->m_bLogin == TRUE) && #endif //_NA_0_20100527_ADD_CHAR_RELATION_MEMO (g_pHero != NULL) && (_tcscmp(g_pHero->GetName(), member_info->m_tszCharName) != 0)) { GetManager()->Send_CW_FRIEND_STATUS_REQ(member_info->m_tszCharName, member_info->m_CharGuid); uiCommunityMan* community_man = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_COMMUNITY)); if ((community_man != NULL) && (community_man->GetCommunityinfo_Dialog() != NULL)) { community_man->GetCommunityinfo_Dialog()->set_request_uimanager_id(UIMAN_GUILD); } } } break; } return true; } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER //------------------------------------------------------------------------------ // EOF //------------------------------------------------------------------------------