summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2OptionPluginList.cpp
diff options
context:
space:
mode:
authorAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
committerAsh Wolf <ninji@wuffs.org>2023-06-28 22:22:32 +0100
commitc0c336500955a23e344651e5412c9d9d441ef4ee (patch)
tree790769c748db307cf3314f6e896e2f61c68561a2 /src/T2DLL/T2OptionPluginList.cpp
parent37e364b2c6cc7487a1c888d256a73e5337bb7189 (diff)
downloadt2win-c0c336500955a23e344651e5412c9d9d441ef4ee.tar.gz
t2win-c0c336500955a23e344651e5412c9d9d441ef4ee.zip
first pass of T2DLL
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;
}