Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1032 | Lrz | 1 | //EditBox in C-- example v0.1 |
2 | //Veliant 2007 Leency 2008 |
||
3 | |||
4 | #pragma option A |
||
5 | #codesize |
||
6 | #include "..\lib\kolibri.h--" |
||
7 | #include "use_library.h--" |
||
8 | ////////////////////////////////////////////////////////////////// |
||
9 | //Bit mask from editbox |
||
10 | ////////////////////////////////////////////////////////////////// |
||
11 | |||
12 | //char edit_path[256] = "You can edit me!"; //содержимое EditBox'a |
||
13 | char way_of_ini[250] = "/sys/lib/box_lib.obj",NULL; //содержимое EditBox'a |
||
14 | |||
15 | edit_box edit1= {250,14,35,0xffffff,0x6f9480,0,0xAABBCC,0,248,#way_of_ini,2,20,20}; |
||
16 | |||
17 | //ed_width equ [edi] ;ширина компонента |
||
18 | //ed_left equ [edi+4] ;положение по оси х |
||
19 | //ed_top equ [edi+8] ;положение по оси у |
||
20 | //ed_color equ [edi+12] ;цвет фона компонента |
||
21 | //shift_color equ [edi+16] ;=0x6a9480 |
||
22 | //ed_focus_border_color equ [edi+20] ;цвет рамки компонента |
||
23 | //ed_blur_border_color equ [edi+24] ;цвет не активного компонента |
||
24 | //ed_text_color equ [edi+28] ;цвет текста |
||
25 | //ed_max equ [edi+32] ;кол-во символов которые можно максимально ввести |
||
26 | //ed_text equ [edi+36] ;указатель на буфер |
||
27 | //ed_flags equ [edi+40] ;флаги |
||
28 | //ed_size equ [edi+42] ;кол-во символов |
||
29 | //ed_pos equ [edi+46] ;позиция курсора |
||
30 | //ed_offset equ [edi+50] ;смещение |
||
31 | //cl_curs_x equ [edi+54] ;предыдущее координата курсора по х |
||
32 | //cl_curs_y equ [edi+58] ;предыдущее координата курсора по у |
||
33 | //ed_shift_pos equ [edi+62] ;положение курсора |
||
34 | //ed_shift_pos_old equ [edi+66] ;старое положение курсора |
||
35 | |||
36 | proc_info Form; |
||
37 | |||
38 | |||
39 | void main() |
||
40 | byte id; |
||
41 | { |
||
42 | load_dll(); |
||
43 | |||
44 | draw_window(); |
||
45 | loop() |
||
46 | { |
||
47 | switch(WaitEvent()) |
||
48 | { |
||
49 | //Button pressed---------------------------------------------------- |
||
50 | CASE evButton: |
||
51 | id=GetButtonID(); |
||
52 | IF (id==1) || (id==2) ExitProcess(); |
||
53 | break; |
||
54 | //Key pressed------------------------------------------------------- |
||
55 | case evKey: |
||
56 | GetKey(); |
||
57 | edit_box_key stdcall (#edit1); |
||
58 | break; |
||
59 | |||
60 | case evReDraw: draw_window(); break; |
||
61 | // default: break; |
||
62 | } |
||
63 | |||
64 | |||
65 | edit_box_mouse stdcall (#edit1); |
||
66 | |||
67 | } |
||
68 | |||
69 | ExitProcess(); |
||
70 | } |
||
71 | |||
72 | void draw_window() |
||
73 | { |
||
74 | WindowRedrawStatus(1); |
||
75 | skin_width = GetSkinWidth(); |
||
76 | DefineAndDrawWindow(400,200,280,200,0x04,0x00E4DFE1,0,0,0); DrawTitle("Extended EditBox in C--"); |
||
77 | Form.getme(); |
||
78 | //ЄхъёЄ |
||
79 | WriteText(30,40,0x80,0,"Наипростейший пример EditBox'a на С--",0); |
||
80 | WriteText(30,50,0x80,0,"Но его можно немного усложнить с целью",0); |
||
81 | WriteText(30,60,0x80,0,"уменьшения перерисовки.",0); |
||
82 | //ъэюя√ |
||
83 | DrawFlatButton(100,105,70,22,2,0xD7D7D7,"Close"); |
||
84 | //EditBox |
||
85 | // DrawRegion(30,14,201,16,0x94AECE); //ободок полосы адреса |
||
86 | |||
87 | |||
88 | edit_box_draw stdcall (#edit1); |
||
89 | // typedef void (*edit_box_draw)(dword edit_b); // объявление указателя на функцию |
||
90 | // edit_box_draw(edit_b); // вызов функции |
||
91 | |||
92 | WindowRedrawStatus(2); |
||
93 | } |
||
94 | |||
95 | |||
96 | stop: |