2017-10-12 23:34:13 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "ebase.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace e2d
|
|
|
|
|
|
{
|
|
|
|
|
|
|
2017-10-13 14:34:33 +08:00
|
|
|
|
class EMsgManager;
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
class EObjectManager
|
|
|
|
|
|
{
|
2017-10-13 14:34:33 +08:00
|
|
|
|
friend EApp;
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
public:
|
|
|
|
|
|
// <20><>һ<EFBFBD><D2BB><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷų<CDB7>
|
2017-10-13 11:42:36 +08:00
|
|
|
|
static void add(
|
|
|
|
|
|
e2d::EObject * nptr
|
|
|
|
|
|
);
|
2017-10-12 23:34:13 +08:00
|
|
|
|
|
|
|
|
|
|
// ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>нڵ<D0BD>
|
|
|
|
|
|
static void clearAllObjects();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
// ˢ<><CBA2><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|
|
|
|
|
static void __flush();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-13 11:42:36 +08:00
|
|
|
|
|
|
|
|
|
|
class EMouseMsg
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|
|
|
|
|
enum MESSAGE
|
|
|
|
|
|
{
|
|
|
|
|
|
MOVE = 0x0200, // <20><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|
|
|
|
|
LBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
LBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
RBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD><D2BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
RBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
RBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
MBUTTON_DOWN, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
MBUTTON_UP, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>̧<EFBFBD><CCA7>
|
|
|
|
|
|
MBUTTON_DBLCLK, // <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>˫<EFBFBD><CBAB>
|
|
|
|
|
|
WHEEL // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
EPoint m_Pos;
|
|
|
|
|
|
UINT m_nMsg = 0;
|
|
|
|
|
|
bool m_bLButtonDown = false;
|
|
|
|
|
|
bool m_bRButtonDown = false;
|
|
|
|
|
|
bool m_bMButtonDown = false;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EMouseListener :
|
|
|
|
|
|
public EObject
|
|
|
|
|
|
{
|
|
|
|
|
|
friend EMsgManager;
|
|
|
|
|
|
|
2017-10-13 14:34:33 +08:00
|
|
|
|
public:
|
|
|
|
|
|
EMouseListener();
|
|
|
|
|
|
|
|
|
|
|
|
EMouseListener(
|
|
|
|
|
|
EString name
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
EMouseListener(
|
|
|
|
|
|
const MOUSE_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
EMouseListener(
|
|
|
|
|
|
EString name,
|
|
|
|
|
|
const MOUSE_CALLBACK &callback
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
bool isRunnint() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void start();
|
|
|
|
|
|
|
|
|
|
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
void stop();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>״̬
|
|
|
|
|
|
void wait();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
void notify();
|
|
|
|
|
|
|
|
|
|
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void runCallback();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
EString getName() const;
|
|
|
|
|
|
|
|
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
|
|
|
|
|
|
EScene * getParentScene();
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setName(EString name);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void setCallback(const MOUSE_CALLBACK &callback);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
EString m_sName;
|
|
|
|
|
|
bool m_bRunning;
|
|
|
|
|
|
bool m_bWaiting;
|
|
|
|
|
|
MOUSE_CALLBACK m_callback;
|
|
|
|
|
|
EScene * m_pParentScene;
|
2017-10-13 11:42:36 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EMsgManager
|
|
|
|
|
|
{
|
2017-10-13 14:34:33 +08:00
|
|
|
|
friend EApp;
|
|
|
|
|
|
|
2017-10-13 11:42:36 +08:00
|
|
|
|
public:
|
|
|
|
|
|
static void setMouseMsg(
|
|
|
|
|
|
UINT message
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
static e2d::EMouseMsg::MESSAGE getMouseMsg();
|
|
|
|
|
|
|
|
|
|
|
|
static void addListener(
|
|
|
|
|
|
EMouseListener * listener
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
2017-10-13 14:34:33 +08:00
|
|
|
|
|
2017-10-13 11:42:36 +08:00
|
|
|
|
static void __exec();
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-10-12 23:34:13 +08:00
|
|
|
|
}
|