Mercurial > ~dholland > hg > ag > index.cgi
diff anagram/vaclgui/openfile.hpp @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/anagram/vaclgui/openfile.hpp Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,64 @@ +/* + * AnaGram, A System for Syntax Directed Programming + * Copyright 1997-2002 Parsifal Software. All Rights Reserved. + * See the file COPYING for license and usage terms. + * + * openfile.hpp + */ + +#ifndef OPENFILE_HPP +#define OPENFILE_HPP + +#include <ithread.hpp> +#include "action.h" + +class ControlPanel; + + +extern int analyzeThreadActive; + +class AnalyzeGrammarFn : public IThreadFn { +private: + ControlPanel *sourceWindow; + IThread *controlThread; + +public: + + AnalyzeGrammarFn(ControlPanel *window) + : sourceWindow(window) + , controlThread(&IThread::current()) + {} + + virtual void run(); +}; + +class BuildParserFn : public IThreadFn { +private: + ControlPanel *sourceWindow; + IThread *controlThread; + +public: + BuildParserFn(ControlPanel *window) + : sourceWindow(window) + , controlThread(&IThread::current()) + {} + + virtual void run(); +}; + +class AgThread : public IThread { +private: + IReference<IThreadFn> threadFn; + +public: + void run() { + IThread::start(threadFn); + } + void start(IThreadFn *f) { + threadFn = f; + defer(this, run); + } +}; + + +#endif /* OPENFILE_HPP */