Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
6699 clevermous 1
console.dll экспортирует следующие функции:
836 diamond 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
*/
1145 diamond 89
/* сигнал о закрытии окна консоли; появился в версии 6 библиотеки;
1133 diamond 90
	флаг игнорируется функцией con_set_flags */
91
#define CON_WINDOW_CLOSED 0x200
836 diamond 92
Значение по умолчанию для флагов = 7.
93
 
94
int __stdcall con_get_font_height(void);
95
Возвращает значение высоты шрифта.
96
 
97
int __stdcall con_get_cursor_height(void);
98
Получает значение высоты курсора.
99
int __stdcall con_set_cursor_height(int new_height);
100
Устанавливает значение высоты курсора. Возвращает старое значение.
101
Попытка установить значение вне корректного интервала (от 0 до font_height-1)
102
игнорируется.
103
Курсор высоты 0 не отображается на экране.
104
Значение высоты по умолчанию - 15% от высоты шрифта.
105
 
106
int __stdcall con_getch(void);
107
Считывает один символ с клавиатуры.
108
Для обычных символов возвращается ASCII-код. Для расширенных символов
109
(например, Fx и стрелочек) первый вызов функции возвращает 0,
110
а повторный вызов возвращает расширенный код (подобно DOS-функциям ввода).
1145 diamond 111
Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается
112
значение 0.
836 diamond 113
 
114
word __stdcall con_getch2(void);
115
Считывает один символ с клавиатуры. Младший байт содержит ASCII-код клавиши
116
(0 для расширенных символов), старший - расширенный код
117
(подобно BIOS-функциям ввода).
1145 diamond 118
Начиная с версии 7 библиотеки, после закрытия окна консоли возвращается
119
значение 0.
836 diamond 120
 
121
int __stdcall con_kbhit(void);
122
Возвращает 1, если какая-то клавиша была нажата, 0 иначе. Для считывания
123
нажатой клавиши предназначены функции con_getch и con_getch2.
1133 diamond 124
Начиная с версии 6 библиотеки, после закрытия окна консоли всегда возвращает 1.
836 diamond 125
 
1133 diamond 126
char* __stdcall con_gets(char* str, int n);
836 diamond 127
Считывает строку с клавиатуры. Ввод прерывается при поступлении символа
128
новой строки, а также по прочтении n-1 символа (в зависимости от того, что
129
произойдёт раньше). В первом случае символ новой строки также записывается в
130
str. Считанная строка дополняется нулевым символом.
1133 diamond 131
Начиная с версии 6 библиотеки, функция возвращает указатель на введённую
132
строку при успешном чтении и NULL, если окно консоли было закрыто. До версии
133
6 возвращаемое значение было неопределено.
852 diamond 134
 
135
typedef int (__stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, int* ppos);
1133 diamond 136
char* __stdcall con_gets2(con_gets2_callback callback, char* str, int n);
853 diamond 137
Функция появилась в версии 4 библиотеки.
852 diamond 138
Полностью аналогична con_gets за исключением того, что когда пользователь
139
нажимает нераспознанную клавишу, вызывается указанная callback-процедура
140
(которая может, например, обрабатывать up/down для истории ввода и tab для
141
автодополнения). Процедуре передаётся код клавиши и три указателя - на строку,
142
на лимит и на текущую позицию в строке. Процедура может менять содержимое
143
строки и может менять саму строку (например, перераспределить память для
144
увеличения лимита), лимит, позицию в строке - для этого и передаются указатели.
145
Возвращаемое значение: 0=строка не менялась; 1=строка изменилась, необходимо
146
удалить старую и вывести новую; 2=строка изменилась, необходимо её вывести;
147
3=немедленно выйти из функции.
1133 diamond 148
Начиная с версии 6 библиотеки, функция возвращает указатель на введённую
149
строку при успешном чтении и NULL, если окно консоли было закрыто. До версии
150
6 возвращаемое значение было неопределено.
853 diamond 151
 
152
void __stdcall con_cls();
153
Функция появилась в версии 5 библиотеки.
154
Очищает экран и переводит курсор в левый верхний угол.
155
 
156
void __stdcall con_get_cursor_pos(int* px, int* py);
157
Функция появилась в версии 5 библиотеки.
158
Записывает в *px текущую координату курсора по оси x, в *py - по оси y.
159
 
160
void __stdcall con_set_cursor_pos(int x, int y);
161
Функция появилась в версии 5 библиотеки.
162
Устанавливает курсор в позицию с указанными координатами. Если какой-то из
163
параметров выходит за пределы соответствующего диапазона (от 0 до scr_width-1
164
для x, от 0 до scr_height-1 для y, scr_width и scr_height были заданы при
165
вызове con_init), то соответствующая координата курсора не меняется.