Subversion Repositories Kolibri OS

Rev

Rev 9620 | Rev 9810 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9620 Rev 9766
1
// writed by maxcodehack and superturbocat2001
1
// writed by maxcodehack and superturbocat2001
2
// adaptation of clayer for ktcc
2
// adaptation of clayer for ktcc
3
#ifndef KOLIBRI_BOXLIB_H
3
#ifndef KOLIBRI_BOXLIB_H
4
#define KOLIBRI_BOXLIB_H
4
#define KOLIBRI_BOXLIB_H
5
 
-
 
6
#include 
-
 
7
#include 
5
 
-
 
6
#include 
-
 
7
#include 
8
#include 
8
#include 
9
 
9
 
10
typedef unsigned color_t;
10
typedef unsigned color_t;
11
int kolibri_boxlib_init(void);
11
int kolibri_boxlib_init(void);
12
 
12
 
13
/*  flags meaning */
13
/*  flags meaning */
14
#define ed_figure_only 0b1000000000000000   // одни символы
14
#define ed_figure_only  0b1000000000000000 // одни символы
15
#define ed_always_focus 0b100000000000000   // всегда с курсором (фокусом)
15
#define ed_always_focus 0b100000000000000  // всегда с курсором (фокусом)
16
#define ed_focus                     0b10    // фокус ввода приложения, мышится самостоятельно
16
#define ed_focus        0b10               // фокус ввода приложения, мышится самостоятельно
17
#define ed_pass                       0b1    // поле с паролем
17
#define ed_pass         0b1                // поле с паролем
18
#define ed_shift_on                0b1000    // если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая //shift
18
#define ed_shift_on     0b1000             // если не установлен -значит впервые нажат shift,если был установлен, значит мы уже что - то делали удерживая //shift
19
#define ed_shift_on_off 0b1111111111110111
19
#define ed_shift_on_off 0b1111111111110111
20
#define ed_shift                     0b100    //включается при нажатии на shift т.е. если нажимаю
20
#define ed_shift        0b100 //включается при нажатии на shift т.е. если нажимаю
21
#define ed_shift_off    0b1111111111111011
21
#define ed_shift_off    0b1111111111111011
22
#define ed_shift_bac               0b10000   //бит для очистки выделеного shift т.е. при установке говорит что есть выделение
22
#define ed_shift_bac    0b10000            //бит для очистки выделеного shift т.е. при установке говорит что есть выделение
23
#define ed_shift_bac_cl 0b1111111111101111  //очистка при удалении выделения
23
#define ed_shift_bac_cl 0b1111111111101111 //очистка при удалении выделения
24
#define ed_shift_cl     0b1111111111100011
24
#define ed_shift_cl     0b1111111111100011
25
#define ed_shift_mcl    0b1111111111111011
25
#define ed_shift_mcl    0b1111111111111011
26
#define ed_left_fl                0b100000
26
#define ed_left_fl      0b100000
27
#define ed_right_fl     0b1111111111011111
27
#define ed_right_fl     0b1111111111011111
28
#define ed_offset_fl             0b1000000
28
#define ed_offset_fl    0b1000000
29
#define ed_offset_cl    0b1111111110111111
29
#define ed_offset_cl    0b1111111110111111
30
#define ed_insert               0b10000000
30
#define ed_insert       0b10000000
31
#define ed_insert_cl    0b1111111101111111
31
#define ed_insert_cl    0b1111111101111111
32
#define ed_mouse_on            0b100000000
32
#define ed_mouse_on     0b100000000
33
#define ed_mous_adn_b          0b100011000
33
#define ed_mous_adn_b   0b100011000
34
#define ed_mouse_off          ~ed_mouse_on
34
#define ed_mouse_off    ~ed_mouse_on
35
#define ed_ctrl_on            0b1000000000
35
#define ed_ctrl_on      0b1000000000
36
#define ed_ctrl_off            ~ed_ctrl_on
36
#define ed_ctrl_off     ~ed_ctrl_on
37
#define ed_alt_on            0b10000000000
37
#define ed_alt_on       0b10000000000
38
#define ed_alt_off             ~ed_alt_on
38
#define ed_alt_off      ~ed_alt_on
39
#define ed_disabled         0b100000000000
39
#define ed_disabled     0b100000000000
40
 
40
 
