#pragma once class uiBase; class TabCheckButtonControllManager { struct TabDialogData { float dialog_position_x; float dialog_position_y; #ifdef _NA_008472_20150903_IMPROVED_BALANCE DWORD prev_tab_index; #endif // _NA_008472_20150903_IMPROVED_BALANCE DWORD current_tab_index; DWORD key_queue_type; }; typedef STLX_VECTOR TabDialogContainer; public: TabCheckButtonControllManager(); ~TabCheckButtonControllManager(); // ÃʱâÈ­ bool Initialize(DWORD tab_num, DWORD key_queue_type, POINT* dialog_position, DWORD init_tab_index = 0); // ÅÇ ´ÙÀ̾ó·Î±× ³Ö±â (0¹ø À妽ººÎÅÍ (tab_num - 1)±îÁö ³Ö¾î¾ßÇÔ) void PushTab(DWORD tab_index, uiBase* tab_dialog); // ´ÙÀ̾ó·Î±× ¿­±â void ShowDialog(DWORD tab_index, bool is_show); // ´ÙÀ̾ó·Î±× ¿­±â void ShowCurrentDialog(bool is_show); // ÅÇÀÌ Å¬¸¯µÊ void OnClickTab(DWORD tab_index); // ´ÙÀ̾ó·Î±× ¾ò±â uiBase* GetTabDialog(DWORD tab_index); uiBase* GetCurrentTabDialog(); // ´ÙÀ̾ó·Î±× Æ÷Ä¿½º ¾÷µ¥ÀÌÆ® void UpdateDialogFocus(uiBase* main_dialog); #ifdef _NA_008472_20150903_IMPROVED_BALANCE // ÇöÀç ¼±ÅÃµÈ ÅÇ À妽º ¾ò±â DWORD GetCurrentTabIndex() { return tab_dialog_data_.current_tab_index; } DWORD GetPrevTabIndex() { return tab_dialog_data_.prev_tab_index; } void SetCurrentTabIndex(DWORD tap_index) { tab_dialog_data_.current_tab_index = tap_index; } #endif // _NA_008472_20150903_IMPROVED_BALANCE private: TabDialogContainer& tab_dialog_container() { return tab_dialog_container_; } TabDialogData& tab_dialog_data() { return tab_dialog_data_; } void RegisterKeyQueueType(uiBase* tab_dialog); void ReleaseKeyQueueType(); void SaveDialogPosition(uiBase* tab_dialog); bool CheckValidTabIndex(DWORD tab_index); private: TabDialogContainer tab_dialog_container_; TabDialogData tab_dialog_data_; };