Subversion Repositories Kolibri OS

Rev

Rev 9558 | Rev 9766 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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