41
// SCROLLBAR
41
// SCROLLBAR
42
typedef struct {
42
typedef struct {
43
	uint16_t xsize;
43
    uint16_t xsize;
44
    uint16_t xpos;
44
    uint16_t xpos;
45
    uint16_t ysize;
45
    uint16_t ysize;
46
    uint16_t ypos;
46
    uint16_t ypos;
47
    uint32_t btn_height;
47
    uint32_t btn_height;
48
    uint32_t type;  // type 1 - stylish frame, type 2 - ?, type 0 - ?
48
    uint32_t type; // type 1 - stylish frame, type 2 - ?, type 0 - ?
49
    uint32_t max_area;
49
    uint32_t max_area;
50
    uint32_t cur_area;
50
    uint32_t cur_area;
51
    uint32_t position;
51
    uint32_t position;
52
    uint32_t back_color;
52
    uint32_t back_color;
53
    uint32_t front_color;
53
    uint32_t front_color;
54
    uint32_t line_color;
54
    uint32_t line_color;
55
    uint32_t redraw;
55
    uint32_t redraw;
56
    uint16_t delta;
56
    uint16_t delta;
57
    uint16_t delta2;
57
    uint16_t delta2;
58
    uint16_t r_size_x;
58
    uint16_t r_size_x;
59
    uint16_t r_start_x;
59
    uint16_t r_start_x;
60
    uint16_t r_size_y;
60
    uint16_t r_size_y;
61
    uint16_t r_start_y;
61
    uint16_t r_start_y;
62
    uint32_t m_pos;
62
    uint32_t m_pos;
63
    uint32_t m_pos2;
63
    uint32_t m_pos2;
64
    uint32_t m_keys;
64
    uint32_t m_keys;
65
    uint32_t run_size;
65
    uint32_t run_size;
66
    uint32_t position2;
66
    uint32_t position2;
67
    uint32_t work_size;
67
    uint32_t work_size;
68
    uint32_t all_redraw;  // need to be set =1 before each redraw
68
    uint32_t all_redraw; // need to be set =1 before each redraw
69
    uint32_t ar_offset;
69
    uint32_t ar_offset;
70
} __attribute__ ((__packed__)) scrollbar;
70
} __attribute__((__packed__)) scrollbar;
71
 
71
 
72
extern void __stdcall (*scrollbar_h_draw)(scrollbar*);
72
extern void __stdcall (*scrollbar_h_draw)(scrollbar*);
73
extern void __stdcall (*scrollbar_h_mouse)(scrollbar*);
73
extern void __stdcall (*scrollbar_h_mouse)(scrollbar*);
74
extern void __stdcall (*scrollbar_v_draw)(scrollbar*);
74
extern void __stdcall (*scrollbar_v_draw)(scrollbar*);
75
extern void __stdcall (*scrollbar_v_mouse)(scrollbar*);
75
extern void __stdcall (*scrollbar_v_mouse)(scrollbar*);
76
 
76
 
77
// CHECKBOX
77
// CHECKBOX
78
typedef struct {
78
typedef struct {
79
    unsigned int left_s;
79
    unsigned int left_s;
80
    unsigned int top_s;
80
    unsigned int top_s;
81
    unsigned int ch_text_margin;
81
    unsigned int ch_text_margin;
82
    unsigned int color;
82
    unsigned int color;
83
    unsigned int border_color;
83
    unsigned int border_color;
84
    unsigned int text_color;
84
    unsigned int text_color;
85
    char *text;
85
    char* text;
86
    unsigned int flags;
86
    unsigned int flags;
87
 
87
 
88
    /* Users can use members above this */
88
    /* Users can use members above this */
89
    unsigned int size_of_str;
89
    unsigned int size_of_str;
90
}check_box;
90
} check_box;
91
 
91
 
92
extern void __stdcall (*check_box_draw2)(check_box *);
92
extern void __stdcall (*check_box_draw2)(check_box*);
93
extern void __stdcall (*check_box_mouse2)(check_box *);
93
extern void __stdcall (*check_box_mouse2)(check_box*);
94
extern void __stdcall (*init_checkbox2)(check_box *);
94
extern void __stdcall (*init_checkbox2)(check_box*);
95
 
95
 
