Код:
// Цвета #define CLR_TRANSP 0x00 // Прозрачный #define CLR_LGRAY 0x01 // Светло серый #define CLR_DGRAY 0x02 // Тёмно серый #define CLR_BLACK 0x03 // Чёрный // Сигналы #define SIGNAL_REPAINT 0x01 // Послать сигнал перерисовать экран #define SIGNAL_DELETE 0x02 // Удалить компоненты #define SIGNAL_MOVE 0x03 // Переместить компонент // Компоненты #define CTL_SMALLF_TEXT 0x01 // Маленький текст #define CTL_LARGEF_TEXT 0x02 // Большой текст #define CTL_ICON 0x03 // Иконка или пиктограмма #define CTL_FIELD 0x04 // Поле для ввода #define CTL_COMBOBOX 0x05 // Список комбобокс #define CTL_LISTBOX 0x06 // Список листбокс #define CTL_CALENDAR 0x07 // Календарь // Кнопки #define KEY_TL 0x01 // Сверху-слева #define KEY_BL 0x02 // Снизу-слева #define KEY_TR 0x03 // Сверху-справа #define KEY_BR 0x04 // Снизу-справа // Структура даты typedef struct { unsigned int day; // День unsigned int month; // Месяц unsigned int year; // Год } DATE; // Структура часы typedef struct { unsigned int hour; // Часы unsigned int minutes; // Минуты unsigned int second; // Секунды unsigned int msec; // Миллисекунды } TIME; // Структура компонента typedef struct { int control; // ID компонента int x; // Положение компонента по X-коордиенаты int y; // Положение компонента по X-коордиенаты int width; // Ширина компонента int height; // Высота компонента int color; // Цвет компонента char text[4096]; // Текст компонента } CONTROL; // Структура записной книжки typedef struct { char name[50]; // ФИО char tel[18]; // Телефон char mobile[18];// Мобильный телефон } PHONEBOOK; // Структура настройки typedef struct { int app_id; // ID приложения char config[20]; // Ключ char value[50]; // Значение } CONFIG; // Функции // Дата и время TIME *get_time(); // Получить текущее время DATE *get_date(); // Получить текующую дату // Компоненты CONTROL *draw_smallf_text(int x, int y, char *text, int size); // Нарисовать маленький текст CONTROL *draw_largef_text(int x, int y, char *text, int size); // Нарисовать большой текст CONTROL *draw_icon(char *data, int width, int height); // Нарисовать иконку или пиктограмму clear_screen(); // Очистить экран set_pixel(int x, int y, color); // Нарисовать точку set_title(char *title); // Установить заголовок CONTROL *get_desktop(); // Получить ID рабочего стола CONTROL *show_field(int x, int y, int width, int height, default); // Показать поле CONTROL *show_combobox(int x, int y, char **values); // Показать список комбо бокс CONTROL *show_listbox(int x, int y, char **values); // Показать список лист бокс CONTROL *show_calendar(int x, int y, int width, int height); // Показать календарь set_date_calendar(CONTROL id, DATE date); // Установить дату в элементе календаря repaint(CONTROL id); // Перерисовать send_signal(CONTROL id, int signal); // Послать сигнал move(CONTROL id, int x, int y, int width, int height); // Переместить компонент // Звук и ожидание beep(); // Сигнал sleep(int msec); // Ждать // Кнопки int on_key(int key); // если нажали кнопку void send_key(int key); // послать имитацию нажатия кнопкки // Записная книжка add_new_record(char *name, char *tel, char *mobile); // Добавить запись телефона, ФИО, мобильного телефона PHONEBOOK *get_next_record(); // Дать следующую запить BOOL is_eof(); // конец? // Работа с настройками add_new_config(int app_id, char *config, char *value); // Добавить настройку edit_config(int app_id, char *config, char *value); // Изменить настройку char *get_config(int app_id, char *config); // Получить настройку