5,8 → 5,8 |
|
/* flags meaning |
ed_figure_only= 1000000000000000b ;îäíè ñèìâîëû |
ed_always_focus= 100000000000000b |
ed_focus= 10b ;ôîêóñ ââîäà ïðèëîæåíèÿ |
ed_always_focus= 100000000000000b // âñåãäà ñ êóðñîðîì (ôîêóñîì) |
ed_focus= 10b ;ôîêóñ ââîäà ïðèëîæåíèÿ, ìûøèòñÿ ñàìîñòîÿòåëüíî |
ed_pass= 1b ;ïîëå ñ ïàðîëåì |
ed_shift_on= 1000b ;åñëè íå óñòàíîâëåí -çíà÷èò âïåðâûå íàæàò shift,åñëè áûë óñòàíîâëåí, çíà÷èò ìû óæå ÷òî - òî äåëàëè óäåðæèâàÿ shift |
ed_shift_on_off=1111111111110111b |
44,7 → 44,7 |
unsigned int text_color; |
unsigned int max; |
char *text; |
struct edit_box_t** mouse_variable; // must be pointer edit_box** to save focused editbox |
void *mouse_variable; // must be pointer edit_box** to save focused editbox |
unsigned int flags; |
|
unsigned int size; // used symbols in buffer without trailing zero |
72,7 → 72,7 |
max_chars = Limit of number of characters user can enter into edit box. |
*/ |
|
edit_box* kolibri_new_edit_box(unsigned int tlx, unsigned int tly, unsigned int max_chars, edit_box **editbox_interlock) |
edit_box* kolibri_new_edit_box(unsigned int tlx, unsigned int tly, unsigned int max_chars, void *editbox_interlock) |
{ |
unsigned int PIXELS_PER_CHAR = 7; |
edit_box *new_textbox = (edit_box *)calloc(1, sizeof(edit_box)); |
99,12 → 99,24 |
|
extern void (*edit_box_draw)(edit_box *) __attribute__((__stdcall__)); |
|
extern void (*edit_box_key)(edit_box *) __attribute__((__stdcall__)); |
/* editbox_key is a wrapper written in assembly to handle key press events for editboxes */ |
/* because inline assembly in GCC is a PITA and interferes with the EAX (AH) register */ |
/* which edit_box_key requires */ |
extern void editbox_key(edit_box *) __attribute__((__stdcall__)); |
__attribute__((__stdcall__)) void editbox_key(edit_box *e, oskey_t ch) |
/// åñëè flags íå ñîäåðæèò ed_focus, èãíîðèðóåò ââîä |
/// åñëè flags ñîäåðæèò ed_mouse_on èëè ed_disabled, èãíîðèðóåò ââîä |
/// íà ââîäå îæèäàåò ch - êîä êëàâèøè, òîëüêî â ðåæèìå ASCII |
{ |
__asm__ __volatile__ ( |
"push %2\n\t" |
"call *%1 \n\t"::"a"(ch.val), "m"(edit_box_key), "m"(e):); |
} |
|
extern void (*edit_box_mouse)(edit_box *) __attribute__((__stdcall__)); |
/// ïðè ùåë÷êå íå ëåâîé êíîïêîé, îáíóëÿåò *mouse_variable! è ñáðàñûâàåò ôëàã ed_mouse_on |
|
|
extern void (*edit_box_set_text)(edit_box *, char *) __attribute__((__stdcall__)); |
extern volatile unsigned press_key; |
#endif /* KOLIBRI_EDITBOX_H */ |