summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2OptionPluginList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/T2DLL/T2OptionPluginList.cpp')
-rw-r--r--src/T2DLL/T2OptionPluginList.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/T2DLL/T2OptionPluginList.cpp b/src/T2DLL/T2OptionPluginList.cpp
index b8d49d6..d060b95 100644
--- a/src/T2DLL/T2OptionPluginList.cpp
+++ b/src/T2DLL/T2OptionPluginList.cpp
@@ -1,16 +1,33 @@
+#include "T2OptionPlugin.h"
#include "T2OptionPluginList.h"
-T2OptionPluginList::T2OptionPluginList() {
+T2OptionPluginList::T2OptionPluginList()
+ : LArray(sizeof(T2OptionPlugin *))
+{
}
/*virtual*/ T2OptionPluginList::~T2OptionPluginList() {
}
-void T2OptionPluginList::Add(T2OptionPlugin*) {
+void T2OptionPluginList::Add(T2OptionPlugin* plugin) {
+ if (!plugin)
+ return;
+
+ InsertItemsAt(1, mItemCount + 1, &plugin);
}
-void T2OptionPluginList::OnIdle(T2TowerDoc*) {
+void T2OptionPluginList::OnIdle(T2TowerDoc* towerDoc) {
+ DispatchEvent(OptionEventType_0, towerDoc, NULL);
}
-int T2OptionPluginList::DispatchEvent(OPTIONEVENTTYPE, T2TowerDoc*, void*) {
+BOOL T2OptionPluginList::DispatchEvent(OPTIONEVENTTYPE eventType, T2TowerDoc* towerDoc, void* data) {
+ LArrayIterator iterator(*this);
+ T2OptionPlugin *plugin;
+ BOOL result = true;
+
+ while (iterator.Next(&plugin)) {
+ result = result && plugin->OnEvent(eventType, towerDoc, data);
+ }
+
+ return result;
}