4 #include "util/ParaMemPool.h" 10 template <
class OBJ_TYPE>
20 m_objType=0;m_pObj=NULL;m_bDelete=
false;
24 template <
class OBJ_TYPE>
29 typedef FixedSizedAllocator<OBJ_SCRIPT> DL_Allocator_OBJ_SCRIPT;
30 typedef std::list<OBJ_SCRIPT, DL_Allocator_OBJ_SCRIPT> OBJ_SCRIPT_List_Type;
34 ONLOAD,ONMOUSEDOWN,ONMOUSEUP,ONMOUSEWHEEL,ONMOUSEHOVER,ONMOUSEMOVE,
35 ONMOUSEENTER,ONMOUSELEAVE,ONCLICK,ONDOUBLECLICK,ONDRAGBEGIN,ONDRAGMOVE,
36 ONDRAGEND,ONCHAR,ONKEYDOWN,ONKEYUP,ONCHANGE,ONSTRING,ONFOCUSIN,ONFOCUSOUT,
41 void init(){m_pScripts.clear(); };
44 void AddScript(
const string& srcFile,
int etype){
45 m_pScripts.push_back(OBJ_SCRIPT());
46 OBJ_SCRIPT& script = m_pScripts.back();
48 script.m_objType=etype;
50 script.m_srcFile=srcFile;
53 void AddScript(
const string& srcFile,
int etype,
const string&
code){
54 m_pScripts.push_back(OBJ_SCRIPT());
55 OBJ_SCRIPT& script = m_pScripts.back();
57 script.m_objType=etype;
59 script.m_srcFile=srcFile;
62 void AddScript(
const string& srcFile,
int etype,
const string& code, OBJ_TYPE* obj){
63 m_pScripts.push_back(OBJ_SCRIPT());
64 OBJ_SCRIPT& script = m_pScripts.back();
66 script.m_objType=etype;
68 script.m_srcFile=srcFile;
71 void AddScript(OBJ_SCRIPT* script){
72 AddScript(script->m_srcFile,script->m_objType,script->m_code,script->m_pObj);
75 OBJ_SCRIPT* GetScript(
int etype){
76 for (m_iter=m_pScripts.begin();m_iter!=m_pScripts.end();m_iter++) {
77 if ((*m_iter).m_objType==etype) {
84 OBJ_SCRIPT* GetScript(
int etype, OBJ_TYPE* obj){
85 for (m_iter=m_pScripts.begin();m_iter!=m_pScripts.end();m_iter++) {
86 if ((*m_iter).m_objType==etype && (*m_iter).m_pObj == obj)
94 OBJ_SCRIPT* GetNextScript(
int etype){
95 for (;m_iter!=m_pScripts.end();m_iter++) {
96 if ((*m_iter).m_objType==etype) {
103 OBJ_SCRIPT* GetScript(OBJ_TYPE* pObj){
104 for (m_iter=m_pScripts.begin();m_iter!=m_pScripts.end();m_iter++) {
105 if ((*m_iter).m_pObj==pObj) {
112 OBJ_SCRIPT* GetNextScript(OBJ_TYPE* pObj){
113 for (;m_iter!=m_pScripts.end();m_iter++) {
114 if ((*m_iter).m_pObj==pObj) {
121 OBJ_SCRIPT& operator[](DWORD index){
122 if (index<0||index>=m_pScripts.size()) {
123 return m_pScripts.front();
126 typename OBJ_SCRIPT_List_Type::iterator iter;
127 for (iter=m_pScripts.begin();(iter!=m_pScripts.end())&&(a!=index);a++,iter++);
131 void DeleteScript(OBJ_TYPE* obj){
132 typename OBJ_SCRIPT_List_Type::iterator iter;
133 for (iter=m_pScripts.begin();iter!=m_pScripts.end();) {
134 if ((*iter).m_pObj==obj) {
135 iter=m_pScripts.erase(iter);
140 void DeleteScript(
int etype){
141 typename OBJ_SCRIPT_List_Type::iterator iter;
142 for (iter=m_pScripts.begin();iter!=m_pScripts.end();) {
143 if ((*iter).m_objType==etype) {
144 iter=m_pScripts.erase(iter);
150 void DeleteMarkedScript(){
151 typename OBJ_SCRIPT_List_Type::iterator iter;
152 for (iter=m_pScripts.begin();iter!=m_pScripts.end();) {
153 if ((*iter).m_bDelete) {
154 iter=m_pScripts.erase(iter);
159 void ActivateScript(
const string& code){};
161 return m_pScripts.size();
163 void ClearAll(){m_pScripts.clear();};
166 OBJ_SCRIPT_List_Type m_pScripts;
167 typename OBJ_SCRIPT_List_Type::iterator m_iter;
Definition: ObjScriptPool.h:25
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: inftrees.h:24
Definition: ObjScriptPool.h:11