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

模拟服务器

开发平台:

C/C++

  1. /*****************************************************************************************
  2. // 界面--小地图
  3. // Copyright : Kingsoft 2003
  4. // Author :   Wooy(Wu yue)
  5. // CreateTime: 2003-4-21
  6. ------------------------------------------------------------------------------------------
  7. *****************************************************************************************/
  8. #pragma once
  9. #include "../Elem/WndImage.h"
  10. #include "../Elem/WndButton.h"
  11. #include "../Elem/WndText.h"
  12. #include "../Elem/WndShadow.h"
  13. #include "../Elem/PopupMenu.h"
  14. #include "../../Core/Src/GameDataDef.h"
  15. //小地图的显示内容模式
  16. enum MINIMAP_MODE
  17. {
  18. MINIMAP_M_BRIEF_PIC = 0, //缩略图
  19. MINIMAP_M_BRIEF_PIC_BROWSE, //缩略图浏览/放大模式
  20. MINIMAP_M_WORLD_MAP, //世界地图
  21. //MINIMAP_M_OBSTACLE, //障碍图模式
  22. MINIMAP_M_NONE, //没有显示地图
  23. MINIMAP_M_COUNT,
  24. };
  25. struct KUiSceneTimeInfo;
  26. class KUiMiniMap : public KWndImage
  27. {
  28. public:
  29. //----界面面板统一的接口函数----
  30. static KUiMiniMap* OpenWindow(); //打开窗口,返回唯一的一个类对象实例
  31. static KUiMiniMap* GetIfVisible(); //如果窗口正被显示,则返回实例指针
  32. static void CloseWindow(); //关闭窗口
  33. static void SetMode(MINIMAP_MODE eMode); //设置显示内容模式
  34. static void LoadScheme(const char* pScheme);//载入界面方案
  35. static void UpdateSceneTimeInfo(KUiSceneTimeInfo* pInfo);
  36. static KUiMiniMap* GetSelf() {return ms_pSelf;}
  37. void Show(); //显示窗口
  38. void Hide(); //隐藏窗口
  39. private:
  40. KUiMiniMap();
  41. ~KUiMiniMap() {}
  42. void Initialize();
  43. void PaintWindow();
  44. int WndProc(unsigned int uMsg, unsigned int uParam, int nParam);
  45. void LoadScheme(KIniFile* pIni); //载入界面方案
  46. void SetStatus(bool bSmall); //切换状态
  47. void    MapScroll(int nbScrollScene); //地图卷动
  48. void StopScrollMap(); //停止拖动地图
  49. void MapMoveBack(); //地图还原原始偏移
  50. virtual void Breathe();
  51. private:
  52. static KUiMiniMap* ms_pSelf;
  53. private:
  54. unsigned int m_uShowElem;
  55. POINT m_MapPos;
  56. SIZE m_MapSize;
  57. KWndButton m_SwitchBtn;
  58. KWndText32 m_SceneName;
  59. KWndText32 m_ScenePos;
  60. KWndShadow m_Shadow;
  61. KWndButton m_WorldMapBtn;
  62. POINT           m_OldPos;
  63. unsigned int m_uLastScrollTime;             // 离最后一次滚动的时间(秒)
  64. int             m_nOffsetX;                    // 每次Loop,检测到跟上次鼠标位置的偏移X
  65. int             m_nOffsetY;                    // 每次Loop,检测到跟上次鼠标位置的偏移Y
  66. };
  67. void MapToggleStatus();
  68. void MapSetMode(MINIMAP_MODE eMode); //设置显示内容模式