324 lines
4.8 KiB
C
324 lines
4.8 KiB
C
|
|
#pragma once
|
|||
|
|
#include "ebase.h"
|
|||
|
|
|
|||
|
|
namespace e2d
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
class ENode;
|
|||
|
|
class EMsgManager;
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EListener :
|
|||
|
|
public EObject
|
|||
|
|
{
|
|||
|
|
friend EMsgManager;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
EListener();
|
|||
|
|
|
|||
|
|
EListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
bool isRunning() const;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void start();
|
|||
|
|
|
|||
|
|
// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
void stop();
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
EString getName() const;
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽڵ<DABD>
|
|||
|
|
ENode * getParentNode() const;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setName(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
EScene * pParentScene
|
|||
|
|
) = 0;
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
ENode * pParentNode
|
|||
|
|
) = 0;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() = 0;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
EString m_sName;
|
|||
|
|
bool m_bRunning;
|
|||
|
|
bool m_bAlways;
|
|||
|
|
ENode * m_pParentNode;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EMouseListener :
|
|||
|
|
public EListener
|
|||
|
|
{
|
|||
|
|
friend EMsgManager;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
EMouseListener();
|
|||
|
|
|
|||
|
|
EMouseListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseListener(
|
|||
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const MOUSE_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
EScene * pParentScene
|
|||
|
|
) override;
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
ENode * pParentNode
|
|||
|
|
) override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
MOUSE_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>갴<EFBFBD><EAB0B4><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EMousePressListener :
|
|||
|
|
public EMouseListener
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
EMousePressListener();
|
|||
|
|
|
|||
|
|
EMousePressListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMousePressListener(
|
|||
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMousePressListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const MOUSE_PRESS_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
MOUSE_PRESS_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EMouseClickListener :
|
|||
|
|
public EMouseListener
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
EMouseClickListener();
|
|||
|
|
|
|||
|
|
EMouseClickListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseClickListener(
|
|||
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseClickListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const MOUSE_CLICK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
bool m_bPressed;
|
|||
|
|
MOUSE_CLICK_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EMouseDoubleClickListener :
|
|||
|
|
public EMouseListener
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
EMouseDoubleClickListener();
|
|||
|
|
|
|||
|
|
EMouseDoubleClickListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseDoubleClickListener(
|
|||
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseDoubleClickListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const MOUSE_DBLCLK_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
bool m_bPressed;
|
|||
|
|
MOUSE_DBLCLK_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EMouseDragListener :
|
|||
|
|
public EMouseListener
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
EMouseDragListener();
|
|||
|
|
|
|||
|
|
EMouseDragListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseDragListener(
|
|||
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EMouseDragListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const MOUSE_DRAG_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
EPoint m_Begin;
|
|||
|
|
MOUSE_DRAG_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
class EKeyboardListener :
|
|||
|
|
public EListener
|
|||
|
|
{
|
|||
|
|
friend EMsgManager;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
EKeyboardListener();
|
|||
|
|
|
|||
|
|
EKeyboardListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EKeyboardListener(
|
|||
|
|
const KEY_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EKeyboardListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const KEY_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void setCallback(
|
|||
|
|
const KEY_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
EScene * pParentScene
|
|||
|
|
) override;
|
|||
|
|
|
|||
|
|
// <20><EFBFBD><F3B6A8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
|
|||
|
|
virtual void bindWith(
|
|||
|
|
ENode * pParentNode
|
|||
|
|
) override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
KEY_LISTENER_CALLBACK m_Callback;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
class EKeyboardPressListener :
|
|||
|
|
public EKeyboardListener
|
|||
|
|
{
|
|||
|
|
friend EMsgManager;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
EKeyboardPressListener();
|
|||
|
|
|
|||
|
|
EKeyboardPressListener(
|
|||
|
|
const EString &name
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EKeyboardPressListener(
|
|||
|
|
const KEY_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
EKeyboardPressListener(
|
|||
|
|
const EString &name,
|
|||
|
|
const KEY_LISTENER_CALLBACK &callback
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// ִ<>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void _callOn() override;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|