]> git.llucax.com Git - software/bife/bife++.git/blob - widget.h
Added initial Widget, Container and Fallback implementation.
[software/bife/bife++.git] / widget.h
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #ifndef BIFE_WIDGET_H
4 #define BIFE_WIDGET_H
5
6 #include "hit.h"
7 #include "hash.h"
8 #include <string>
9
10 using std::string;
11
12 /**
13  * Base Widget Class.
14  *
15  * @todo 
16  */
17 class Widget {
18     // Attributes.
19     public:
20         /// Widget attributes.
21         Hash attrs;
22
23     // Methods.
24     public:
25         /**
26          * Constructor.
27          */
28         Widget(void);
29
30         /**
31          * Constructor.
32          *
33          * @param attrs Widget attributes.
34          */
35         Widget(Hash);
36
37         /**
38          * Destructor.
39          */
40         virtual ~Widget(void);
41
42         /**
43          * Renders the widget using a HIT template.
44          *
45          * @param  hit HIT template to use to render de widget.
46          * @return Rendered widget.
47          */
48         virtual string render(HIT&) = 0;
49
50         /**
51          * Renders the widget using a HIT template.
52          *
53          * @param  hit HIT template to use to render de widget.
54          * @return Rendered widget.
55          */
56         virtual operator string(void) const;
57 };
58
59 #endif