23 #ifndef QDENGINE_QDCORE_QD_INTERFACE_DISPATCHER_H 24 #define QDENGINE_QDCORE_QD_INTERFACE_DISPATCHER_H 26 #include "common/keyboard.h" 28 #include "qdengine/qdcore/qd_resource_container.h" 29 #include "qdengine/qdcore/qd_interface_object_base.h" 30 #include "qdengine/qdcore/qd_object_list_container.h" 35 class qdInterfaceScreen;
36 class qdInterfaceElementState;
45 MODAL_SCREEN_SAVE_OVERWRITE,
46 MODAL_SCREEN_SAVE_NAME_EDIT,
51 bool redraw(
int dx = 0,
int dy = 0)
const;
72 return _screens.get_list();
79 bool select_screen(
const char *screen_name,
bool lock_resources =
false);
95 return (_cur_screen == p);
111 bool char_input_handler(
int vkey);
122 return _main_menu_screen_name.c_str();
126 return !_main_menu_screen_name.empty();
133 return _ingame_screen_names[inventory_state].c_str();
137 return !_ingame_screen_names[inventory_state].empty();
142 return _save_prompt_screen_name.c_str();
144 void set_save_prompt_screen_name(
const char *str) {
145 if (str) _save_prompt_screen_name = str;
146 else _save_prompt_screen_name =
"";
148 bool has_save_prompt_screen()
const {
149 return !_save_prompt_screen_name.empty();
152 const char *save_title_screen_name()
const {
153 return _save_title_screen_name.c_str();
155 void set_save_title_screen_name(
const char *name) {
156 _save_title_screen_name =
name;
158 bool has_save_title_screen()
const {
159 return !_save_title_screen_name.empty();
164 return _need_save_screenshot;
166 void toggle_save_screenshot(
bool state) {
167 _need_save_screenshot = state;
171 return _need_show_save_time;
173 void toggle_show_save_time(
bool state) {
174 _need_show_save_time = state;
176 bool need_show_save_title()
const {
177 return _need_show_save_title;
179 void toggle_show_save_title(
bool state) {
180 _need_show_save_title = state;
184 return _save_font_type;
186 void set_save_font_type(
int type) {
187 _save_font_type = type;
191 return _save_font_color;
193 void set_save_font_color(
int clr) {
194 _save_font_color = clr;
199 return _need_scene_redraw;
203 _need_scene_redraw = state;
219 bool is_active()
const {
223 bool is_mouse_hover()
const {
224 return _is_mouse_hover;
226 void toggle_mouse_hover() {
227 _is_mouse_hover =
true;
229 bool is_autohide_enabled()
const {
230 return !_autohide_disable;
232 void disable_autohide() {
233 _autohide_disable =
true;
237 return _modalScreenMode;
240 _modalScreenMode = mode;
243 bool set_save_title(
const char *title);
244 const char *get_save_title()
const;
252 void toggle_end_game_mode(
bool state) {
253 _end_game_mode = state;
258 _next_screen = screen_name;
261 static int option_value(
int option_id,
const char *option_data = NULL);
262 static bool set_option_value(
int option_id,
int value,
const char *oprtion_data = NULL);
264 #ifdef __QD_DEBUG_ENABLE__ 265 bool get_resources_info(qdResourceInfoContainer &infos)
const;
276 bool _background_screen_lock;
297 bool _need_save_screenshot;
299 bool _need_show_save_time;
301 bool _need_show_save_title;
305 int _save_font_color;
312 resource_container_t _resources;
318 bool _is_mouse_hover;
320 bool _autohide_disable;
323 bool _need_full_redraw;
326 bool _need_scene_redraw;
333 const char *_next_screen;
341 #endif // QDENGINE_QDCORE_QD_INTERFACE_DISPATCHER_H ModalScreenMode
для чего вызван модальный экран
Definition: qd_interface_dispatcher.h:44
bool is_screen_active(const qdInterfaceScreen *p) const
Возвращает true, если экран p в данный момент активен.
Definition: qd_interface_dispatcher.h:94
const char * ingame_screen_name(bool inventory_state=false) const
Возвращает имя внутриигрового экрана.
Definition: qd_interface_dispatcher.h:132
bool remove_screen(qdInterfaceScreen *scr)
Удаление экрана из списка.
Definition: qd_interface_dispatcher.h:38
const char * name() const
Возвращает имя объекта.
Definition: qd_named_object_base.h:40
qdResource * get_resource(const Common::Path file_name) const
Возвращает указатель на ресурс file_name.
Definition: qd_interface_dispatcher.h:103
bool quant(float dt)
Обсчет логики, параметр - время в секундах.
void update_personage_buttons()
Включает кнопки, связанные с персонажем p, выключает кнопки остальных персонажей. ...
Состояние элемента интерфейса.
Definition: qd_interface_element_state.h:156
bool need_save_screenshot() const
Нужно ли выводить скриншот к сохраненке
Definition: qd_interface_dispatcher.h:163
Definition: qd_object_list_container.h:32
Definition: qd_resource.h:34
int save_font_color() const
Цвет, которым выводится текст сэйва (в частности дата и время)
Definition: qd_interface_dispatcher.h:190
bool is_screen_in_list(const qdInterfaceScreen *scr)
Возвращает true, если экран есть в списке.
const screen_list_t & screen_list() const
Возвращает список экранов.
Definition: qd_interface_dispatcher.h:71
bool need_show_save_time() const
Нужно ли выводить дату и время при отображении сэйва
Definition: qd_interface_dispatcher.h:170
const char * save_prompt_screen_name() const
Имя модального экрана подсказки: перезаписывать сэйв или нет.
Definition: qd_interface_dispatcher.h:141
qdInterfaceObjectBase * owner() const
Возвращает указатель на владельца объекта.
Definition: qd_interface_object_base.h:43
bool select_background_screen(qdInterfaceScreen *p)
Установка фонового экрана.
bool has_ingame_screen(bool inventory_state=false) const
Возвращает true, если установлено имя внутриигрового экрана.
Definition: qd_interface_dispatcher.h:136
bool redraw(int dx=0, int dy=0) const
Отрисовка интерфейса.
XML тег.
Definition: xml_tag.h:33
qdResource * add_resource(const Common::Path file_name, const qdInterfaceElementState *owner)
Добавляет ресурс file_name с владельцем owner.
bool load_script(const xml::tag *p)
Загрузка данных из скрипта.
Базовый класс для игровых ресурсов.
Definition: console.h:28
Базовый класс для всех интерфейсных объектов.
Definition: qd_interface_object_base.h:32
void set_ingame_screen(const char *name, bool inventory_state=false)
Установка имени внутриигрового экрана.
bool mouse_handler(int x, int y, mouseDispatcher::mouseEvent ev)
Обработчик событий мыши.
bool save_script(Common::WriteStream &fh, int indent=0) const
Запись данных в скрипт.
bool keyboard_handler(Common::KeyCode vkey)
Обработчик ввода с клавиатуры.
Интерфейсный экран.
Definition: qd_interface_screen.h:44
void set_scene_redraw(bool state)
Устанавливает, надо ли если интерфейсу отрисовываться поверх сцены.
Definition: qd_interface_dispatcher.h:202
void set_main_menu_screen(const char *name)
Установка имени экрана с главным меню игры.
bool add_screen(qdInterfaceScreen *scr)
Добавление экрана.
int save_font_type() const
Тип шрифт, которым выводится текст сэйва (в частности дата и время)
Definition: qd_interface_dispatcher.h:183
bool handle_event(int event_code, const char *event_data, qdInterfaceObjectBase *sender=NULL)
mouseEvent
События.
Definition: mouse_input.h:41
void set_next_screen(const char *screen_name)
Устанавливает следующий экран.
Definition: qd_interface_dispatcher.h:257
qdInterfaceScreen * get_screen(const char *screen_name)
Поиск экрана по имени.
bool remove_resource(const Common::Path file_name, const qdInterfaceElementState *owner)
Удаляет ресурс file_name с владельцем owner.
bool select_ingame_screen(bool inventory_state=false)
Включает внутриигровой интерфейс.
bool has_main_menu() const
Возвращает true, если установлено имя экрана с главным меню игры.
Definition: qd_interface_dispatcher.h:125
const char * main_menu_screen_name() const
Возвращает имя экрана с главным меню игры.
Definition: qd_interface_dispatcher.h:121
bool select_screen(const char *screen_name, bool lock_resources=false)
Установка активного экрана.
bool need_scene_redraw() const
Возвращает true, если интерфейс отрисовывается поверх сцены.
Definition: qd_interface_dispatcher.h:198
qdResource * get_resource(const Common::Path file_name) const
Возвращает указатель на ресурс, соответствующий файлу с именем file_name.
Definition: qd_resource_container.h:156
bool rename_screen(qdInterfaceScreen *scr, const char *name)
Изменение имени экрана.