1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
// Copyright (C) 1995 The New York Group Theory Cooperative
// See magnus/doc/COPYRIGHT for the full notice.
// Contents: Declarations of FE interface classes which define
// viewStructures
//
// Principal Author: Roger Needham
//
// Status: in progress
//
// Revision History:
//
#ifndef _VIEWSTRUCTURE_H_
#define _VIEWSTRUCTURE_H_
#include "FEData.h"
#include "ARCSlotID.h"
#include "ViewContents.h"
//---------------------------------------------------------------------------//
//--------------------------- ObjectView ------------------------------------//
//---------------------------------------------------------------------------//
class ObjectView
{
public:
ObjectView(ostream& ostr, OID oid, Chars heritage);
};
//---------------------------------------------------------------------------//
//--------------------------- ProblemView -----------------------------------//
//---------------------------------------------------------------------------//
class ProblemView : public FEData
{
public:
ProblemView(ostream& o, OID oid, const Text& title, const Text& banner,
const char* helpID = "none", const Chars abbreviation = "none");
void startItemGroup( );
void startItemGroup(const Expression& E);
void add(const Text& name, ARCSlotID asi, int value = 0, bool enabled = true);
void done( );
private:
enum StateType { INIT, ITEM_GROUP, DONE };
StateType state;
ostream& ostr;
};
// ------------------------- EnumertatorProblemView -------------------------//
class EnumertatorProblemView : public FEData
{
public:
EnumertatorProblemView(OID oid,const Chars& title, const Chars& banner,
const char* helpID = "none",
const Chars abbreviation = "none")
: theOID( oid ),
theTitle( title ),
theBanner( banner ),
theHelpID( helpID ),
theAbbreviation( abbreviation ),
theParameters("Parameters"),
theSubproblems("Subproblems")
{ }
void addProblem(const Subproblem& sp){
theSubproblems.add(sp);
}
void addParameter(const ViewContent& c){
theParameters.add(c);
}
void done(ostream& ostr) const;
ParameterStructure extractParameters()const {
return ParameterStructure(theOID, theParameters);
}
private:
OID theOID;
Chars theTitle;
Chars theBanner;
Chars theHelpID;
Chars theAbbreviation;
GroupWindow theParameters;
GroupWindow theSubproblems;
};
#endif
|