96
// DBUTTON
96
// DBUTTON
97
typedef struct {
97
typedef struct {
98
	uint32_t type;
98
    uint32_t type;
99
	uint32_t x_w;
99
    uint32_t x_w;
100
	uint32_t y_h;
100
    uint32_t y_h;
101
	uint32_t mouse_pos;
101
    uint32_t mouse_pos;
102
    uint32_t mouse_keys;
102
    uint32_t mouse_keys;
103
    uint32_t mouse_keys_old;
103
    uint32_t mouse_keys_old;
104
    void*    active_raw;        //active bitmap
104
    void* active_raw;        //active bitmap
105
    void*    passive_raw;       //passive bitmap
105
    void* passive_raw;       //passive bitmap
106
    void*    click_raw;         //pressed bitmap
106
    void* click_raw;         //pressed bitmap
107
    uint32_t resolution_raw; // bpp, as esi fn65
107
    uint32_t resolution_raw; // bpp, as esi fn65
108
    void*    palette_raw;    // palette, as edi fn65
108
    void* palette_raw;       // palette, as edi fn65
109
    uint32_t offset_raw;     // width as ebp fn65
109
    uint32_t offset_raw;     // width as ebp fn65
110
    uint32_t select;         // internal state: 0 - passive, 2 - pressed, 1 - clicked
110
    uint32_t select;         // internal state: 0 - passive, 2 - pressed, 1 - clicked
111
    uint32_t click;          // clicked - 1, zero it after tested
111
    uint32_t click;          // clicked - 1, zero it after tested
112
} pict_button;
112
} pict_button;
113
 
113
 
114
extern void __stdcall (*dynamic_button_draw)(pict_button *);
114
extern void __stdcall (*dynamic_button_draw)(pict_button*);
115
extern void __stdcall (*dynamic_button_mouse)(pict_button *);
115
extern void __stdcall (*dynamic_button_mouse)(pict_button*);
116
 
116
 
117
// EDITBOX
117
// EDITBOX
118
 
118
 
119
#pragma pack(push,1)
119
#pragma pack(push, 1)
120
typedef struct edit_box_t {
120
typedef struct edit_box_t {
121
    unsigned int width;
121
    unsigned int width;
122
    unsigned int left;
122
    unsigned int left;
123
    unsigned int top;
123
    unsigned int top;
124
    unsigned int color;
124
    unsigned int color;
125
    unsigned int shift_color;   // selected text color
125
    unsigned int shift_color; // selected text color
126
    unsigned int focus_border_color;
126
    unsigned int focus_border_color;
127
    unsigned int blur_border_color;
127
    unsigned int blur_border_color;
128
    unsigned int text_color;
128
    unsigned int text_color;
129
    unsigned int max;
129
    unsigned int max;
130
    char        *text;
130
    char* text;
131
    void        *mouse_variable; // must be pointer edit_box** to save focused editbox
131
    void* mouse_variable; // must be pointer edit_box** to save focused editbox
132
    unsigned int flags;
132
    unsigned int flags;
133
 
133
 
134
    unsigned int size;  // used symbols in buffer without trailing zero
134
    unsigned int size; // used symbols in buffer without trailing zero
135
    unsigned int pos;  // cursor position
135
    unsigned int pos;  // cursor position
136
/* The following struct members are not used by the users of API */
136
                       /* The following struct members are not used by the users of API */
137
    unsigned int offset;
137
    unsigned int offset;
138
    unsigned int cl_curs_x;
138
    unsigned int cl_curs_x;
139
    unsigned int cl_curs_y;
139
    unsigned int cl_curs_y;
140
    unsigned int shift;
140
    unsigned int shift;
141
    unsigned int shift_old;
141
    unsigned int shift_old;
142
    unsigned int height;
142
    unsigned int height;
143
    unsigned int char_width;
143
    unsigned int char_width;
144
}edit_box;
144
} edit_box;
145
#pragma pack(pop)
145
#pragma pack(pop)
146
 
146
 
147
extern void __stdcall (*edit_box_draw)(edit_box *);
147
extern void __stdcall (*edit_box_draw)(edit_box*);
148
extern void __stdcall (*edit_box_key)(edit_box *, unsigned int key_val);
148
extern void __stdcall (*edit_box_key)(edit_box*, unsigned int key_val);
149
extern void __stdcall (*edit_box_mouse)(edit_box *);
149
extern void __stdcall (*edit_box_mouse)(edit_box*);
150
extern void __stdcall (*edit_box_set_text)(edit_box *, char *);
150
extern void __stdcall (*edit_box_set_text)(edit_box*, char*);
151
 
151
 
152
extern void __stdcall (*edit_box_key_safe)(edit_box *e, ksys_oskey_t ch);
152
extern void __stdcall (*edit_box_key_safe)(edit_box* e, ksys_oskey_t ch);
153
 
153
 
