00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef THEME_HPP
00026 #define THEME_HPP
00027
00028 #include "../src/generic_bitmap.hpp"
00029 #include "../src/generic_font.hpp"
00030 #include "../src/generic_layout.hpp"
00031 #include "../src/window_manager.hpp"
00032 #include "../commands/cmd_generic.hpp"
00033 #include "../utils/bezier.hpp"
00034 #include "../utils/variable.hpp"
00035 #include "../controls/ctrl_generic.hpp"
00036 #include <string>
00037 #include <list>
00038 #include <map>
00039
00040 class Builder;
00041 class Interpreter;
00042
00044 class Theme: public SkinObject
00045 {
00046 private:
00047 friend class Builder;
00048 friend class Interpreter;
00049 public:
00050 Theme( intf_thread_t *pIntf ): SkinObject( pIntf ),
00051 m_windowManager( getIntf() ) {}
00052 virtual ~Theme();
00053
00054 void loadConfig();
00055 void saveConfig();
00056
00057 GenericBitmap *getBitmapById( const string &id );
00058 GenericFont *getFontById( const string &id );
00059 TopWindow *getWindowById( const string &id );
00060 GenericLayout *getLayoutById( const string &id );
00061 CtrlGeneric *getControlById( const string &id );
00062
00063 WindowManager &getWindowManager() { return m_windowManager; }
00064
00065 private:
00067 map<string, GenericBitmapPtr> m_bitmaps;
00069 map<string, GenericFontPtr> m_fonts;
00071 map<string, TopWindowPtr> m_windows;
00073 map<string, GenericLayoutPtr> m_layouts;
00075 map<string, CtrlGenericPtr> m_controls;
00077 list<CmdGenericPtr> m_commands;
00079 list<BezierPtr> m_curves;
00081 list<VariablePtr> m_vars;
00082
00083 WindowManager m_windowManager;
00084 };
00085
00086
00087 #endif