]> git.llucax.com Git - software/bife/bife++.git/blob - translate/translate_loader.cpp
- Moved libbife to it's own directory.
[software/bife/bife++.git] / translate / translate_loader.cpp
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #include "translate.h"
4 #include "../libbife/fallback.h"
5 #include "../libbife/widget.h"
6 #include "../libbife/hash.h"
7 #include <algorithm>
8 #include <string>
9
10 using bife::Translate;
11 using bife::Fallback;
12 using bife::Widget;
13 using bife::Hash;
14 using std::string;
15
16 /**
17  * Fallback constructor.
18  *
19  * @param  classname  Name of the class to construct.
20  * @param  widgetname Name of the widget to construct.
21  * @param  attrs      Widget's attributes.
22  * @return A new Fallback widget.
23  */
24 extern "C"
25 Fallback* fallback_constructor(const string& classname, const string& widgetname, const Hash& attrs) {
26     string cn = classname;
27     std::transform(cn.begin(), cn.end(), cn.begin(), std::tolower);
28     if (cn == "translate") {
29         return new Translate(widgetname, attrs);
30     } else {
31         return NULL;
32     }
33 }
34
35 /**
36  * Widget destructor.
37  *
38  * @param w The widget to destroy.
39  */
40 extern "C"
41 void widget_destructor(Widget* w) {
42             delete w;
43 }