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

模拟服务器

开发平台:

C/C++

  1. /* 
  2.  * File:     KUiHelper.h
  3.  * Desc:     简单帮助界面
  4.  * Author:   flying
  5.  * Creation: 2003/7/16
  6.  */
  7. //-----------------------------------------------------------------------------
  8. #pragma warning(disable:4243)
  9. #include "KWin32.h"
  10. #include "KIniFile.h"
  11. #include "../UiBase.h"
  12. #include "../Elem/Wnds.h"
  13. #include "UiHelper.h"
  14. #include "../ShortcutKey.h"
  15. #include "UiHeaderControlBar.h"
  16. #include "UiToolsControlBar.h"
  17. #include "UiMsgCentrePad.h"
  18. #include "UiMiniMap.h"
  19. #include "UiChatCentre.h"
  20. #include "UiOptions.h"
  21. KUiHelper* KUiHelper::m_pSelf = NULL;
  22. int        KUiHelper::ms_nImgFrame = 0;
  23. #define SCHEME_INI_HELP "简单帮助界面.ini"
  24. #define     INTERFACE_FRAME       0
  25. #define     KEYBOARD_FRAME        1
  26. #define     WUXING_INTERFIX_FRAME 2
  27. KUiHelper::KUiHelper()
  28. {
  29. }
  30. KUiHelper::~KUiHelper()
  31. {
  32. }
  33. KUiHelper* KUiHelper::OpenWindow(bool bShow)
  34. {
  35. if (m_pSelf == NULL)
  36. {
  37. m_pSelf = new KUiHelper;
  38. if (m_pSelf)
  39. m_pSelf->Initialize();
  40. }
  41. if (m_pSelf)
  42. {
  43. if (bShow)
  44. {
  45. m_pSelf->Show();
  46. m_pSelf->BringToTop();
  47. }
  48. else
  49. m_pSelf->Hide();
  50. }
  51. return m_pSelf;
  52. }
  53. void KUiHelper::CloseWindow(bool bDestroy)
  54. {
  55. if (m_pSelf)
  56. {
  57. m_pSelf->Hide();
  58. if (bDestroy)
  59. {
  60. m_pSelf->Destroy();
  61. m_pSelf = NULL;
  62. }
  63. }
  64. }
  65. KUiHelper* KUiHelper::GetIfVisible()
  66. {
  67. if (m_pSelf && m_pSelf->IsVisible())
  68. return m_pSelf;
  69. else
  70. return NULL;
  71. }
  72. //初始化
  73. void KUiHelper::Initialize()
  74. {
  75. char Scheme[256];
  76. g_UiBase.GetCurSchemePath(Scheme, 256);
  77. LoadScheme(Scheme);
  78. Wnd_AddWindow(this, WL_TOPMOST);
  79. return;
  80. }
  81. int KUiHelper::WndProc(unsigned int uMsg, unsigned int uParam, int nParam)
  82. {
  83. int nResult = false;
  84. switch(uMsg)
  85. {
  86. case WM_LBUTTONDOWN:
  87. case WM_RBUTTONDOWN:
  88. case WM_KEYDOWN:
  89. KShortcutKeyCentre::Enable(true);
  90. KUiMsgCentrePad::ShowAllMessage();
  91. CloseWindow(false);
  92. nResult = true;
  93. break;
  94. default:
  95. nResult = KWndWindow::WndProc(uMsg, uParam, nParam);
  96. break;
  97. }
  98. return nResult;
  99. }
  100. void KUiHelper::LoadScheme(const char* pScheme)
  101. {
  102. char Buff[128];
  103. KIniFile InitFile;
  104. sprintf(Buff, "%s\%s", pScheme, SCHEME_INI_HELP);
  105. if (InitFile.Load(Buff))
  106. {
  107. switch(ms_nImgFrame)
  108. {
  109. case KEYBOARD_FRAME:
  110. InitFile.GetString("Main", "KeyboardImage", "", Buff, sizeof(Buff));
  111. if(Buff[0])
  112. InitFile.WriteString("Main", "Image", Buff);
  113. break;
  114. case WUXING_INTERFIX_FRAME:
  115. InitFile.GetString("Main", "WuxingImage", "", Buff, sizeof(Buff));
  116. if(Buff[0])
  117. InitFile.WriteString("Main", "Image", Buff);
  118. break;
  119. case INTERFACE_FRAME:
  120. break;
  121. default:
  122. break;
  123. }
  124. Init(&InitFile, "Main");
  125. }
  126. return;
  127. }
  128. bool UiCloseWndsInGame(bool bAll);
  129. void KUiHelper::Show()
  130. {
  131. char Scheme[256];
  132. g_UiBase.GetCurSchemePath(Scheme, 256);
  133. KUiHeaderControlBar::DefaultScheme(Scheme);
  134. KUiToolsControlBar::DefaultScheme(Scheme);
  135. KUiMsgCentrePad::DefaultScheme(Scheme);
  136. KUiMsgCentrePad::HideAllMessage();
  137. MapSetMode(MINIMAP_M_BRIEF_PIC);
  138. KUiMiniMap::LoadScheme(Scheme);
  139. KUiChatCentre::CloseWindow(false);
  140. UiCloseWndsInGame(false);
  141. KWndImage::Show();
  142. KShortcutKeyCentre::Enable(false);
  143. }
  144. void KUiHelper::SelectInterfacePic()
  145. {
  146. char Scheme[256];
  147. ms_nImgFrame = INTERFACE_FRAME;
  148. if(m_pSelf)
  149. {
  150.      g_UiBase.GetCurSchemePath(Scheme, 256);
  151.      m_pSelf->LoadScheme(Scheme);
  152. }
  153. }
  154. void KUiHelper::SelectKeyboardPic()
  155. {
  156. char Scheme[256];
  157. ms_nImgFrame = KEYBOARD_FRAME;
  158. if(m_pSelf)
  159. {
  160.      g_UiBase.GetCurSchemePath(Scheme, 256);
  161.      m_pSelf->LoadScheme(Scheme);
  162. }
  163. }
  164. void KUiHelper::SelectWuxingPic()
  165. {
  166. char Scheme[256];
  167. ms_nImgFrame = WUXING_INTERFIX_FRAME;
  168. if(m_pSelf)
  169. {
  170.      g_UiBase.GetCurSchemePath(Scheme, 256);
  171.      m_pSelf->LoadScheme(Scheme);
  172. }
  173. }