Subversion Repositories Kolibri OS

Rev

Rev 1145 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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[<number1>;<number2>;<number3>m - âûáîð àòðèáóòîâ ñèìâîëîâ:
  59.                 ìîæíî óêàçûâàòü îäèí, äâà èëè òðè êîäà â ëþáîì ïîðÿäêå;
  60.                 0 = íîðìàëüíîå èçîáðàæåíèå (áåëûå ñèìâîëû íà ÷¸ðíîì ôîíå)
  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 = áåëûé ôîí
  80.         Ñëåäóþùèå ïîñëåäîâàòåëüíîñòè ïîÿâèëèñü â âåðñèè 5 áèáëèîòåêè:
  81.         Esc[2J - î÷èñòèòü ýêðàí, ïåðåìåñòèòü êóðñîð â ëåâûé âåðõíèé óãîë
  82.         Esc[<number1>;<number2>H = Esc[<number1>;<number2>f -
  83.                 óñòàíîâèòü êóðñîð â ïîçèöèþ ñ êîîðäèíàòàìè <number1>,<number2>
  84.         Esc[<number>A - ïåðåìåñòèòü êóðñîð íà <number> ñòðîê ââåðõ
  85.         Esc[<number>B - ïåðåìåñòèòü êóðñîð íà <number> ñòðîê âíèç
  86.         Esc[<number>C - ïåðåìåñòèòü êóðñîð íà <number> ïîçèöèé âïðàâî
  87.         Esc[<number>D - ïåðåìåñòèòü êóðñîð íà <number> ïîçèöèé âëåâî
  88. */
  89. /* ñèãíàë î çàêðûòèè îêíà êîíñîëè; ïîÿâèëñÿ â âåðñèè 6 áèáëèîòåêè;
  90.         ôëàã èãíîðèðóåòñÿ ôóíêöèåé con_set_flags */
  91. #define CON_WINDOW_CLOSED 0x200
  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-ôóíêöèÿì ââîäà).
  111. Íà÷èíàÿ ñ âåðñèè 7 áèáëèîòåêè, ïîñëå çàêðûòèÿ îêíà êîíñîëè âîçâðàùàåòñÿ
  112. çíà÷åíèå 0.
  113.  
  114. word __stdcall con_getch2(void);
  115. Ñ÷èòûâàåò îäèí ñèìâîë ñ êëàâèàòóðû. Ìëàäøèé áàéò ñîäåðæèò ASCII-êîä êëàâèøè
  116. (0 äëÿ ðàñøèðåííûõ ñèìâîëîâ), ñòàðøèé - ðàñøèðåííûé êîä
  117. (ïîäîáíî BIOS-ôóíêöèÿì ââîäà).
  118. Íà÷èíàÿ ñ âåðñèè 7 áèáëèîòåêè, ïîñëå çàêðûòèÿ îêíà êîíñîëè âîçâðàùàåòñÿ
  119. çíà÷åíèå 0.
  120.  
  121. int __stdcall con_kbhit(void);
  122. Âîçâðàùàåò 1, åñëè êàêàÿ-òî êëàâèøà áûëà íàæàòà, 0 èíà÷å. Äëÿ ñ÷èòûâàíèÿ
  123. íàæàòîé êëàâèøè ïðåäíàçíà÷åíû ôóíêöèè con_getch è con_getch2.
  124. Íà÷èíàÿ ñ âåðñèè 6 áèáëèîòåêè, ïîñëå çàêðûòèÿ îêíà êîíñîëè âñåãäà âîçâðàùàåò 1.
  125.  
  126. char* __stdcall con_gets(char* str, int n);
  127. Ñ÷èòûâàåò ñòðîêó ñ êëàâèàòóðû. Ââîä ïðåðûâàåòñÿ ïðè ïîñòóïëåíèè ñèìâîëà
  128. íîâîé ñòðîêè, à òàêæå ïî ïðî÷òåíèè n-1 ñèìâîëà (â çàâèñèìîñòè îò òîãî, ÷òî
  129. ïðîèçîéä¸ò ðàíüøå).  ïåðâîì ñëó÷àå ñèìâîë íîâîé ñòðîêè òàêæå çàïèñûâàåòñÿ â
  130. str. Ñ÷èòàííàÿ ñòðîêà äîïîëíÿåòñÿ íóëåâûì ñèìâîëîì.
  131. Íà÷èíàÿ ñ âåðñèè 6 áèáëèîòåêè, ôóíêöèÿ âîçâðàùàåò óêàçàòåëü íà ââåä¸ííóþ
  132. ñòðîêó ïðè óñïåøíîì ÷òåíèè è NULL, åñëè îêíî êîíñîëè áûëî çàêðûòî. Äî âåðñèè
  133. 6 âîçâðàùàåìîå çíà÷åíèå áûëî íåîïðåäåëåíî.
  134.  
  135. typedef int (__stdcall * con_gets2_callback)(int keycode, char** pstr, int* pn, int* ppos);
  136. char* __stdcall con_gets2(con_gets2_callback callback, char* str, int n);
  137. Ôóíêöèÿ ïîÿâèëàñü â âåðñèè 4 áèáëèîòåêè.
  138. Ïîëíîñòüþ àíàëîãè÷íà con_gets çà èñêëþ÷åíèåì òîãî, ÷òî êîãäà ïîëüçîâàòåëü
  139. íàæèìàåò íåðàñïîçíàííóþ êëàâèøó, âûçûâàåòñÿ óêàçàííàÿ callback-ïðîöåäóðà
  140. (êîòîðàÿ ìîæåò, íàïðèìåð, îáðàáàòûâàòü up/down äëÿ èñòîðèè ââîäà è tab äëÿ
  141. àâòîäîïîëíåíèÿ). Ïðîöåäóðå ïåðåäà¸òñÿ êîä êëàâèøè è òðè óêàçàòåëÿ - íà ñòðîêó,
  142. íà ëèìèò è íà òåêóùóþ ïîçèöèþ â ñòðîêå. Ïðîöåäóðà ìîæåò ìåíÿòü ñîäåðæèìîå
  143. ñòðîêè è ìîæåò ìåíÿòü ñàìó ñòðîêó (íàïðèìåð, ïåðåðàñïðåäåëèòü ïàìÿòü äëÿ
  144. óâåëè÷åíèÿ ëèìèòà), ëèìèò, ïîçèöèþ â ñòðîêå - äëÿ ýòîãî è ïåðåäàþòñÿ óêàçàòåëè.
  145. Âîçâðàùàåìîå çíà÷åíèå: 0=ñòðîêà íå ìåíÿëàñü; 1=ñòðîêà èçìåíèëàñü, íåîáõîäèìî
  146. óäàëèòü ñòàðóþ è âûâåñòè íîâóþ; 2=ñòðîêà èçìåíèëàñü, íåîáõîäèìî å¸ âûâåñòè;
  147. 3=íåìåäëåííî âûéòè èç ôóíêöèè.
  148. Íà÷èíàÿ ñ âåðñèè 6 áèáëèîòåêè, ôóíêöèÿ âîçâðàùàåò óêàçàòåëü íà ââåä¸ííóþ
  149. ñòðîêó ïðè óñïåøíîì ÷òåíèè è NULL, åñëè îêíî êîíñîëè áûëî çàêðûòî. Äî âåðñèè
  150. 6 âîçâðàùàåìîå çíà÷åíèå áûëî íåîïðåäåëåíî.
  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), òî ñîîòâåòñòâóþùàÿ êîîðäèíàòà êóðñîðà íå ìåíÿåòñÿ.
  166.