#ifndef _SCREEN_H
 
#define _SCREEN_H
 
 
 
#include "_types.h"
 
 
 
typedef struct {
 
 u8 x;                                  // коорд.лев.верхн угола окна
 
 u8 y;                                  //
 
 u8 width;                              // ширина (без учёта тени)
 
 u8 height;                             // высота (без учёта тени)
 
 u8 attr;                               // атрибут окна
 
 u8 flag;                               // флаги: .0 - "с тенью/без тени"
 
} WIND_DESC, * const P_WIND_DESC;
 
 
 
typedef struct {
 
 u8 x;                                  // коорд.лев.верхн угола окна
 
 u8 y;                                  //
 
 u8 width;                              // длина_строки + 2 = ширина без учёта рамки и тени
 
 u8 items;                              // количество пунктов меню
 
 PBKHNDL bkgnd_task;                    // ссылка на фоновую задачу
 
 u16 bgtask_period;                     // период вызова фоновой задачи, мс (1..16383)
 
 const PITEMHNDL * const handlers;      // указатель на структуру указателей на обработчики
 
 const u8 *strings;                     // указатель на текст меню
 
} MENU_DESC, * const P_MENU_DESC;
 
 
 
 
 
void scr_set_attr(u8 attr);
 
void scr_set_cursor(u8 x, u8 y);
 
void scr_print_msg(const u8 *msg);
 
void scr_print_mlmsg(const u8 * const *mlmsg);
 
void scr_print_msg_n(const u8 *msg, u8 size);
 
void scr_print_rammsg_n(u8 *msg, u8 size);
 
void scr_putchar(u8 ch);
 
void scr_fill_char(u8 ch, u16 count);
 
void scr_fill_char_attr(u8 ch, u8 attr, u16 count);
 
void scr_fill_attr(u8 attr, u16 count);
 
void scr_backgnd(void);
 
void scr_fade(void);
 
void scr_window(const P_WIND_DESC pwindesc);
 
void scr_menu(const P_MENU_DESC pmenudesc);
 
 
 
#endif