#ifndef VCONTEXT_H
#define VCONTEXT_H
#include <map>
#include <list>
#include <string>
#include <objgfx40.h>
#include <sStyle.h>
class vContext : public ogSurface {
protected:
std::map<const std::string, sStyle *> styles;
std::list<vContext *> cContexts; // child contexts
vContext * pContext; // parent context
ogSurface * realView;
int32 curX, curY;
uInt32 width, height;
bool attached;
public:
vContext(vContext *);
virtual vContext * Attach(vContext *);
virtual void DeleteAllStyles(void) { styles.clear(); };
virtual bool DeleteStyle(const std::string);
virtual void Draw(void) = 0;
virtual vContext * Detach(vContext *);
virtual sStyle * GetStyle(const std::string);
virtual bool IsAttached(void) { return attached; }
virtual void SetPos(int32, int32);
virtual void SetSize(uInt32, uInt32);
virtual void SetStyle(const std::string, sStyle *);
virtual ~vContext();
}; // vContext
#endif