Files
2022-10-26 12:25:11 +08:00

230 lines
4.5 KiB
C++

//------------------------------------------------------------------------------
// uiQuestListContent_dialogproc.cpp
// (C) 2005 SUN ONLINE
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "uiQuestListContent.h"
#include "uiQuestMan/uiQuestMan.h"
#include "ItemUnitRenderer.h"
#include "mouse.h"
//------------------------------------------------------------------------------
WzID uiQuestListContent::m_wzId[DIALOG_MAX] =
{
StrToWzID("C001"), //eDLGPOS_CHK_MISSION,
StrToWzID("C002"), //eDLGPOS_CHK_QUEST,
StrToWzID("C003"), //eDLGPOS_CHK_QUEST_MISSION, // ÀÓ¹«
StrToWzID("C004"), //eDLGPOS_CHK_QUEST_CONTENT, // ³»¿ë
StrToWzID("LS00"), //eDLGPOS_LST_PROGRESS_QUEST,
StrToWzID("B999"), //eDLGPOS_BTN_EXIT,
StrToWzID("B998"), //eDLGPOS_BTN_CANCEL,
StrToWzID("CT00"), //eDLGPOS_CHK_QUEST_PREVIEW
};
//------------------------------------------------------------------------------
/**
called to show request
*/
void
uiQuestListContent::OnShowWindow( BOOL val )
{
if (val)
{
if (!this->CheckControls())
return;
if (!this->GetManager())
return;
if (GetManager()->IsPlayerWindowPosActivated())
{
POINT pt = GetManager()->GetPlayerWindowPos();
GetDialogWZ()->MoveWindowWZ((float)pt.x, (float)pt.y);
GetManager()->DeactivatedPlayerWindowPos();
}
else
{
//MoveWindowWZ( -1.0f, 120.0f );
}
int iPos = GetManager()->GetCurBeginDrawProgressList();
GetCtrlProgressQuestList()->SetBeginDrawIndex( iPos );
iPos = GetManager()->GetCurPosProgressListVscr();
GetCtrlProgressQuestVScroll()->SetScrollPosWZ(iPos);
if ( -1 != GetManager()->GetCurSelectQuestIndex() )
{
GetCtrlProgressQuestList()->SetCurSel(GetManager()->GetCurSelectQuestIndex()) ;
}
initInfo();
UpdateQuestInfo();
}
else
{
if (!this->GetManager())
return;
this->ClearInfo();
RECT rc;
GetDialogWZ()->GetClientRect(&rc);
POINT pt;
pt.x = rc.left;
pt.y = rc.top;
GetManager()->SetPlayerWindowPos(pt);
}
}
//------------------------------------------------------------------------------
/**
*/
void
uiQuestListContent::MessageProc( SI_MESSAGE * pMessage )
{
if (this->IsLock())
return;
if (!this->GetManager())
return;
switch( pMessage->eResultMsg )
{
case RT_MSG_LBUTTONCLICK:
{
POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID );
switch( pos )
{
case eDLGPOS_CHK_MISSION:
case eDLGPOS_CHK_QUEST:
{
clickChkCategory(pos);
}
break;
case eDLGPOS_CHK_QUEST_MISSION:
case eDLGPOS_CHK_QUEST_CONTENT:
{
clickChkQuestType(pos);
}
break;
case eDLGPOS_LST_PROGRESS_QUEST:
{
clickQuestList();
}
break;
case eDLGPOS_BTN_EXIT:
{
ShowInterfaceWithSound(FALSE);
}
break;
case eDLGPOS_BTN_CANCEL:
{
clickQuestAbandon();
}
break;
case eDLGPOS_CHK_QUEST_PREVIEW:
{
clickQuestPreviewCheck();
}
break;
default:
break;
}
}
break;
case RT_MSG_RBUTTONCLICK:
{
POSTYPE pos = getCtrlIDToPos( pMessage->dwCtrlID );
switch( pos )
{
case eDLGPOS_LST_PROGRESS_QUEST:
{
clickRbtnQuestList();
}
break;
case eDLGPOS_CHK_MISSION:
case eDLGPOS_CHK_QUEST:
{
clickChkCategory(pos);
}
break;
case eDLGPOS_CHK_QUEST_MISSION:
case eDLGPOS_CHK_QUEST_CONTENT:
{
clickChkQuestType(pos);
}
break;
default:
break;
}
}
break;
default:
{
SolarDialog::MessageProc( pMessage );
}
break;
}
ListMessageProc( pMessage );
}
////------------------------------------------------------------------------------
///**
//*/
//void
//uiQuestListContent::UpdatePosition()
//{
// //SolarDialog::UpdatePosition();
//}
//------------------------------------------------------------------------------
/**
*/
void
uiQuestListContent::OnUpdateSolarDialog()
{
if (!this->CheckControls())
return;
if (!this->GetManager())
return;
updateInfo();
m_FTextRender.SetRect(GetCtrlQuestContentList()->GetSizeRect());
}
//------------------------------------------------------------------------------
/**
*/
void
uiQuestListContent::OnRenderSolarDialog()
{
m_FTextRender.Render();
}
//------------------------------------------------------------------------------
// EOF
//------------------------------------------------------------------------------