#include "SunClientPrecompiledHeader.h" #include "uiHotKeyDialog.h" #include "uiOptionMenuMan/uiOptionMenuMan.h" #include "HotKeyManager.h" #include "input/HotKeyInfoParser.h" #include "InterfaceManager.h" #include "GlobalFunc.h" #ifdef _NA_000000_20130114_RENEWER_UI #include "Interface/uiMenuMan/uiMenuMan.h" #include "MainDialog.h" #include "MainDialog2.h" #include "MainMenuOptionDlg.h" #endif #ifdef _NA_006643_20130417_UI_OUT_WINDOW_BREAK #include "RadarFullDialog.h" #include "uiRadarMan/uiRadarMan.h" #include "uiInventoryMan/uiInventoryMan.h" #include "InventoryDialog.h" #endif uiHotKeyDialog::uiHotKeyDialog(InterfaceManager* ui_manager) :uiBase(ui_manager) { } uiHotKeyDialog::~uiHotKeyDialog() { } void uiHotKeyDialog::Init(CDrawBase* draw_base) { uiBase::Init(draw_base); RegisterControlPosition(StrToWzID("B999"), kControl_Button_B999); RegisterControlPosition(StrToWzID("BT00"), kControl_Button_BT00); RegisterControlPosition(StrToWzID("B001"), kControl_Button_B001); RegisterControlPosition(StrToWzID("B003"), kControl_Button_B003); RegisterControlPosition(StrToWzID("B004"), kControl_Button_B004); RegisterControlPosition(StrToWzID("B005"), kControl_Button_B005); RegisterControlPosition(StrToWzID("B006"), kControl_Button_B006); RegisterControlPosition(StrToWzID("B007"), kControl_Button_B007); RegisterControlPosition(StrToWzID("B008"), kControl_Button_B008); RegisterControlPosition(StrToWzID("B009"), kControl_Button_B009); RegisterControlPosition(StrToWzID("B010"), kControl_Button_B010); RegisterControlPosition(StrToWzID("B011"), kControl_Button_B011); RegisterControlPosition(StrToWzID("B012"), kControl_Button_B012); RegisterControlPosition(StrToWzID("B013"), kControl_Button_B013); RegisterControlPosition(StrToWzID("B014"), kControl_Button_B014); RegisterControlPosition(StrToWzID("B015"), kControl_Button_B015); RegisterControlPosition(StrToWzID("B016"), kControl_Button_B016); RegisterControlPosition(StrToWzID("B017"), kControl_Button_B017); RegisterControlPosition(StrToWzID("B018"), kControl_Button_B018); RegisterControlPosition(StrToWzID("B019"), kControl_Button_B019); RegisterControlPosition(StrToWzID("B020"), kControl_Button_B020); RegisterControlPosition(StrToWzID("B021"), kControl_Button_B021); RegisterControlPosition(StrToWzID("B022"), kControl_Button_B022); RegisterControlPosition(StrToWzID("B023"), kControl_Button_B023); RegisterControlPosition(StrToWzID("B024"), kControl_Button_B024); RegisterControlPosition(StrToWzID("B025"), kControl_Button_B025); RegisterControlPosition(StrToWzID("B026"), kControl_Button_B026); RegisterControlPosition(StrToWzID("B027"), kControl_Button_B027); RegisterControlPosition(StrToWzID("B028"), kControl_Button_B028); RegisterControlPosition(StrToWzID("B029"), kControl_Button_B029); RegisterControlPosition(StrToWzID("B030"), kControl_Button_B030); RegisterControlPosition(StrToWzID("B031"), kControl_Button_B031); RegisterControlPosition(StrToWzID("B032"), kControl_Button_B032); RegisterControlPosition(StrToWzID("B033"), kControl_Button_B033); RegisterControlPosition(StrToWzID("B034"), kControl_Button_B034); RegisterControlPosition(StrToWzID("B035"), kControl_Button_B035); RegisterControlPosition(StrToWzID("B036"), kControl_Button_B036); RegisterControlPosition(StrToWzID("B037"), kControl_Button_B037); RegisterControlPosition(StrToWzID("B038"), kControl_Button_B038); RegisterControlPosition(StrToWzID("S000"), kControl_Text_S000); RegisterControlPosition(StrToWzID("S002"), kControl_Text_S002); RegisterControlPosition(StrToWzID("S005"), kControl_Text_S005); RegisterControlPosition(StrToWzID("S006"), kControl_Text_S006); RegisterControlPosition(StrToWzID("S007"), kControl_Text_S007); RegisterControlPosition(StrToWzID("S008"), kControl_Text_S008); RegisterControlPosition(StrToWzID("S009"), kControl_Text_S009); RegisterControlPosition(StrToWzID("S010"), kControl_Text_S010); RegisterControlPosition(StrToWzID("S011"), kControl_Text_S011); RegisterControlPosition(StrToWzID("S012"), kControl_Text_S012); RegisterControlPosition(StrToWzID("S013"), kControl_Text_S013); RegisterControlPosition(StrToWzID("S014"), kControl_Text_S014); RegisterControlPosition(StrToWzID("S015"), kControl_Text_S015); RegisterControlPosition(StrToWzID("S017"), kControl_Text_S017); RegisterControlPosition(StrToWzID("S018"), kControl_Text_S018); RegisterControlPosition(StrToWzID("S019"), kControl_Text_S019); RegisterControlPosition(StrToWzID("S020"), kControl_Text_S020); RegisterControlPosition(StrToWzID("S021"), kControl_Text_S021); RegisterControlPosition(StrToWzID("V002"), kControl_VScroll_V002); RegisterControlPosition(StrToWzID("C000"), kControl_CheckButton_C000); RegisterControlPosition(StrToWzID("S000"), kControl_Text_S016); // ui_bind_info HotKeyInfoParser::Instance()->GetIndexList(function_index_vector()); } void uiHotKeyDialog::Release() { } void uiHotKeyDialog::OnUpdateSolarDialog() { VScrollDialog::Update(); } void uiHotKeyDialog::OnRenderSolarDialog() { if (HotKeyManager::Instance()->is_user_setting_mode() == true) { if ((input_key_info().list_index >= current_ui_index()) && (input_key_info().list_index < current_ui_index() + kNumOfDisplay)) { // Ãâ·Â RenderInputHighLight(); } } } void uiHotKeyDialog::RenderInputHighLight() { POSTYPE control_position = kMainHotKeyControlBegin; if (input_key_info().bind_pair_index == KEY_BIND_PAIR::kSubHotKey) { control_position = kSubHotKeyControlBegin; } control_position += (input_key_info().list_index - current_ui_index()); CCtrlButtonWZ* buttton_control = static_cast(GetControlWZ_byPosition(control_position)); if (buttton_control == NULL) { return; } SI_TFORMAT* image_format = buttton_control->GetCtrlImageFormat(); if (image_format == NULL) { return; } SI_TSUBINFO& sub_info = image_format->m_sImageState[E_CHECK]; if ((sub_info.m_blIs == false) || (sub_info.m_pVoid == NULL) || (sub_info.m_pVoid == INVALID_HANDLE_VALUE)) { return; } const int kCornerSize = 10; RECT control_rect = buttton_control->GetSizeRect(); // »ó´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left + kCornerSize) + 0.5f, static_cast(control_rect.top) + 0.5f, static_cast(control_rect.right - control_rect.left - (kCornerSize * 2)), static_cast(kCornerSize), sub_info.m_sFRect.fTopX + static_cast(kCornerSize), sub_info.m_sFRect.fTopY, sub_info.m_sFRect.fWidth - static_cast(kCornerSize * 2), static_cast(kCornerSize)); // ÁÂÃøÁß´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left) + 0.5f, static_cast(control_rect.top + kCornerSize) + 0.5f, static_cast(kCornerSize), static_cast(control_rect.bottom - control_rect.top - (kCornerSize * 2)), sub_info.m_sFRect.fTopX, sub_info.m_sFRect.fTopY + static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fHeight - static_cast(kCornerSize * 2)); // Áß¾ÓÁß´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left + kCornerSize) + 0.5f, static_cast(control_rect.top + kCornerSize) + 0.5f, static_cast(control_rect.right - control_rect.left - (kCornerSize * 2)), static_cast(control_rect.bottom - control_rect.top - (kCornerSize * 2)), sub_info.m_sFRect.fTopX + static_cast(kCornerSize), sub_info.m_sFRect.fTopY + static_cast(kCornerSize), sub_info.m_sFRect.fWidth - static_cast(kCornerSize * 2), sub_info.m_sFRect.fHeight - static_cast(kCornerSize * 2)); // ¿ìÃøÁß´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.right - kCornerSize) + 0.5f, static_cast(control_rect.top + kCornerSize) + 0.5f, static_cast(kCornerSize), static_cast(control_rect.bottom - control_rect.top - (kCornerSize * 2)), sub_info.m_sFRect.fTopX + sub_info.m_sFRect.fWidth - static_cast(kCornerSize), sub_info.m_sFRect.fTopY + static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fHeight - static_cast(kCornerSize * 2)); // ÇÏ´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left + kCornerSize) + 0.5f, static_cast(control_rect.bottom - kCornerSize) + 0.5f, static_cast(control_rect.right - control_rect.left - (kCornerSize * 2)), static_cast(kCornerSize), sub_info.m_sFRect.fTopX + static_cast(kCornerSize), sub_info.m_sFRect.fTopY + sub_info.m_sFRect.fHeight - static_cast(kCornerSize), sub_info.m_sFRect.fWidth - static_cast(kCornerSize * 2), static_cast(kCornerSize)); // ÁÂÃø»ó´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left) + 0.5f, static_cast(control_rect.top) + 0.5f, static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fTopX, sub_info.m_sFRect.fTopY, static_cast(kCornerSize), static_cast(kCornerSize)); // ¿ìÃø»ó´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.right - kCornerSize) + 0.5f, static_cast(control_rect.top) + 0.5f, static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fTopX + sub_info.m_sFRect.fWidth - static_cast(kCornerSize), sub_info.m_sFRect.fTopY, static_cast(kCornerSize), static_cast(kCornerSize)); // ÁÂÃøÇÏ´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.left) + 0.5f, static_cast(control_rect.bottom - kCornerSize) + 0.5f, static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fTopX, sub_info.m_sFRect.fTopY + sub_info.m_sFRect.fHeight - static_cast(kCornerSize), static_cast(kCornerSize), static_cast(kCornerSize)); // ¿ìÃøÇÏ´Ü g_pSunRenderer->RenderTexture(HANDLE(sub_info.m_pVoid), static_cast(control_rect.right - kCornerSize) + 0.5f, static_cast(control_rect.bottom - kCornerSize) + 0.5f, static_cast(kCornerSize), static_cast(kCornerSize), sub_info.m_sFRect.fTopX + sub_info.m_sFRect.fWidth - static_cast(kCornerSize), sub_info.m_sFRect.fTopY + sub_info.m_sFRect.fHeight - static_cast(kCornerSize), static_cast(kCornerSize), static_cast(kCornerSize)); } void uiHotKeyDialog::OnShowWindow(BOOL is_show) { if (is_show == TRUE) { // Àӽà ¼¼ÆÃ Á¤º¸¿¡ ÇöÀç ¼¼ÆÃ Á¤º¸¸¦ º¹»ç HotKeyManager::Instance()->temp_key_bind_info() = HotKeyManager::Instance()->current_using_key_bind_info(); CCtrlButtonCheckWZ* check_button = static_cast(GetControlWZ_byPosition(kControl_CheckButton_C000)); if (check_button != NULL) { check_button->SetCheckState(HotKeyManager::Instance()->is_character_setting()); } set_current_ui_index(0); ShowNoticeString(" "); RefreshBindInfo(); ResizeingVScrollControl(function_index_vector().size() - kNumOfDisplay, current_ui_index()); keyMsg msg; ZeroMemory(&msg, sizeof(msg)); msg.dwType = eDoType_HotKeyDialog; msg.wParam = IM_OPTION_MENU_MANAGER::HOT_KEY_BINDING_DIALOG; msg.DoSomething = GlobalFunc::DoShowWindowEx; g_KeyQueueManager.PushBack(msg); } else { g_KeyQueueManager.DeleteMsg(eDoType_HotKeyDialog); EnableControls(true); HotKeyManager::Instance()->EndUserSettingMode(0); input_key_info().Clear(); } } void uiHotKeyDialog::MessageProc(SI_MESSAGE* message) { if (IsLock()) return; if (GetMan() == NULL) return; switch (message->eResultMsg) { case RT_MSG_LBUTTONCLICK: OnLButtonClick(message); break; default: SolarDialog::MessageProc(message); VScrollDialog::MessageProc(message); break; } } bool uiHotKeyDialog::OnLButtonClick(SI_MESSAGE* message) { bool result = true; DWORD control_position = GetControlPosition_byID(message->dwCtrlID); switch (control_position) { case kControl_Button_B999: case kControl_Button_B005: { // Á¾·á/Ãë¼Ò ¹öư ShowInterfaceWithSound(FALSE); } break; case kControl_Button_B001: { // ÃʱâÈ­ ¹öư InitializeKeyBindInfo(); #ifdef _NA_000000_20130114_RENEWER_UI uiMenuMan* MainMenuMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_MENU)); if(MainMenuMan) { MainMenuMan->KeyModifyChange(); } #ifdef _NA_006643_20130417_UI_OUT_WINDOW_BREAK RadarFullDialog* pfullRadar = GET_CAST_DIALOG(RadarFullDialog, IM_RADAR_MANAGER::RADAR_DIALOG_FULL); if (pfullRadar) { pfullRadar->CheckModifyOption(); } InventoryDialog* pInventory = GET_CAST_DIALOG(InventoryDialog, IM_INVENTORY_MANAGER::INVEN_DLG); if (pInventory) { pInventory->CheckModifyOption(); } #endif #endif } break; case kControl_Button_B003: { // ÇØÁ¦ ¹öư HotKeyManager::Instance()->EndUserSettingMode(0); if (input_key_info().function_index != kNone_Function_Index) { ReleaseKeyBindInfo(input_key_info().function_index, input_key_info().bind_pair_index); input_key_info().Clear(); } input_key_info().Clear(); RefreshBindInfo(); } break; case kControl_Button_B004: { // È®ÀÎ(Àû¿ë) ¹öư ApplayHotKey(); #ifdef _NA_000000_20130114_RENEWER_UI uiMenuMan* MainMenuMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_MENU)); if(MainMenuMan) { MainMenuMan->KeyModifyChange(); } #ifdef _NA_006643_20130417_UI_OUT_WINDOW_BREAK RadarFullDialog* pfullRadar = GET_CAST_DIALOG(RadarFullDialog, IM_RADAR_MANAGER::RADAR_DIALOG_FULL); if (pfullRadar) { pfullRadar->CheckModifyOption(); } InventoryDialog* pInventory = GET_CAST_DIALOG(InventoryDialog, IM_INVENTORY_MANAGER::INVEN_DLG); if (pInventory) { pInventory->CheckModifyOption(); } #endif #endif } break; // ¸ÞÀÎŰ ¹öư case kControl_Button_B006: case kControl_Button_B007: case kControl_Button_B011: case kControl_Button_B009: case kControl_Button_B020: case kControl_Button_B017: case kControl_Button_B015: case kControl_Button_B013: case kControl_Button_B035: case kControl_Button_B033: case kControl_Button_B031: case kControl_Button_B029: case kControl_Button_B028: case kControl_Button_B025: case kControl_Button_B023: case kControl_Button_B021: case kControl_Button_B037: { // ÀÔ·Â ¹ÞÀ» À妽º ÀúÀå int list_index = current_ui_index() + (control_position - kControl_Button_B006); if (list_index == input_key_info().list_index) { HotKeyManager::Instance()->EndUserSettingMode(0); input_key_info().Clear(); } else { DWORD function_index = function_index_vector()[list_index]; input_key_info().function_index = function_index; input_key_info().list_index = list_index; input_key_info().bind_pair_index = KEY_BIND_PAIR::kMainHotKey; // ... ÄÁÆ®·Ñ ºñȰ¼ºÈ­ EnableControls(false); HotKeyManager::Instance()->StartUserSettingMode(); } } break; // ¼­ºêŰ ¹öư case kControl_Button_BT00: case kControl_Button_B008: case kControl_Button_B012: case kControl_Button_B010: case kControl_Button_B019: case kControl_Button_B018: case kControl_Button_B016: case kControl_Button_B014: case kControl_Button_B036: case kControl_Button_B034: case kControl_Button_B032: case kControl_Button_B030: case kControl_Button_B027: case kControl_Button_B026: case kControl_Button_B024: case kControl_Button_B022: case kControl_Button_B038: { // ÀÔ·Â ¹ÞÀ» À妽º ÀúÀå int list_index = current_ui_index() + (control_position - kControl_Button_BT00); if (list_index == input_key_info().list_index) { HotKeyManager::Instance()->EndUserSettingMode(0); input_key_info().Clear(); } else { DWORD function_index = function_index_vector()[list_index]; input_key_info().function_index = function_index; input_key_info().list_index = list_index; input_key_info().bind_pair_index = KEY_BIND_PAIR::kSubHotKey; // ... ÄÁÆ®·Ñ ºñȰ¼ºÈ­ EnableControls(false); HotKeyManager::Instance()->StartUserSettingMode(); } } break; default: { } } return result; } bool uiHotKeyDialog::OnVScrollDown(SI_MESSAGE* msg) { if (VScrollDialog::OnVScrollDown(msg) == true) { set_current_ui_index(vscroll_control()->GetScrollPosWZ()); RefreshBindInfo(); return true; } return false; } bool uiHotKeyDialog::OnVScrollUp(SI_MESSAGE* msg) { if (VScrollDialog::OnVScrollUp(msg) == true) { set_current_ui_index(vscroll_control()->GetScrollPosWZ()); RefreshBindInfo(); return true; } return false; } bool uiHotKeyDialog::OnVScrollThumb(SI_MESSAGE* msg) { if (VScrollDialog::OnVScrollThumb(msg) == true) { set_current_ui_index(vscroll_control()->GetScrollPosWZ()); RefreshBindInfo(); return true; } return false; } void uiHotKeyDialog::NetworkProc(MSG_BASE* recv_packet) { } void uiHotKeyDialog::RecvUserKeySetting(WORD hot_key_code) { // ÀÔ·Â ¹ÞÀº ´ÜÃàŰ ÀúÀå input_key_info().hot_key_code = hot_key_code; KEY_BIND_INFO& temp_info = HotKeyManager::Instance()->temp_key_bind_info(); HOT_KEY_CODE_ASSOCIATION_MAP::iterator found_itr = temp_info.hot_key_code_association_map().find(hot_key_code); if (found_itr != temp_info.hot_key_code_association_map().end()) { // ŰÀÔ·ÂÀÌ Áߺ¹µÊ(ÀÌ¹Ì »ç¿ëÇϰí ÀÖ´Â ´ÜÃàŰ) // Áߺ¹µÈ ´ÜÃàŰ ÇØÁ¦ KEY_BIND_PAIR& key_bind_pair = temp_info.key_bind_pair_map().find(found_itr->second)->second; if (key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey) == hot_key_code) { ReleaseKeyBindInfo(found_itr->second, KEY_BIND_PAIR::kMainHotKey); } else if (key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey) == hot_key_code) { ReleaseKeyBindInfo(found_itr->second, KEY_BIND_PAIR::kSubHotKey); } } EnableControls(true); RegisterKeyBindInfo(input_key_info().function_index, input_key_info().bind_pair_index, input_key_info().hot_key_code); RefreshBindInfo(); input_key_info().Clear(); } bool uiHotKeyDialog::GetScrollArea(RECT& area) { CDialogWZ* dialog_ptr = GetDialogWZ(); if (dialog_ptr != NULL) { CControlWZ* control_ptr = dialog_ptr->GetClientWZ(); if (control_ptr != NULL) { area = control_ptr->GetSizeRect(); return true; } } return false; } CCtrlVScrollWZ* uiHotKeyDialog::vscroll_control() { return GetVScrollControlWZ(GetControlID_byPosition(kControl_VScroll_V002)); } void uiHotKeyDialog::InitializeKeyBindInfo() { // ÃʱâÈ­ HotKeyManager::Instance()->temp_key_bind_info() = HotKeyManager::Instance()->defalut_key_bind_info(); RefreshBindInfo(); } void uiHotKeyDialog::ApplayHotKey() { HotKeyManager::Instance()->current_using_key_bind_info() = HotKeyManager::Instance()->temp_key_bind_info(); // ¼­¹ö ÀúÀå CCtrlButtonCheckWZ* check_button = static_cast(GetControlWZ_byPosition(kControl_CheckButton_C000)); bool is_check = false; if (check_button != NULL) { is_check = check_button->GetCheckState(); } HotKeyManager::Instance()->SaveHotKeyInfoToServer(is_check); ShowInterfaceWithSound(FALSE); } void uiHotKeyDialog::RefreshBindInfo() { CCtrlStaticWZ* caption_control = NULL; CCtrlButtonWZ* key_button_control = NULL; STLX_STRING hot_key_string; DWORD string_code = 0; KEY_BIND_INFO& temp_info = HotKeyManager::Instance()->temp_key_bind_info(); for (WORD control_index = 0; control_index < kNumOfDisplay; ++control_index) { // °¢ ±â´É Á¤º¸ ¾òÀ½ HOT_KEY_FUNCTION_INDEX function_index = static_cast(function_index_vector()[control_index + current_ui_index()]); KEY_BIND_PAIR_MAP::iterator found_itr = temp_info.key_bind_pair_map().find(function_index); if (found_itr == temp_info.key_bind_pair_map().end()) { //! ÄÁÆ®·Ñ ÃʱâÈ­ ÇØ¾ßÇÔ. continue; } // ±â´É¸í Ãâ·Â caption_control = static_cast(GetControlWZ_byPosition(kCaptionControlBegin + control_index)); if (caption_control != NULL) { string_code = HotKeyInfoParser::Instance()->GetDescriptionCodeByIndex(function_index); caption_control->SetTextID(string_code); } // ŰÁ¶ÇÕ Ãâ·Â // ¸ÞÀÎ key_button_control = static_cast(GetControlWZ_byPosition(kMainHotKeyControlBegin + control_index)); if (key_button_control != NULL) { KEY_BIND_PAIR& key_bind_pair = found_itr->second; hot_key_string.clear(); HOT_KEY_CODE hot_ket_code(key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey)); if (hot_ket_code.key_code_ != 0) { if (hot_ket_code.ctrl_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8218); hot_key_string += " + "; } if (hot_ket_code.alt_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8219); hot_key_string += " + "; } if (hot_ket_code.shift_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8217); hot_key_string += " + "; } string_code = HotKeyInfoParser::Instance()->GetStringCodeByKeyCode(hot_ket_code.key_code_); hot_key_string += g_InterfaceManager.GetInterfaceString(string_code); } key_button_control->SetTextWZ(hot_key_string.c_str()); } // ¼­ºê key_button_control = static_cast(GetControlWZ_byPosition(kSubHotKeyControlBegin + control_index)); if (key_button_control != NULL) { KEY_BIND_PAIR& key_bind_pair = found_itr->second; hot_key_string.clear(); HOT_KEY_CODE hot_ket_code(key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey)); if (hot_ket_code.key_code_ != 0) { if (hot_ket_code.ctrl_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8218); hot_key_string += " + "; } if (hot_ket_code.alt_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8219); hot_key_string += " + "; } if (hot_ket_code.shift_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8217); hot_key_string += " + "; } string_code = HotKeyInfoParser::Instance()->GetStringCodeByKeyCode(hot_ket_code.key_code_); hot_key_string += g_InterfaceManager.GetInterfaceString(string_code); } key_button_control->SetTextWZ(hot_key_string.c_str()); } } } void uiHotKeyDialog::ShowNoticeString(const TCHAR* notice_string) { CCtrlStaticWZ* notice_text = static_cast(GetControlWZ_byPosition(kControl_Text_S002)); if (notice_text != NULL) { notice_text->SetTextWZ(notice_string); } } void uiHotKeyDialog::EnableControls(bool is_enable) { //EnableControl(, is_enable); } void uiHotKeyDialog::EnableControl(UIControlPos control_position, bool is_enable) { CControlWZ* control_ptr = GetControlWZ_byPosition(control_position); if (control_ptr != NULL) { control_ptr->EnableWindowWZ(is_enable); } } void uiHotKeyDialog::RegisterKeyBindInfo(DWORD index, BYTE bind_pair_index, WORD hot_key_code) { HOT_KEY_FUNCTION_INDEX function_index = static_cast(index); KEY_BIND_PAIR key_bind_pair; KEY_BIND_INFO& temp_info = HotKeyManager::Instance()->temp_key_bind_info(); KEY_BIND_PAIR_MAP::iterator found_itr = temp_info.key_bind_pair_map().find(function_index); if (found_itr != temp_info.key_bind_pair_map().end()) { key_bind_pair = found_itr->second; } key_bind_pair.SetHotKeyCode(static_cast(bind_pair_index), HOT_KEY_CODE(hot_key_code)); temp_info.SetKeyBindInfo(function_index, key_bind_pair); if (hot_key_code != 0) { // µî·Ï ¸Þ½ÃÁö Ãâ·Â ShowNoticeString(g_InterfaceManager.GetInterfaceString(8360)); } } void uiHotKeyDialog::ReleaseKeyBindInfo(DWORD index, BYTE bind_pair_index) { RegisterKeyBindInfo(index, bind_pair_index, 0); // ÇØÁ¦ ¸Þ½ÃÁö Ãâ·Â TCHAR release_string[INTERFACE_STRING_LENGTH] = {'\0', }; TCHAR function_string[INTERFACE_STRING_LENGTH] = {'\0', }; TCHAR pair_index_string[INTERFACE_STRING_LENGTH] = {'\0', }; HOT_KEY_FUNCTION_INDEX function_index = static_cast(index); g_InterfaceManager.GetInterfaceString( HotKeyInfoParser::Instance()->GetDescriptionCodeByIndex(function_index), function_string); g_InterfaceManager.GetInterfaceString(2311 + bind_pair_index, pair_index_string); g_InterfaceManager.GetInterfaceStringFormat(release_string, INTERFACE_STRING_LENGTH - 1, 8361, function_string, pair_index_string); ShowNoticeString(release_string); }