summaryrefslogtreecommitdiff
path: root/src/autocheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/autocheck.cpp')
-rw-r--r--src/autocheck.cpp43
1 files changed, 41 insertions, 2 deletions
diff --git a/src/autocheck.cpp b/src/autocheck.cpp
index f713c19..fb7de94 100644
--- a/src/autocheck.cpp
+++ b/src/autocheck.cpp
@@ -21,6 +21,7 @@
#include "w32dlib/window.h"
#include "w32dlib/autocheck.h"
#include "w32dlib/dialog.h"
+#include "w32dlib/datax.h"
namespace W32DLib
{
@@ -28,8 +29,8 @@ namespace W32DLib
// ------------------------------------------------------------
//
-AutoCheck::AutoCheck(Dialog *parent, int resource_id) :
- Control(parent,resource_id)
+AutoCheck::AutoCheck(Dialog *parent, int resource_id, DataX *datax) :
+ Control(parent,resource_id,datax)
{
}
@@ -87,6 +88,44 @@ bool AutoCheck::GetState()
}
+// ------------------------------------------------------------
+//
+void AutoCheck::DoDataExchange(bool set)
+{
+ if (m_data)
+ {
+ switch(m_data->Type())
+ {
+ case DataX::eString:
+ Control::DoDataExchange(set);
+ break;
+
+ case DataX::eInt:
+ if (set)
+ {
+ SetFullState(static_cast<EState>(m_data->Int()));
+ }
+ else
+ {
+ m_data->Set(static_cast<int>(GetFullState()));
+ }
+ break;
+
+ case DataX::eBool:
+ if (set)
+ {
+ SetState(m_data->Bool());
+ }
+ else
+ {
+ m_data->Set(GetState());
+ }
+ break;
+ }
+ }
+}
+
+
}; // namespace W32DLib