builder.hpp
Go to the documentation of this file.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 #ifdef HAVE_CONFIG_H
00026 # include "config.h"
00027 #endif
00028
00029 #ifndef BUILDER_HPP
00030 #define BUILDER_HPP
00031
00032 #include "builder_data.hpp"
00033 #include "../src/skin_common.hpp"
00034
00035 #include <string>
00036 #include <list>
00037 #include <map>
00038
00039 class Theme;
00040 class Bezier;
00041 class CmdGeneric;
00042 class GenericFont;
00043 class Position;
00044 class GenericRect;
00045
00046
00047
00048 class Builder: public SkinObject
00049 {
00050 public:
00051 Builder( intf_thread_t *pIntf, const BuilderData &rData,
00052 const string &rPath );
00053 virtual ~Builder();
00054
00055
00056
00057 Theme *build();
00058
00059
00060 CmdGeneric *parseAction( const string &rAction );
00061
00062 private:
00063
00064 const BuilderData &m_rData;
00065
00066 const string m_path;
00067
00068
00069 Theme *m_pTheme;
00070
00071 void addTheme( const BuilderData::Theme &rData );
00072 void addIniFile( const BuilderData::IniFile &rData );
00073 void addBitmap( const BuilderData::Bitmap &rData );
00074 void addSubBitmap( const BuilderData::SubBitmap &rData );
00075 void addBitmapFont( const BuilderData::BitmapFont &rData );
00076 void addFont( const BuilderData::Font &rData );
00077 void addPopupMenu( const BuilderData::PopupMenu &rData );
00078 void addMenuItem( const BuilderData::MenuItem &rData );
00079 void addMenuSeparator( const BuilderData::MenuSeparator &rData );
00080 void addWindow( const BuilderData::Window &rData );
00081 void addLayout( const BuilderData::Layout &rData );
00082 void addAnchor( const BuilderData::Anchor &rData );
00083 void addButton( const BuilderData::Button &rData );
00084 void addCheckbox( const BuilderData::Checkbox &rData );
00085 void addImage( const BuilderData::Image &rData );
00086 void addPanel( const BuilderData::Panel &rData );
00087 void addText( const BuilderData::Text &rData );
00088 void addRadialSlider( const BuilderData::RadialSlider &rData );
00089 void addSlider( const BuilderData::Slider &rData );
00090 void addList( const BuilderData::List &rData );
00091 void addTree( const BuilderData::Tree &rData );
00092 void addVideo( const BuilderData::Video &rData );
00093
00094
00095 template<class T> void add_objects(const std::list<T> &list,
00096 void (Builder::*addfn)(const T &));
00097
00098
00099 const Position makePosition( const string &rLeftTop,
00100 const string &rRightBottom,
00101 int xPos, int yPos, int width, int height,
00102 const GenericRect &rRect,
00103 bool xKeepRatio = false,
00104 bool yKeepRatio = false ) const;
00105
00106
00107 string getFilePath( const string &fileName ) const;
00108
00109
00110 GenericFont *getFont( const string &fontId );
00111
00112
00113 Bezier *getPoints( const char *pTag ) const;
00114
00115
00116 uint32_t getColor( const string &rVal ) const;
00117
00118
00119 image_handler_t *m_pImageHandler;
00120 };
00121
00122 #endif
00123