Subversion Repositories Kolibri OS

Rev

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: