ultimatepp/bazaar/FSMonTest/main.cpp
micio 9c8861a01f Bazaar/FSMonTest : fixed bad commit
git-svn-id: svn://ultimatepp.org/upp/trunk@4944 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2012-05-13 19:04:14 +00:00

82 lines
2 KiB
C++

#include "FSMonTest.h"
void FSMonTest::Log(String const &s)
{
logEdit.Set(logEdit.Get() + s + "\n");
logEdit.SetCursor(INT_MAX);
}
void FSMonTest::startCb(void)
{
String path = AppendFileName(GetHomeDirectory(), "FSMonTest_A");
Log("Starting monitor for '" + path + "'");
if(!DirectoryExists(path))
RealizeDirectory(path);
fsmMon.Add(path);
}
void FSMonTest::stopCb(void)
{
Log("Stopping\n");
String path = AppendFileName(GetHomeDirectory(), "FSMonTest_A");
fsmMon.Remove(path);
}
void FSMonTest::quitCb(void)
{
stopCb();
Break();
}
void FSMonTest::monitorCb()
{
Vector<FSMon::Info> infos = fsmMon.GetChanged();
for(int iChange = 0; iChange < infos.GetCount(); iChange++)
{
FSMon::Info const &info = infos[iChange];
switch(info.flags)
{
case FSMon::FSM_NOP :
Log(String("NO-OP EVENT"));
break;
case FSMon::FSM_Created :
Log(String("Creating file '") + info.path + "'");
break;
case FSMon::FSM_Deleted :
Log(String("Deleting file '") + info.path + "'");
break;
case FSMon::FSM_Moved :
Log(String("Moving file '") + info.path + "' to '" + info.newPath + "'");
break;
case FSMon::FSM_FolderCreated :
Log(String("Creating folder '") + info.path + "'");
break;
case FSMon::FSM_FolderDeleted :
Log(String("Deleting folder '") + info.path + "'");
break;
case FSMon::FSM_FolderMoved :
Log(String("Moving folder '") + info.path + "' to '" + info.newPath + "'");
break;
case FSMon::FSM_Modified :
Log(String("Modifying file '") + info.path + "'");
break;
case FSMon::FSM_AttribChange :
Log(String("Modifying file attributes for '") + info.path + "'");
break;
}
}
}
FSMonTest::FSMonTest()
{
CtrlLayout(*this, "Window title");
fsmMon.EventHandler = THISBACK(monitorCb);
startBtn <<= THISBACK(startCb);
stopBtn <<= THISBACK(stopCb);
quitBtn <<= THISBACK(quitCb);
}
GUI_APP_MAIN
{
FSMonTest().Run();
}