154
// FRAME
154
// FRAME
155
typedef struct {
155
typedef struct {
156
	uint32_t type;
156
    uint32_t type;
157
	uint32_t x_w;
157
    uint32_t x_w;
158
	uint32_t y_h;
158
    uint32_t y_h;
159
	color_t ext_col;
159
    color_t ext_col;
160
	color_t int_col;
160
    color_t int_col;
161
	uint32_t flags;
161
    uint32_t flags;
162
	char *text_pointer;
162
    char* text_pointer;
163
	uint32_t text_position;
163
    uint32_t text_position;
164
	uint32_t font_number;
164
    uint32_t font_number;
165
	uint32_t font_size_y;
165
    uint32_t font_size_y;
166
	color_t font_color;
166
    color_t font_color;
167
	color_t font_bg_color;
167
    color_t font_bg_color;
168
}frame;
168
} frame;
169
 
169
 
170
extern void __stdcall (*frame_draw)(frame *);
170
extern void __stdcall (*frame_draw)(frame*);
171
 
171
 
172
// MENUBAR
172
// MENUBAR
173
typedef struct
173
typedef struct
174
{
174
{
175
	uint32_t type;   // 1 åñëè íåò ïîäìåíþ, ïðîñòî ïóíêò
175
    uint32_t type; // 1 åñëè íåò ïîäìåíþ, ïðîñòî ïóíêò
176
 
176
 
177
	uint32_t x_w;   // âåðõíèé ïóíêò
177
    uint32_t x_w; // âåðõíèé ïóíêò
178
	uint32_t y_h;
178
    uint32_t y_h;
179
 
179
 
180
	char* text_pointer;
180
    char* text_pointer;
181
	char* pos_pointer;
181
    char* pos_pointer;
182
	char* text_end;
182
    char* text_end;
183
	uint32_t mouse_pos;
183
    uint32_t mouse_pos;
184
	uint32_t mouse_keys;
184
    uint32_t mouse_keys;
185
 
185
 
186
	uint32_t x_w1;  // ïîäìåíþ
186
    uint32_t x_w1; // ïîäìåíþ
187
	uint32_t y_h1;
187
    uint32_t y_h1;
188
 
188
 
189
	color_t bckg_col;  // ôîí âåðõíåãî ïóêòà
189
    color_t bckg_col; // ôîí âåðõíåãî ïóêòà
190
	color_t frnt_col;  // ôîí âûáðàííîãî âåðõíåãî ïóíêòà
190
    color_t frnt_col; // ôîí âûáðàííîãî âåðõíåãî ïóíêòà
191
	color_t menu_col;  // ôîí âûïàäàþùåé ÷àñòè (ïîäïóêòû)
191
    color_t menu_col; // ôîí âûïàäàþùåé ÷àñòè (ïîäïóêòû)
192
	uint32_t select;
192
    uint32_t select;
193
	uint32_t out_select;
193
    uint32_t out_select;
194
	char* buf_adress;
194
    char* buf_adress;
195
	char* procinfo;
195
    char* procinfo;
196
	uint32_t click;
196
    uint32_t click;
197
	uint32_t cursor;
197
    uint32_t cursor;
198
	uint32_t cursor_old;
198
    uint32_t cursor_old;
199
	uint32_t interval;
199
    uint32_t interval;
200
	uint32_t cursor_max;
200
    uint32_t cursor_max;
201
	uint32_t extended_key;
201
    uint32_t extended_key;
202
	color_t menu_sel_col;  // öâåò ôîíà âûáðàííîãî ïîäïóíêòà
202
    color_t menu_sel_col;  // öâåò ôîíà âûáðàííîãî ïîäïóíêòà
203
	color_t bckg_text_col; // öâåò øðèôòà íåâûáðàííîãî ïóíêòà
203
    color_t bckg_text_col; // öâåò øðèôòà íåâûáðàííîãî ïóíêòà
204
	color_t frnt_text_col;  // öâåò øðèôòà âûáðàííîãî ïóíêòà
204
    color_t frnt_text_col; // öâåò øðèôòà âûáðàííîãî ïóíêòà
205
	uint32_t mouse_keys_old;
205
    uint32_t mouse_keys_old;
206
	uint32_t font_height;
206
    uint32_t font_height;
207
	uint32_t cursor_out;
207
    uint32_t cursor_out;
208
	uint32_t get_mouse_flag;
208
    uint32_t get_mouse_flag;
209
} menubar;
209
} menubar;
210
 
210
 
211
extern void __stdcall (*menu_bar_draw)(menubar *);
211
extern void __stdcall (*menu_bar_draw)(menubar*);
212
extern void __stdcall (*menu_bar_mouse)(menubar *);
212
extern void __stdcall (*menu_bar_mouse)(menubar*);
213
extern void __stdcall (*menu_bar_activate)(menubar *);
213
extern void __stdcall (*menu_bar_activate)(menubar*);
214
 
