UiOptions.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面--选项界面
  3. // Copyright : Kingsoft 2002
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2002-9-2
  6. ------------------------------------------------------------------------------------------
  7. *****************************************************************************************/
  8. #pragma once
  9. #include "../Elem/WndLabeledButton.h"
  10. #include "../Elem/WndScrollBar.h"
  11. #include "../Elem/WndList.h"
  12. //#include "../../Engine/Src/LinkStruct.h"
  13. struct KPopupMenuData;
  14. enum SWORD_ONLINE_OPTION_INDEX
  15. {
  16. OPTION_I_START = 0,
  17. OPTION_I_DYNALIGHT = OPTION_I_START, //动态光影
  18. OPTION_I_WEATHER, //天气开关
  19. OPTION_I_PERSPECTIVE, //透视模式
  20. OPTION_INDEX_COUNT,
  21. };
  22. struct KToggleOptionItem
  23. {
  24. char szName[32]; //名称
  25. bool bInvalid; //不可用(有效)
  26. short bEnable; //此选项是否选中
  27. };
  28. class KUiOptions : protected KWndImage
  29. {
  30. public:
  31. //----界面面板统一的接口函数----
  32. static KUiOptions* OpenWindow(KWndWindow* pReturn = NULL);//打开窗口,返回唯一的一个类对象实例
  33. static KUiOptions* GetIfVisible(); //如果窗口正被显示,则返回实例指针
  34. static void CloseWindow(); //关闭窗口
  35. static void LoadScheme(const char* pScheme);//载入界面方案
  36. static void LoadSetting(bool bReload, bool bUpdate);
  37. // void SetPerspective(int);
  38. // void SetDynaLight(int);
  39. void SetMusicValue(int);
  40. void SetSoundValue(int);
  41. void SetBrightness(int);
  42. // void                SwitchWeather();
  43. void ToggleOption(int nIndex); //切换开关型选项
  44. private:
  45. KUiOptions();
  46. ~KUiOptions() {}
  47. int WndProc(unsigned int uMsg, unsigned int uParam, int nParam); //窗口函数
  48. void OnScrollBarPosChanged(KWndWindow* pWnd, int nPos); //响应滚动条被拖动
  49. // void PopupSkinMenu();
  50. void CancelMenu();
  51. void StoreSetting();
  52. void UpdateSettingSet(int eSet, bool bOnlyUpdateUi = false);
  53. void Initialize(); // 初始化
  54. void    PopupSeleteSetMenu(int nX, int nY); //弹出选择配置方案的菜单
  55. void LoadScheme(KIniFile* pIni); //载入界面方案
  56. void UpdateAllToggleBtn();
  57. void UpdateAllStatusImg();
  58. private:
  59. static KUiOptions* m_pSelf;
  60. private:
  61. KWndWindow* m_pReturn;
  62. // 按钮
  63. KWndButton m_ShortcutKeyBtn; //打开快捷键设定界面
  64. KWndButton m_CloseBtn; //关闭按钮
  65. // KWndLabeledButton m_SkinBtn; //界面方案按钮
  66. KWndScrollBar m_BrightnessScroll; //亮度调节滑块
  67. KWndScrollBar m_BGMValue; //音乐音量滑块
  68. KWndScrollBar m_SoundValue; //音效音量滑块
  69. KPopupMenuData* m_pSkinMenu;
  70. KWndLabeledButton m_ShortcutSetView;//e...这个表示当前所选择的快捷键方案
  71. int m_nBrightness, m_nSoundValue, m_nMusicValue;
  72. int m_nShortcutSet;
  73. #define MAX_TOGGLE_BTN_COUNT 4
  74. KWndScrollBar m_Scroll;
  75. KWndLabeledButton m_ToggleBtn[MAX_TOGGLE_BTN_COUNT];
  76. KWndImage m_StatusImage[MAX_TOGGLE_BTN_COUNT];
  77. unsigned int m_uEnableTextColor; //m_ToggleBtn标题文字的颜色
  78. unsigned int m_uDisableTextColor; //m_ToggleBtn标题文字的颜色
  79. unsigned int m_uInvalidTextColor; //m_ToggleBtn标题文字的颜色
  80. int m_nStatusEnableFrame;
  81. int m_nStatusDisableFrame;
  82. int m_nStatusInvalidFrame;
  83. KToggleOptionItem m_ToggleItemList[OPTION_INDEX_COUNT];
  84. int m_nFirstControlableIndex;
  85. int m_nToggleBtnValidCount;
  86. int m_nToggleItemCount;
  87. };