Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////
- /// \file graphics_skin_manager.h
- /// \author Sergey Zubkov <seZubkov@gmail.com>
- /// \date 04/05/2010
- /// Copyright
- ////////////////////////////////////////////////////////////////////////////////
- #ifndef GRAPHICS_SKIN_MANAGER_H
- #define GRAPHICS_SKIN_MANAGER_H
- #include <string>
- #include <vector>
- #include "graphics_skin.h"
- namespace est_api
- {
- namespace g_interface
- {
- class element_grid;
- class element_rectangle;
- class skin_manager
- {
- public:
- /// Конструктор.
- skin_manager()
- {
- last_skin_ = NULL;
- }
- skin_manager(const std::wstring & skin_path)
- {
- skin_path_ = skin_path;
- }
- /// Деструктор.
- ~skin_manager()
- {
- if (last_skin_ != NULL)
- {
- delete last_skin_;
- }
- }
- /// Установить директорию скинов. Возвращает true если директория существует
- bool set_skin_directory(const std::wstring & skin_path);
- /// Получить список скинов. Под скинами будем понимать файлы с расширением
- /// *.eskn.
- std::vector<std::wstring> get_list_skins();
- /// Загрузить скин. Предыдущий загруженный скин остается валидным, но со
- /// держимое меняется.
- bool load_skin(const std::wstring & skin_name);
- //{}
- /// Получить ссылку на последний загруженный скин.
- inline const skin * get_last_skin()
- {
- return last_skin_;
- }
- protected:
- /// Метод читает из файла со скином файлы в буффер. Память выделяет сам
- /// метод. Не забудте сделать очистику(delete []).
- virtual bool read_file_from_skin(
- const std::wstring & skin_file_name, const std::wstring & file_name,
- unsigned long & file_size, void ** buffer
- );
- private:
- /** Путь до папки со скинами. */
- std::wstring skin_path_;
- /** Указатель на последний загруженный скин. */
- skin * last_skin_;
- };
- class skin_converter
- {
- public:
- //
- skin_converter()
- {}
- // Метод преобразовывает сетку скина, заданную в процентном соотношении
- // в прощитанные прямоугольники по заданной облсти.
- const std::vector<element_rectangle> & grid_to_rectangle(
- const std::vector<element_grid> & el_grid, const long & x_size,const long & y_size
- );
- //{}
- };
- } // namespace graphics
- } // namespace est_api
- #endif // GRAPHICS_SKIN_MANAGER_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement