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

模拟服务器

开发平台:

C/C++

  1. /*
  2.  *  File:      WndChessPanel.cpp
  3.  *  Dest:      棋盘面板
  4.  *  Creator:   flying
  5.  *  CopyRight: KingSoft
  6.  *  Date:      2003-8-22
  7.  */
  8. #pragma warning(disable:4243)
  9. #include "KWin32.h"
  10. #include "KIniFile.h"
  11. #include "../elem/wnds.h"
  12. #include "../Elem/WndMessage.h"
  13. #include <crtdbg.h>
  14. #include "../../../core/src/CoreObjGenreDef.h"
  15. #include "../../../core/src/coreshell.h"
  16. #include "../../TextCtrlCmd/TextCtrlCmd.h"
  17. #include "../../../Represent/iRepresent/iRepresentShell.h"
  18. #include "../../../Engine/src/Text.h"
  19. // flying add these include files.
  20. #include "../../../Represent/iRepresent/KRepresentUnit.h"
  21. #include "../Elem/MouseHover.h"
  22. #include "../Elem/WndWindow.h"
  23. #include "WndChessPanel.h"
  24. extern iRepresentShell* g_pRepresentShell;
  25. extern KMouseOver g_MouseOver;
  26. KWndChessPanel* KWndChessPanel::m_pSelf = NULL;
  27. // Constuctor
  28. KWndChessPanel::KWndChessPanel()
  29. {
  30. }
  31. KWndChessPanel::~KWndChessPanel()
  32. {
  33. }
  34. KWndChessPanel* KWndChessPanel::OpenWindow(bool bShow)
  35. {
  36. if (m_pSelf == NULL)
  37. {
  38. m_pSelf = new KWndChessPanel;
  39. if (m_pSelf)
  40. m_pSelf->Initialize();
  41. }
  42. if (m_pSelf)
  43. {
  44. if (bShow)
  45. {
  46. Wnd_SetCapture(m_pSelf);
  47. m_pSelf->Show();
  48. m_pSelf->BringToTop();
  49. }
  50. else
  51. m_pSelf->Hide();
  52. }
  53. return m_pSelf;
  54. }
  55. void KWndChessPanel::CloseWindow(bool bDestroy)
  56. {
  57. if (m_pSelf)
  58. {
  59. Wnd_ReleaseCapture();
  60. m_pSelf->Hide();
  61. if (bDestroy)
  62. {
  63. m_pSelf->Destroy();
  64. m_pSelf = NULL;
  65. }
  66. }
  67. }
  68. void KWndChessPanel::Clear()
  69. {
  70. }
  71. KWndChessPanel* KWndChessPanel::GetIfVisible()
  72. {
  73. if (m_pSelf && m_pSelf->IsVisible())
  74. return m_pSelf;
  75. else
  76. return NULL;
  77. }
  78. // Draw the grid out
  79. void KWndChessPanel::PaintWindow()
  80. {
  81. // draw the grid.
  82. int nRow = 0;
  83. int nCol = 0;
  84. int nNum = m_nCount % m_nRowCount;
  85. nCol = m_nCount > m_nRowCount ? m_nRowCount : m_nCount;
  86. nRow = nNum ? m_nCount / m_nRowCount : m_nCount / m_nRowCount - 1;
  87. for (int i = 0; i <= nRow; i++)
  88. {
  89. KRULine line;
  90. line.Color.Color_dw = m_nBorderColor;
  91. line.oPosition.nX = m_Left;
  92. line.oPosition.nY = m_Top + (i) * m_nBtnHeight;
  93. line.oEndPos.nX = m_Left + m_Width;
  94. line.oEndPos.nY = m_Top + (i) * m_nBtnHeight;
  95. line.oEndPos.nZ = 1;
  96. g_pRepresentShell->DrawPrimitives(1, &line, RU_T_LINE, true);
  97. }
  98. for (int j = 0; j <= nCol; j++)
  99. {
  100. KRULine line;
  101. line.Color.Color_dw = m_nBorderColor;
  102. line.oPosition.nX = m_Left + (j) * m_nBtnWidth;
  103. line.oPosition.nY = m_Top;
  104. line.oEndPos.nX = line.oPosition.nX;
  105. if (nNum > 0)
  106. {
  107. line.oEndPos.nY = j < nNum ?
  108. m_Top + (nRow + 1) * m_nBtnHeight :
  109. m_Top + (nRow) * m_nBtnHeight;
  110. }
  111. else
  112. {
  113. line.oEndPos.nY = m_Top + (nRow + 1) * m_nBtnHeight;
  114. }
  115. line.oEndPos.nZ = 1;
  116. g_pRepresentShell->DrawPrimitives(1, &line, RU_T_LINE, true);
  117. }
  118. }
  119. int KWndChessPanel::PtInWindow(int x, int y)
  120. {
  121. int nResult = false;
  122. nResult = true;
  123. return nResult;
  124. }
  125. int KWndChessPanel::WndProc(unsigned int uMsg, unsigned int uParam, int nParam)
  126. {
  127. int nResult = false;
  128. switch (uMsg)
  129. {
  130. // No warning..
  131. case 0:
  132. break;
  133. default:
  134. break;
  135. }
  136. nResult = true;
  137. return nResult;
  138. }
  139. void KWndChessPanel::Initialize()
  140. {
  141. }
  142. int KWndChessPanel::Init(KIniFile* pIniFile, const char* pSection)
  143. {
  144. int nResult = false;
  145. nResult = true;
  146. return nResult;
  147. }