Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.66 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// \file graphics_skin_manager.h
  3. /// \author Sergey Zubkov <seZubkov@gmail.com>
  4. /// \date 04/05/2010
  5. /// Copyright
  6. ////////////////////////////////////////////////////////////////////////////////
  7. #ifndef GRAPHICS_SKIN_MANAGER_H
  8. #define GRAPHICS_SKIN_MANAGER_H
  9.  
  10. #include <string>
  11. #include <vector>
  12.  
  13. #include "graphics_skin.h"
  14.  
  15. namespace est_api
  16. {
  17. namespace g_interface
  18. {
  19.  
  20. class element_grid;
  21. class element_rectangle;
  22.  
  23. class skin_manager
  24. {
  25.     public:
  26.         /// Конструктор.
  27.         skin_manager()
  28.         {
  29.             last_skin_ = NULL;
  30.         }
  31.  
  32.         skin_manager(const std::wstring & skin_path)
  33.         {
  34.             skin_path_ = skin_path;
  35.         }
  36.        
  37.         /// Деструктор.
  38.         ~skin_manager()
  39.         {
  40.             if (last_skin_ != NULL)
  41.             {
  42.                 delete last_skin_;
  43.             }
  44.         }
  45.  
  46.         /// Установить директорию скинов. Возвращает true если директория существует
  47.         bool set_skin_directory(const std::wstring & skin_path);
  48.  
  49.         /// Получить список скинов. Под скинами будем понимать файлы с расширением
  50.         /// *.eskn.
  51.         std::vector<std::wstring> get_list_skins();
  52.        
  53.         /// Загрузить скин. Предыдущий загруженный скин остается валидным, но со
  54.         /// держимое меняется.
  55.         bool load_skin(const std::wstring & skin_name);
  56.         //{}
  57.  
  58.         /// Получить ссылку на последний загруженный скин.
  59.         inline const skin * get_last_skin()
  60.         {
  61.             return last_skin_;
  62.         }
  63.  
  64.     protected:
  65.         /// Метод читает из файла со скином файлы в буффер. Память выделяет сам
  66.         /// метод. Не забудте сделать очистику(delete []).
  67.         virtual bool read_file_from_skin(
  68.             const std::wstring & skin_file_name, const std::wstring & file_name,
  69.             unsigned long & file_size, void ** buffer
  70.             );
  71.  
  72.     private:
  73.         /** Путь до папки со скинами. */
  74.         std::wstring skin_path_;
  75.  
  76.         /** Указатель на последний загруженный скин. */
  77.         skin * last_skin_;
  78. };
  79.  
  80. class skin_converter
  81. {
  82.     public:
  83.         //
  84.         skin_converter()
  85.         {}
  86.         // Метод преобразовывает сетку скина, заданную в процентном соотношении
  87.         // в прощитанные прямоугольники по заданной облсти.
  88.         const std::vector<element_rectangle> & grid_to_rectangle(
  89.             const std::vector<element_grid> & el_grid, const long & x_size,const long & y_size
  90.             );
  91.         //{}
  92. };
  93.  
  94. } // namespace graphics
  95. } // namespace est_api
  96.  
  97. #endif // GRAPHICS_SKIN_MANAGER_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement