Код:
// Цвета
#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); // Получить настройку