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 */