214
 
215
// OPTIONBOX
215
// OPTIONBOX
216
typedef struct option_box_t {
216
typedef struct option_box_t {
217
    struct option_box_t **selected;
217
    struct option_box_t** selected;
218
    uint16_t posx;
218
    uint16_t posx;
219
    uint16_t posy;
219
    uint16_t posy;
220
    uint32_t text_margin; // = 4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè
220
    uint32_t text_margin; // = 4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè
221
    uint32_t size;       // 12 ðàçìåð êâàäðàòà ÷åê áîêñà
221
    uint32_t size;        // 12 ðàçìåð êâàäðàòà ÷åê áîêñà
222
    color_t color;
222
    color_t color;
223
    color_t border_color; // individual border
223
    color_t border_color; // individual border
224
    color_t text_color;
224
    color_t text_color;
225
    char *text;
225
    char* text;
226
    uint32_t text_len;
226
    uint32_t text_len;
227
    uint32_t flags;
227
    uint32_t flags;
228
} __attribute__ ((__packed__)) option_box;
228
} __attribute__((__packed__)) option_box;
229
 
229
 
230
extern void __stdcall (*option_box_draw)(option_box **);
230
extern void __stdcall (*option_box_draw)(option_box**);
231
extern void __stdcall (*option_box_mouse)(option_box **);
231
extern void __stdcall (*option_box_mouse)(option_box**);
232
 
232
 
233
// PATHSHOW
233
// PATHSHOW
234
typedef struct {
234
typedef struct {
235
	uint32_t type;
235
    uint32_t type;
236
	uint32_t x_y;
236
    uint32_t x_y;
237
	uint16_t font_size_x;  // 6 - for font 0, 8 - for font 1
237
    uint16_t font_size_x; // 6 - for font 0, 8 - for font 1
238
	uint16_t area_size_x;
238
    uint16_t area_size_x;
239
    uint32_t font_number;  // 0 - monospace, 1 - variable, as fn4 (2bit only 0-3)
239
    uint32_t font_number;     // 0 - monospace, 1 - variable, as fn4 (2bit only 0-3)
240
    uint32_t background_flag; // as fn4, if 0, bk_color unneeded
240
    uint32_t background_flag; // as fn4, if 0, bk_color unneeded
241
    color_t  font_color;      // as fn4
241
    color_t font_color;       // as fn4
242
    color_t  background_color; // as fn4
242
    color_t background_color; // as fn4
243
    char* text_pointer;       // 4096 ?
243
    char* text_pointer;       // 4096 ?
244
    char* work_area_pointer;  // 4096 ?
244
    char* work_area_pointer;  // 4096 ?
245
    uint32_t temp_text_length;
245
    uint32_t temp_text_length;
246
} __attribute__ ((__packed__)) pathview;
246
} __attribute__((__packed__)) pathview;
247
 
247
 
248
extern void __stdcall (*path_show_prepare)(pathview *);
248
extern void __stdcall (*path_show_prepare)(pathview*);
249
extern void __stdcall (*path_show_draw)(pathview *);
249
extern void __stdcall (*path_show_draw)(pathview*);
250
 
250
 
251
// PROGRESSBAR
251
// PROGRESSBAR
252
typedef struct {
252
typedef struct {
253
	unsigned int value;
253
    unsigned int value;
254
    unsigned int left;
254
    unsigned int left;
255
    unsigned int top;
255
    unsigned int top;
256
    unsigned int width;
256
    unsigned int width;
257
    unsigned int height;
257
    unsigned int height;
258
    unsigned int style;
258
    unsigned int style;
259
    unsigned int min;
259
    unsigned int min;
260
    unsigned int max;
260
    unsigned int max;
261
    unsigned int back_color;
261
    unsigned int back_color;
262
    unsigned int progress_color;
262
    unsigned int progress_color;
263
    unsigned int frame_color;
263
    unsigned int frame_color;
264
} progressbar;
264
} progressbar;
265
 
265
 
266
extern void __stdcall (*progressbar_draw)(progressbar *);
266
extern void __stdcall (*progressbar_draw)(progressbar*);
267
extern void __stdcall (*progressbar_progress)(progressbar *);
267
extern void __stdcall (*progressbar_progress)(progressbar*);
268
 
268
 
269
#endif /* KOLIBRI_BOXLIB_H */
269
#endif /* KOLIBRI_BOXLIB_H */