Subversion Repositories Kolibri OS

Rev

Rev 852 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
836 diamond 1
console.obj экспортирует следующие функции:
2
 
3
typedef unsigned long dword; /* 32-битное беззнаковое целое */
4
typedef unsigned short word; /* 16-битное беззнаковое целое */
5
 
6
void __stdcall con_init(dword wnd_width, dword wnd_height,
7
	dword scr_width, dword scr_height, const char* title);
8
Инициализация консоли. Вызывается один раз в начале программы.
9
wnd_width, wnd_height - высота и ширина (в символах) видимой в окне консоли
10
	области;
11
scr_width, scr_height - высота и ширина (в символах) всей консоли;
12
любые из первых 4 параметров могут быть установлены в -1 (=0xFFFFFFFF)
13
	- использовать значения по умолчанию;
14
title - заголовок окна консоли.
15
 
16
void __stdcall con_exit(bool bCloseWindow);
17
Вызывается при завершении программы. Если (байтовый) параметр bCloseWindow
18
нулевой, то окно консоли остаётся на экране до того момента, как пользователь
19
пожелает закрыть его, при этом к заголовку добавляется строка " [Finished]".
20
 
21
void __stdcall con_set_title(const char* title);
22
Устанавливает новый заголовок окна консоли.
23
 
24
void __stdcall con_write_asciiz(const char* string);
25
Выводит ASCIIZ-строку в консоль в текущую позицию, продвигает текущую позицию.
26
 
27
void __stdcall con_write_string(const char* string, dword length);
28
Аналогично con_write_asciiz, но выводит ровно length символов.
29
 
30
int __cdecl con_printf(const char* format, ...)
31
Стандартная printf из ANSI C.
32
 
33
dword __stdcall con_get_flags(void);
34
Получает значение флагов вывода.
35
dword __stdcall con_set_flags(dword new_flags);
36
Устанавливает значение флагов вывода. Возвращает старое значение.
37
Флаги (битовая маска):
38
/* цвет текста */
39
#define CON_COLOR_BLUE		1
40
#define CON_COLOR_GREEN		2
41
#define CON_COLOR_RED		4
42
#define CON_COLOR_BRIGHT	8
43
/* цвет фона */
44
#define CON_BGR_BLUE		0x10
45
#define CON_BGR_GREEN		0x20
46
#define CON_BGR_RED		0x40
47
#define CON_BGR_BRIGHT		0x80
48
/* управление выводом */
49
#define CON_IGNORE_SPECIALS	0x100
50
/* Если флаг сброшен, функция интерпретирует специальные символы:
51
	10 ('\n') - перевод в начало следующей строки
52
	13 ('\r') - перевод в начало текущей строки
53
	8 ('\b') - забой (на символ назад)
54
	9 ('\t') - табуляция
55
	27 ('\033'='\x1B') - начало Esc-последовательности;
56
иначе выводит их как обычные символы. */
57
/* Поддерживаемые Esc-последовательности:
58
	Esc[;;m - выбор атрибутов символов:
59
		можно указывать один, два или три кода в любом порядке;
60
 
61
		1 = выделение яркостью
62
		5 = яркий фон
63
		7 = реверсное изображение (чёрные символы на белом фоне)
64
		30 = чёрные символы
65
		31 = красные символы
66
		32 = зелёные символы
67
		33 = коричневые символы
68
		34 = синие символы
69
		35 = фиолетовые символы
70
		36 = бирюзовые символы
71
		37 = белые символы
72
		40 = чёрный фон
73
		41 = красный фон
74
		42 = зелёный фон
75
		43 = коричневый фон
76
		44 = синий фон
77
		45 = фиолетовый фон
78
		46 = бирюзовый фон
79
		47 = белый фон
853 diamond 80
	Следующие последовательности появились в версии 5 библиотеки:
81
	Esc[2J - очистить экран, переместить курсор в левый верхний угол
82
	Esc[;H = Esc[;f -
83
		установить курсор в позицию с координатами ,
84
	Esc[A - переместить курсор на  строк вверх
85
	Esc[B - переместить курсор на  строк вниз
86
	Esc[C - переместить курсор на  позиций вправо
87
	Esc[D - переместить курсор на  позиций влево
836 diamond 88
*/
89
Значение по умолчанию для флагов = 7.
90
 
