#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 * vAttach(vContext *);
virtual bool vCreate(void) = 0;
virtual void vDeleteAllStyles(void);
virtual bool vDeleteStyle(const std::string);
virtual void vDraw(void) = 0;
virtual vContext * vDetach(vContext *);
virtual uInt32 vGetHeight(void) { return height; };
virtual sStyle * vGetStyle(const std::string);
virtual uInt32 vGetWidth(void) { return width; };
virtual bool vIsAttached(void) { return attached; }
virtual void vSetPos(int32, int32);
virtual void vSetSize(uInt32, uInt32);
virtual void vSetStyle(const std::string, sStyle *);
virtual ~vContext();
}; // vContext
#endif