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

239 lines
6.5 KiB
C++

#include "SunClientPrecompiledHeader.h"
#ifdef _DEV_VER
#include "uiGMWindowMan/uiGMWindowMan.h"
#include "uiGMItemResetWindow/uiGMItemResetWindow.h"
#include "GlobalFunc.h"
#include "Mouse.h"
const int k_LISTMARGIN= 8;
const int k_HEIGHT_GAP = 18;
const int k_WIDTH_GAP = 10;
const int k_DIALOGWIDTH = 67;
void uiGMItemResetWindow::RegisterControl()
{
RegisterControlPosition(StrToWzID("L001"), kControl_Button_L001);
}
uiGMItemResetWindow::uiGMItemResetWindow(InterfaceManager* ui_manager) : uiBase(ui_manager)
{
ui_gm_window_manager_ = NULL;
list_control_ = NULL;
}
uiGMItemResetWindow::~uiGMItemResetWindow(void)
{
}
void uiGMItemResetWindow::Init(CDrawBase* drawbase)
{
uiBase::Init(drawbase);
ui_gm_window_manager_ = static_cast<uiGMWindowMan*>(GetMan());
if (ui_gm_window_manager_ != NULL)
{
item_option_parametas_ = *(ui_gm_window_manager_->item_parametas());
}
RegisterControl();
list_control_ = static_cast<CCtrlListWZ*>(GetControlWZ(GetControlID_byPosition(kControl_Button_L001)));
if (list_control_ != NULL)
{
TCHAR *reset_value_string[kReset_Type_MAX] = { "全部", "起始值", "选项", "筛选", /*"검색어",*/ "历史", "收藏夹"};
int list_item_index = 0;
for (int index = 0; index < kReset_Type_MAX;++index)
{
list_item_index = list_control_->InsertItemBack();
GlobalFunc::SetItem(list_control_, list_item_index, reset_value_string[index],
StrToWzID("mn12"), DT_CENTER | DT_VCENTER, RGBA(0,0,0,0),
RGBA(255,255,255,192), RGBA(255,255,0,255));
}
list_control_->SetSellHeight(k_HEIGHT_GAP);
list_control_->SetCurSel(0);
int iListHeight = (kReset_Type_MAX * k_HEIGHT_GAP);
RECT rect;
GetDialogWZ()->GetClientRect(&rect);
GetDialogWZ()->MoveWindowWZ((float)rect.left, (float)rect.top,
(float)(k_DIALOGWIDTH+k_WIDTH_GAP), (float)(iListHeight + k_HEIGHT_GAP));
list_control_->MoveWindowWZ((float)(rect.left + (float)k_LISTMARGIN),
(float)(rect.top+k_LISTMARGIN), (float)k_DIALOGWIDTH, (float)iListHeight);
}
}
void uiGMItemResetWindow::Release()
{
}
void uiGMItemResetWindow::MessageProc(SI_MESSAGE* message)
{
switch(message->eResultMsg)
{
case RT_MSG_LBUTTONCLICK:
{
OnLButtonClick(message);
}
break;
case RT_MSG_MOUSEOVER:
{
POSTYPE position = static_cast<POSTYPE>(GetControlPosition_byID(message->dwCtrlID));
switch(position)
{
case kControl_Button_L001:
{
int mouse_y = Mouse::Instance()->GetMouseY();
RECT rc_listctrl = list_control_->GetSizeRect();
int mouse_position = mouse_y - rc_listctrl.top;
if(mouse_position > 0)
{
int cursel = mouse_position / k_HEIGHT_GAP;
list_control_->SetCurSel(cursel);
}
}
break;
}
}
break;
}
}
void uiGMItemResetWindow::OnLButtonClick(SI_MESSAGE* message)
{
POSTYPE position = static_cast<POSTYPE>(GetControlPosition_byID(message->dwCtrlID));
switch (position)
{
case kControl_Button_L001:
{
BYTE menu_position = list_control_->GetCurSel();
switch (menu_position)
{
case kReset_Type_All: // 全部
ResetAll();
break;
case kReset_Type_Init: // 运行时值
ResetInit();
break;
case kReset_Type_Parameta: // 财产
ResetParameta();
break;
case kReset_Type_Filter: // 筛选
ResetFilter();
break;
/*case kReset_Type_FindWord: // 搜索
ResetFindWord();
break;*/
case kReset_Type_Created: // 生产
ResetHistroy();
break;
case kReset_Type_History: // 收藏夹
ResetBookmark();
break;
}
ShowInterface(FALSE);
}
break;
}
}
void uiGMItemResetWindow::OnUpdateSolarDialog()
{
RECT control_rect = {0, 0, 0, 0};
if (ui_gm_window_manager_)
{
ui_gm_window_manager_->GetResetWindowPosition(&control_rect);
GetDialogWZ()->MoveWindowWZ((control_rect.right - 5.0f), (control_rect.top + 8.0f));
}
}
void uiGMItemResetWindow::OnShowWindow(BOOL val)
{
if (val)
{
keyMsg msg;
ZeroMemory(&msg, sizeof(msg));
msg.dwType = eDoType_GM_Item_Window;
msg.wParam = IM_GM_WINDOW_MANAGER::GM_ITEM_RESET_WINDOW;
msg.DoSomething = GlobalFunc::DoShowWindowEx;
g_KeyQueueManager.PushBack(msg);
}
else
{
g_KeyQueueManager.DeleteMsg(eDoType_GM_Item_Reset_Window);
}
}
void uiGMItemResetWindow::ResetAll()
{
ResetParameta();
ResetFilter();
}
void uiGMItemResetWindow::ResetInit()
{
if (ui_gm_window_manager_ == NULL)
{
return;
}
ui_gm_window_manager_->SetItemOptionParametas(&item_option_parametas_);
}
void uiGMItemResetWindow::ResetParameta()
{
if (ui_gm_window_manager_ == NULL)
{
return;
}
ITEM_PARAMETAS* item_parametas = ui_gm_window_manager_->GetItemOption();
if (item_parametas)
{
item_parametas->item_code = 0;
item_parametas->item_count = 0;
item_parametas->overlapping = true;
item_parametas->item_type = ITEM_TYPE_NORMAL;
item_parametas->enchant_level = 0;
item_parametas->socket_count = 0;
ui_gm_window_manager_->SetItemOptionParametas(item_parametas);
}
}
void uiGMItemResetWindow::ResetFilter()
{
if (ui_gm_window_manager_ == NULL)
{
return;
}
ITEM_PARAMETAS* item_parametas = ui_gm_window_manager_->GetItemOption();
item_parametas->filter_main = FILTER_ALL;
for (int i = 0; i < FILTER_MAX; ++i)
{
item_parametas->filter_subs[i] = 0;
}
item_parametas->class_type = eCHAR_NONE;
ui_gm_window_manager_->SetItemOptionParametas(item_parametas);
}
void uiGMItemResetWindow::ResetFindWord()
{
}
void uiGMItemResetWindow::ResetHistroy()
{
if (ui_gm_window_manager_)
{
ui_gm_window_manager_->DeleteAllHistroys();
}
}
void uiGMItemResetWindow::ResetBookmark()
{
if (ui_gm_window_manager_)
{
ui_gm_window_manager_->DeleteAllBookMarks();
}
}
#endif//_DEV_VER