91
int __stdcall con_get_font_height(void);
92
Возвращает значение высоты шрифта.
93
 
94
int __stdcall con_get_cursor_height(void);
95
Получает значение высоты курсора.
96
int __stdcall con_set_cursor_height(int new_height);
97
Устанавливает значение высоты курсора. Возвращает старое значение.
98
Попытка установить значение вне корректного интервала (от 0 до font_height-1)
99
игнорируется.
100
Курсор высоты 0 не отображается на экране.
101
Значение высоты по умолчанию - 15% от высоты шрифта.
102
 
103
int __stdcall con_getch(void);
104
Считывает один символ с клавиатуры.
105
Для обычных символов возвращается ASCII-код. Для расширенных символов
106
(например, Fx и стрелочек) первый вызов функции возвращает 0,
107
а повторный вызов возвращает расширенный код (подобно DOS-функциям ввода).
108
 
109
word __stdcall con_getch2(void);
110
Считывает один символ с клавиатуры. Младший байт содержит ASCII-код клавиши
111
(0 для расширенных символов), старший - расширенный код
112
(подобно BIOS-функциям ввода).
113
 
114
int __stdcall con_kbhit(void);
115
Возвращает 1, если какая-то клавиша была нажата, 0 иначе. Для считывания
116
нажатой клавиши предназначены функции con_getch и con_getch2.
117
 
118
void __stdcall con_gets(char* str, int n);
119
Считывает строку с клавиатуры. Ввод прерывается при поступлении символа
120
новой строки, а также по прочтении n-1 символа (в зависимости от того, что
121
произойдёт раньше). В первом случае символ новой строки также записывается в
122
str. Считанная строка дополняется нулевым символом.
852 diamond 123
 
124
typedef int (__stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, int* ppos);
125
void __stdcall con_gets2(con_gets2_callback callback, char* str, int n);
853 diamond 126
Функция появилась в версии 4 библиотеки.
852 diamond 127
Полностью аналогична con_gets за исключением того, что когда пользователь
128
нажимает нераспознанную клавишу, вызывается указанная callback-процедура
129
(которая может, например, обрабатывать up/down для истории ввода и tab для
130
автодополнения). Процедуре передаётся код клавиши и три указателя - на строку,
131
на лимит и на текущую позицию в строке. Процедура может менять содержимое
132
строки и может менять саму строку (например, перераспределить память для
133
увеличения лимита), лимит, позицию в строке - для этого и передаются указатели.
134
Возвращаемое значение: 0=строка не менялась; 1=строка изменилась, необходимо
135
удалить старую и вывести новую; 2=строка изменилась, необходимо её вывести;
136
3=немедленно выйти из функции.
853 diamond 137
 
138
void __stdcall con_cls();
139
Функция появилась в версии 5 библиотеки.
140
Очищает экран и переводит курсор в левый верхний угол.
141
 
142
void __stdcall con_get_cursor_pos(int* px, int* py);
143
Функция появилась в версии 5 библиотеки.
144
Записывает в *px текущую координату курсора по оси x, в *py - по оси y.
145
 
146
void __stdcall con_set_cursor_pos(int x, int y);
147
Функция появилась в версии 5 библиотеки.
148
Устанавливает курсор в позицию с указанными координатами. Если какой-то из
149
параметров выходит за пределы соответствующего диапазона (от 0 до scr_width-1
150
для x, от 0 до scr_height-1 для y, scr_width и scr_height были заданы при
151
вызове con_init), то соответствующая координата курсора не меняется.