]> git.llucax.com Git - software/bife/bife++.git/blob - fallback.h
Added initial Widget, Container and Fallback implementation.
[software/bife/bife++.git] / fallback.h
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #ifndef BIFE_FALLBACK_H
4 #define BIFE_FALLBACK_H
5
6 #include "container.h"
7 #include "widget.h"
8 #include "hit.h"
9 #include "hash.h"
10 #include <vector>
11 #include <string>
12
13 using std::string;
14
15 /**
16  * Base Fallback Widget.
17  *
18  * @todo 
19  */
20 class Fallback: public Container {
21     // Attributes.
22     protected:
23         /// Root widget.
24         Widget* root;
25
26     // Methods.
27     public:
28         /**
29          * Constructor.
30          *
31          * @param name    Name of the widget.
32          */
33         Fallback(string);
34
35         /**
36          * Constructor.
37          *
38          * @param name    Name of the widget.
39          * @param attrs   Widget attributes.
40          */
41         Fallback(string, Hash);
42
43         /**
44          * Constructor.
45          *
46          * @param name    Name of the widget.
47          * @param attrs   Widget attributes.
48          * @param content Content of the widget.
49          */
50         Fallback(string, Hash, Widget&);
51
52         /**
53          * Constructor.
54          *
55          * @param name    Name of the widget.
56          * @param content Content of the widget.
57          */
58         Fallback(string, Widget&);
59
60         /**
61          * Constructor.
62          *
63          * @param name    Name of the widget.
64          * @param content Content of the widget.
65          * @param attrs   Widget attributes.
66          */
67         Fallback(string, Widget&, Hash);
68
69         /**
70          * Destructor.
71          */
72         virtual ~Fallback(void);
73
74         /**
75          * Renders the widget using a HIT template.
76          *
77          * @param  hit HIT template to use to render de widget.
78          * @return Rendered widget.
79          */
80         virtual string render(HIT&) = 0;
81 };
82
83 #endif