рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд▓реЗрдЦрди! рд╕реА рдореЗрдВ KolibriOS рдХреЗ рд▓рд┐рдП

рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВ: "рдХреНрдпрд╛ рдореИрдВ рдХреЛрд▓рд┐рдмреНрд░реАрд╕ рдХреЗ рддрд╣рдд рдПрдХ рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?"
рдЙрддреНрддрд░: "рд╣рд╛рдБ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!" , рдФрд░ рдиреАрдЪреЗ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред


рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:

рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ

KolibriOS рдореЗрдВ рджреЛ рддрд░рд╣ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрддреЗ рд╣реИрдВ: рд╡рд┐рдВрдбреЛ рдФрд░ рдХрдВрд╕реЛрд▓ред GUI рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ BoxLib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХрдВрд╕реЛрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрдВрд╕реЛрд▓ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдЖрдЬ рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдлрдВрдХреНрд╢рдиреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдПрдкреНрд▓реАрдХреЗрд╢рди рд▓рд┐рдЦреЗрдВрдЧреЗред

рд╡рд┐рдВрдбреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореБрдЦреНрдп () рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рд╣реИрдВрдбрд▓рд░ рд╣реЛрддрд╛ рд╣реИ:

while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default: //  ,      . break; } } } 

рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдХреАрдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рдФрд░ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗред рд╕реНрд╡рд┐рдЪ-рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЙрдирдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

рдЖрдЗрдП рдЗрди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ:
2 - рдХреАрдмреЛрд░реНрдб рдкрд░ рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
3 - рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЯрди (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреНрд░реЙрд╕ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдмрдЯрди рд╣реИ);
рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣рдорд╛рд░реЗ рд╡рд┐рдХреА рдкрд░ рдпрд╛ рдУрдПрд╕ (рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдбреЙрдХрдкреИрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо) рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреНрд░рд╛_рд╡рд┐рдВрдбреЛ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред

рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдЦрд┐рдбрд╝рдХреА рдХреИрд╕реЗ рдЦреАрдВрдЪреА рдЬрд╛рдПред
рдПрдХ рдЦрд┐рдбрд╝рдХреА рдЦреАрдВрдЪрдирд╛ _ksys_window_redraw (1) рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ _ksys_window_redraw (2) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЦрд┐рдбрд╝рдХреА рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ _ksys_draw_window рдлрд╝рдВрдХреНрд╢рди (x рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдВрдбреЛ рд╕рдордиреНрд╡рдп, y, рдЪреМрдбрд╝рд╛рдИ, рдКрдБрдЪрд╛рдИ, рд░рдВрдЧ, рд╡рд┐рдВрдбреЛ рдкреНрд░рдХрд╛рд░, рд╡рд┐рдВрдбреЛ рд╢реАрд░реНрд╖рдХ рд░рдВрдЧ, рдЪрд╛рд╣реЗ рдЦрд┐рдбрд╝рдХреА рдЬрдВрдЧрдо рди рд╣реЛ, рд╡рд┐рдВрдбреЛ рдлреНрд░реЗрдо рд░рдВрдЧ рдирд╣реАрдВ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;

рдЦрд┐рдбрд╝рдХреА рдХреЗ рдкреНрд░рдХрд╛рд░:
0 - рдЯрд╛рдЗрдк I - рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рд╡рд┐рдВрдбреЛ (рдмрд┐рдирд╛ рддреНрд╡рдЪрд╛ рдХреЗ)
1 - рдХреЗрд╡рд▓ рдЦрд┐рдбрд╝рдХреА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВ, рдХреБрдЫ рднреА рдЖрдХрд░реНрд╖рд┐рдд рди рдХрд░реЗрдВ
2 - рдкреНрд░рдХрд╛рд░ II - resizable рдЦрд┐рдбрд╝рдХреА (рддреНрд╡рдЪрд╛ рдХреЗ рдмрд┐рдирд╛)
3 - рддреНрд╡рдЪрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА (рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп)
4 - рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рддреНрд╡рдЪрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд┐рдбрд╝рдХреА

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдкрд╛рда рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: _ksys_write_text (x рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, y рд╕рдордиреНрд╡рдп, рдлрд╝реЙрдиреНрдЯ рдкреНрд░рдХрд╛рд░, рд░реЗрдЦрд╛, рд░реЗрдЦрд╛ рд▓рдВрдмрд╛рдИ);

рдЕрдм рдЖрдк рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕реАрдзреЗ рд╣рдорд┐рдВрдЧрдмрд░реНрдб рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред Tinypad рдЦреЛрд▓реЗрдВ, рдФрд░ рдпрд╣ рдХреЛрдб рд▓рд┐рдЦреЗрдВ:

 #include <stdio.h> #include <string.h> #include <kolibrisys.h> #define FONT0 0 #define FONT1 0x10000000 char header[] = {"Hello World!"}; #define BT_NORMAL 0 #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 #define BT_NOFRAME 0x20000000 void draw_window () { _ksys_window_redraw(1); _ksys_draw_window(100, 100, 300, 120, 0xaabbcc, 4, 0x5080d0, 0, 0x5080d0); _ksys_write_text(50,30,FONT0, header, strlen(header)); _ksys_window_redraw(2); } int main (int argc, char **argv) { while (!0) { switch (_ksys_wait_for_event(10)) { case 2: return 0; case 3: if (_ksys_get_button_id() == 1) return 0; break; default: draw_window(); break; } } } 

рдЕрдм рд╕рдВрдХрд▓рди рдХрд╛ рд╕рдордп рд╣реИ!

рдпрджрд┐ рдЖрдкрдиреЗ рд╣реБрдорд┐рдВрдЧрдмрд░реНрдб рдореЗрдВ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдбрдВрдк рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ hello.c рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╣рдорд┐рдВрдЧрдмрд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЖрдк USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦреЛрд▓реЗрдВ рдЬрд╣рд╛рдВ рд╕рдВрдХрд▓рдХ рдХрдВрд╕реЛрд▓ ( рд╢реЗрд▓ ) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ
ktcc.kex <__> libck.a тАУo <__>

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред рдЕрдм рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрд╣реБрдд рдХреБрдЫ рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ, рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓:


рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдордВрдЪ рдкрд░ ktcc (рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо) рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In212169/


All Articles