]> git.llucax.com Git - software/bife/bife++.git/blob - libbife/container.cpp
- Normalized Fallback constructor to be the same of Widget (or Container).
[software/bife/bife++.git] / libbife / container.cpp
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #include "container.h"
4 #include <sstream>
5
6 using std::stringstream;
7 using namespace bife;
8
9 #ifdef DEBUG
10 #include <iostream>
11 using std::cerr;
12 using std::endl;
13 #endif
14
15 Container::Container(void) {
16 #ifdef DEBUG
17     cerr << "In Container::Container();" << endl;
18 #endif
19 }
20
21 Container::Container(const Hash& attrs): Widget(attrs) {
22 #ifdef DEBUG
23     cerr << "In Container::Container(attrs = {" /* TODO << attrs */ << "});" << endl;
24 #endif
25 }
26
27 Container::Container(const Hash& attrs, Widget* content): Widget(attrs) {
28     // FIXME - this->content.push_back(content);
29 #ifdef DEBUG
30     cerr << "In Container::Container(attrs = {" /* TODO << attrs */
31         << "}, content = {" /* TODO << content */ << "});" << endl;
32 #endif
33 }
34
35 Container::Container(Widget* content, const Hash& attrs): Widget(attrs) {
36     // FIXME - this->content.push_back(content);
37 #ifdef DEBUG
38     cerr << "In Container::Container(content = {" /* TODO << content */
39         << "}, attrs = {" /* TODO << attrs */ << "});" << endl;
40 #endif
41 }
42
43 Container::~Container(void) {
44 #ifdef DEBUG
45     cerr << "In Container destructor." << endl;
46 #endif
47 }
48
49 /*
50 string Container::render(HIT& hit) {
51     stringstream out;
52     out << "container = attributes: [";
53     for (Hash::iterator i = attrs.begin(); i != --attrs.end(); i++) {
54         out << i->first << ": " << i->second << ", ";
55     }
56     Hash::iterator i = --attrs.end();
57     out << i->first << ": " << i->second << "] ";
58     out << "content: [" << renderContent(hit) << "]";
59     return out.str();
60 }
61 */
62
63 string Container::renderContent(HIT& hit) {
64     stringstream out;
65     for (Content::iterator i = content.begin(); i != content.end(); i++) {
66         out << (*i)->render(hit);
67     }
68     return out.str();
69 }
70
71 void Container::append(Widget* widget) {
72     content.push_back(widget);
73 }