UiTongCreateSheet.cpp
Upload User: dzyhzl
Upload Date: 2019-04-29
Package Size: 56270k
Code Size: 6k
Development Platform:

C/C++

  1. /********************************************************************
  2. File        : UiTongCreateSheet.cpp
  3. Creator     : Fyt(Fan Zhanpeng)
  4. create data : 08-29-2003(mm-dd-yyyy)
  5. Description : 创建帮会的表单
  6. *********************************************************************/
  7. #include "KWin32.h"
  8. #include "KIniFile.h"
  9. #include "CoreShell.h"
  10. #include "GameDataDef.h"
  11. #include "../elem/wnds.h"
  12. #include "../Elem/WndMessage.h"
  13. #include "../UiBase.h"
  14. #include "../UiSoundSetting.h"
  15. #include "UiTongCreateSheet.h"
  16. #define TONG_CREATE_SHEET_SCHEME "帮会创建单.ini"
  17. KUiTongCreateSheet* KUiTongCreateSheet::ms_pSelf = NULL;
  18. extern iCoreShell *g_pCoreShell;
  19. //////////////////////////////////////////////////////////////////////
  20. // Construction/Destruction
  21. //////////////////////////////////////////////////////////////////////
  22. KUiTongCreateSheet::KUiTongCreateSheet()
  23. {
  24. m_nSelectSide = -1;
  25. }
  26. KUiTongCreateSheet::~KUiTongCreateSheet()
  27. {
  28. }
  29. /*********************************************************************
  30. * 功能:打开窗口
  31. **********************************************************************/
  32. KUiTongCreateSheet* KUiTongCreateSheet::OpenWindow()
  33. {
  34. if (ms_pSelf == NULL)
  35. {
  36. ms_pSelf = new KUiTongCreateSheet;
  37. if (ms_pSelf)
  38. ms_pSelf->Initialize();
  39. }
  40. if (ms_pSelf)
  41. {
  42. UiSoundPlay(UI_SI_WND_OPENCLOSE);
  43. ms_pSelf->BringToTop();
  44. ms_pSelf->Show();
  45. }
  46. return ms_pSelf;
  47. }
  48. /*********************************************************************
  49. * 功能:如果窗口正被显示,则返回实例指针
  50. **********************************************************************/
  51. KUiTongCreateSheet* KUiTongCreateSheet::GetIfVisible()
  52. {
  53. if (ms_pSelf && ms_pSelf->IsVisible())
  54. return ms_pSelf;
  55. return NULL;
  56. }
  57. /*********************************************************************
  58. * 功能:关闭窗口,同时可以选则是否删除对象实例
  59. **********************************************************************/
  60. void KUiTongCreateSheet::CloseWindow(bool bDestory)
  61. {
  62. if (ms_pSelf)
  63. {
  64. ms_pSelf->Hide();
  65. if (bDestory)
  66. {
  67. ms_pSelf->Destroy();
  68. ms_pSelf = NULL;
  69. }
  70. }
  71. }
  72. /*********************************************************************
  73. * 功能:初始化
  74. **********************************************************************/
  75. void KUiTongCreateSheet::Initialize()
  76. {
  77. AddChild(&m_EditTongName);
  78. AddChild(&m_BtnOrder);
  79. AddChild(&m_BtnNatural);
  80. AddChild(&m_BtnChaos);
  81. AddChild(&m_BtnDone);
  82. AddChild(&m_BtnCancel);
  83. AddChild(&m_TextError);
  84. char Scheme[256];
  85. g_UiBase.GetCurSchemePath(Scheme, 256);
  86. LoadScheme(Scheme);
  87. Wnd_AddWindow(this);
  88. }
  89. /*********************************************************************
  90. * 功能:载入界面方案
  91. **********************************************************************/
  92. void KUiTongCreateSheet::LoadScheme(const char* pScheme)
  93. {
  94. if(ms_pSelf)
  95. {
  96.      char Buff[128];
  97.      KIniFile Ini;
  98.      sprintf(Buff, "%s\%s", pScheme, TONG_CREATE_SHEET_SCHEME);
  99.      if (Ini.Load(Buff))
  100.      {
  101.     ms_pSelf->Init(&Ini, "Main");
  102.     ms_pSelf->m_BtnOrder.Init(&Ini, "BtnOrder");
  103. ms_pSelf->m_BtnChaos.Init(&Ini, "BtnChaos");
  104. ms_pSelf->m_BtnNatural.Init(&Ini, "BtnNatural");
  105. ms_pSelf->m_TextError.Init(&Ini, "ErrorBox");
  106. ms_pSelf->m_EditTongName.Init(&Ini, "Input");
  107. ms_pSelf->m_BtnDone.Init(&Ini, "BtnDone");
  108. ms_pSelf->m_BtnCancel.Init(&Ini, "BtnCancel");
  109. Ini.GetString("ErrorBox", "WithoutName", "",
  110. ms_pSelf->m_szNameNullString, sizeof(ms_pSelf->m_szNameNullString));
  111. Ini.GetString("ErrorBox", "WithoutFaction", "",
  112. ms_pSelf->m_szAlignmentNullString, sizeof(ms_pSelf->m_szAlignmentNullString));
  113. }
  114. /*--------------------*/
  115. }
  116. /*--------------------*/
  117. }
  118. /*********************************************************************
  119. * 功能:窗口函数
  120. **********************************************************************/
  121. int KUiTongCreateSheet::WndProc(unsigned int uMsg, unsigned int uParam, int nParam)
  122. {
  123. switch(uMsg)
  124. {
  125. case WND_N_BUTTON_CLICK:
  126. if(uParam == (unsigned int)&m_BtnOrder )
  127. {
  128. AlignmentButtonCheck(camp_justice);
  129. }
  130. else if(uParam == (unsigned int)&m_BtnChaos)
  131. {
  132. AlignmentButtonCheck( camp_evil  );
  133. }
  134. else if(uParam == (unsigned int)&m_BtnNatural  )
  135. {
  136. AlignmentButtonCheck(camp_balance);
  137. }
  138. /*----------------------------------------------------------*/
  139. else if(uParam == (unsigned int)&m_BtnCancel)
  140. {
  141. CloseWindow();
  142. }
  143. else if(uParam == (unsigned int)&m_BtnDone)
  144. {
  145. OnDone();
  146. }
  147. break;
  148. default:
  149. return KWndImage::WndProc(uMsg, uParam, nParam);
  150. break;
  151. }
  152.     return 1;
  153. }
  154. /*********************************************************************
  155. * 功能:正中邪CheckBox的管理函数
  156. **********************************************************************/
  157. void KUiTongCreateSheet::AlignmentButtonCheck(NPCCAMP eSide)
  158. {
  159. m_BtnOrder.CheckButton(FALSE);
  160. m_BtnChaos.CheckButton(FALSE);
  161. m_BtnNatural.CheckButton(FALSE);
  162. switch(eSide)
  163. {
  164. case camp_justice:
  165. m_BtnOrder.CheckButton(TRUE);
  166. break;
  167. case camp_evil:
  168. m_BtnChaos.CheckButton(TRUE);
  169. break;
  170. case camp_balance:
  171. m_BtnNatural.CheckButton(TRUE);
  172. break;
  173. }
  174. m_nSelectSide = eSide;
  175. }
  176. /*********************************************************************
  177. * 功能:响应确认按钮被按下
  178. **********************************************************************/
  179. void KUiTongCreateSheet::OnDone()
  180. {
  181. char Buff[16];
  182. m_EditTongName.GetText(Buff, sizeof(Buff), TRUE);
  183. if(Buff[0] && g_pCoreShell)
  184. {
  185. if(m_nSelectSide != -1)
  186. {
  187. g_pCoreShell->TongOperation(GTOI_TONG_CREATE, (unsigned int)Buff, (int)m_nSelectSide);
  188. CloseWindow();
  189. }
  190. else
  191. {
  192. m_TextError.SetText(m_szAlignmentNullString, strlen(m_szAlignmentNullString));
  193. }
  194. }
  195. else
  196. {
  197. m_TextError.SetText(m_szNameNullString, strlen(m_szNameNullString));
  198. }
  199. }