Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/context.h
Go to the documentation of this file.
00001 
00008 #ifndef CONTEXT_H_
00009 #define CONTEXT_H_
00010 
00011 #include <QString>
00012 
00013 class CASheet;
00014 class CAMusElement;
00015 
00016 class CAContext {
00017 public:
00018         CAContext( const QString name, CASheet *s );
00019         virtual ~CAContext();
00020         virtual CAContext* clone( CASheet* ) = 0;
00021 
00022         enum CAContextType {
00023                 Staff,
00024                 FunctionMarkContext,
00025                 LyricsContext
00026         };
00027 
00028         const QString name() { return _name; }
00029         void setName(const QString name) { _name = name; }
00030 
00031         CAContextType contextType() { return _contextType; }
00032 
00033         CASheet *sheet() { return _sheet; }
00034         void setSheet(CASheet *sheet) { _sheet = sheet; }
00035 
00036         virtual void clear() = 0;
00037         virtual CAMusElement *next(CAMusElement *elt) = 0;
00038         virtual CAMusElement *previous(CAMusElement *elt) = 0;
00039         virtual bool remove( CAMusElement *elt ) = 0;
00040 
00041 protected:
00042         void setContextType( CAContextType t ) { _contextType = t; }
00043 
00044         CASheet *_sheet;
00045         QString _name;
00046         CAContextType _contextType;
00047 };
00048 #endif /* CONTEXT_H_ */