-#ifndef __DESCRIPTION__
-#define __DESCRIPTION__
-
-//------------------------------------
-// generation of an xml description
-//------------------------------------
-
-#include <string>
-#include <list>
-#include <set>
-#include <map>
-#include <string>
-#include "signals.hh"
-#include "smartpointer.hh"
-#include "tlib.hh"
-#include "uitree.hh"
-
-using namespace std;
-
-void extractMetadata(const string& fulllabel, string& label, map<string, set<string> >& metadata);
-string extractName(Tree fulllabel);
-
-class Description
-{
- string fName;
- string fAuthor;
- string fCopyright;
- string fLicense;
- string fVersion;
-
- int fInputs;
- int fOutputs;
- int fWidgetID;
- int fActiveWidgetCount;
- int fPassiveWidgetCount;
- list<string> fActiveLines;
- list<string> fPassiveLines;
- list<string> fLayoutLines;
- list<int> fLayoutTabs;
-
-
- public:
-
- Description(): /*fName("Unknow"),
- fAuthor("Unknow"),
- fCopyright("Unknow"),
- fLicense("Unknow"),
- fVersion("Unknow"),*/
-
- fInputs(0),
- fOutputs(0),
- fWidgetID(0),
- fActiveWidgetCount(0),
- fPassiveWidgetCount(0)
- {}
-
- Description* name(const string& s) { fName = s; return this; }
- Description* author(const string& s) { fAuthor = s; return this; }
- Description* copyright(const string& s) { fCopyright = s; return this; }
- Description* license(const string& s) { fLicense = s; return this; }
- Description* version(const string& s) { fVersion = s; return this; }
-
- Description* inputs(int n) { fInputs = n; return this; }
- Description* outputs(int n) { fOutputs = n; return this; }
-
- void ui(Tree t);
- void print(int n, ostream& fout);
-
-
- private:
- void addGroup(int level, Tree t);
- int addWidget(Tree label, Tree varname, Tree sig);
-
- void tab (int n, ostream& fout);
- void addActiveLine(const string& l) { fActiveLines.push_back(l);}
- void addPassiveLine(const string& l) { fPassiveLines.push_back(l);}
- void addLayoutLine(int n, const string& l) { fLayoutTabs.push_back(n); fLayoutLines.push_back(l);}
-
-
-};
-
-#endif