Subversion Repositories Kolibri OS

Rev

Rev 1705 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1705 Rev 5911
Line 74... Line 74...
74

tl_info_redo

74

tl_info_redo

75

Ïîâòîð îòìåíåííûõ äåéñòâèé. Îáðàòíàÿ ôóíêöèÿ ïî îòíîøåíèþ ê tl_info_undo.

75

Ïîâòîð îòìåíåííûõ äåéñòâèé. Îáðàòíàÿ ôóíêöèÿ ïî îòíîøåíèþ ê tl_info_undo.

Line 76... Line 76...
76
 
76
 
77

tl_node_add

77

tl_node_add

78

Äîáàâëÿåò óçåë, â ïîçèöèþ óêàçàííóþ êóðñîðîì. Ïðèìåð äîáàâëåíèÿ óçëà:

-
 
79
	push dword tree1
-
 
80
	push dword 0x10002
-
 
81
	push dword data_buffer
78

Äîáàâëÿåò óçåë, â ïîçèöèþ óêàçàííóþ êóðñîðîì. Ïðèìåð äîáàâëåíèÿ óçëà:

82
	call dword[tl_node_add]
79
	stdcall dword[tl_node_add], tree1,0x10002,data_buffer
83

ãäå: tree1 - ñòðóêòóðà tree_list;

80

ãäå: tree1 - ñòðóêòóðà tree_list;

Line 84... Line 81...
84
 0x10002 - ïàðàìåòðû óçëà (ñòàðøèå áàéòû 0x0001 - èíäåêñ èêîíêè, îòîáðàæàåìîé âîçëå óçëà; ìåíüøèé áàéò 0x02 - óðîâåíü âëîæåíîñòè óçëà); data_buffer - óêàçàòåëü íà äûííûå, äîáàâëÿåìûå â óçåë.

81
 0x10002 - ïàðàìåòðû óçëà (ñòàðøèå áàéòû 0x0001 - èíäåêñ èêîíêè, îòîáðàæàåìîé âîçëå óçëà; ìåíüøèé áàéò 0x02 - óðîâåíü âëîæåíîñòè óçëà); data_buffer - óêàçàòåëü íà äûííûå, äîáàâëÿåìûå â óçåë.

85
 
82
 
Line 86... Line 83...
86

tl_node_set_data

83

tl_node_set_data

87

Óñòàíàâëèâàåò íîâûå äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) â óçåë ïîä êóðñîðîì.

84

Óñòàíàâëèâàåò íîâûå äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) â óçåë ïîä êóðñîðîì.

88
 
85
 
89

tl_node_get_data

86

tl_node_get_data

90

Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà ïîä êóðñîðîì.

-
 
91

Ïðèìåð 1:

87

Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà ïîä êóðñîðîì.

92
	stdcall [tl_node_get_data], tree1
88

Ïðèìåð 1:

Line 93... Line 89...
93
	pop eax
89
	stdcall [tl_node_get_data], tree1
94

ãäå: tree1 - ñòðóêòóðà tree_list;

90

ãäå: tree1 - ñòðóêòóðà tree_list;

95
 eax - óêàçàòåëü íà äûííûå óçëà.

91
 eax - óêàçàòåëü íà äûííûå óçëà.

96
 
92
 
97

Ïðèìåð 2:

93

Ïðèìåð 2:

98
	NODE_SIZE equ 200
94
	NODE_SIZE equ 200
99
	node_data rb NODE_SIZE
95
	node_data rb NODE_SIZE
100
.........
96
.........
101
push ecx esi edi
97
push eax ecx esi edi
102
	stdcall [tl_node_get_data], tree1
98
	stdcall [tl_node_get_data], tree1
103
	pop esi
99
	mov esi,eax
104
	mov edi,node_data
100
	mov edi,node_data
105
	mov ecx,NODE_SIZE
101
	mov ecx,NODE_SIZE
106
	cld
102
	cld
107
	rep movsb
103
	rep movsb
Line 108... Line 104...
108
pop edi esi ecx
104
pop edi esi ecx eax
Line 144... Line 140...
144
	call dword[tl_node_move_down] ;ïåðåìåñòèòü óçåë
140
	call dword[tl_node_move_down] ;ïåðåìåñòèòü óçåë
145

ãäå: tree1 - ñòðóêòóðà tree_list

141

ãäå: tree1 - ñòðóêòóðà tree_list

Line 146... Line 142...
146
 
142
 
147

tl_node_poi_get_info

143

tl_node_poi_get_info

148

Áåðåò âíóòðåííèé óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

-
 
149
	push dword tree1
-
 
150
	push dword 0
144

Áåðåò âíóòðåííèé óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

151
	call dword[tl_node_poi_get_info]
-
 
152
	pop esi
145
	stdcall dword[tl_node_poi_get_info], tree1, 0
153

ãäå: tree1 - ñòðóêòóðà tree_list;

146

ãäå: tree1 - ñòðóêòóðà tree_list;

154
0 - ïîçèöèÿ óçëà, ñ êîòîðîãî áåðåòñÿ óêàçàòåëü;
147
0 - ïîçèöèÿ óçëà, ñ êîòîðîãî áåðåòñÿ óêàçàòåëü;
155
esi - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë.

148
eax - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë.

Line 156... Line 149...
156

Çàìå÷àíèå. Åñëè óçåë ñ óêàçàííûì èíäåêñîì íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.

149

Çàìå÷àíèå. Åñëè óçåë ñ óêàçàííûì èíäåêñîì íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.

157
 
150
 
158

tl_node_poi_get_next_info

-
 
159

Áåðåò óêàçàòåëü íà ñëåäóþùèé ýëåìåíò â öåïè, áåç ó÷åòà îòêðûòèÿ/çàêðûòèÿ äî÷åðíèõ óçëîâ. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

-
 
160
	push tree1
151

tl_node_poi_get_next_info

161
	push esi
-
 
162
	call dword[tl_node_poi_get_next_info]
152

Áåðåò óêàçàòåëü íà ñëåäóþùèé ýëåìåíò â öåïè, áåç ó÷åòà îòêðûòèÿ/çàêðûòèÿ äî÷åðíèõ óçëîâ. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

163
	pop esi ;ïåðåõîäèì ê ñëåäóùåìó óçëó
153
	stdcall dword[tl_node_poi_get_next_info], tree1, eax
164

ãäå: tree1 - ñòðóêòóðà tree_list;

154

ãäå: tree1 - ñòðóêòóðà tree_list;

Line 165... Line 155...
165
esi - äî âûçîâà ôóíêöèè óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë, ïîñëå âûçîâà óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ ñëåäóùèé óçåë â öåïè.

155
eax - äî âûçîâà ôóíêöèè óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë, ïîñëå âûçîâà óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ ñëåäóùèé óçåë â öåïè.

166

Çàìå÷àíèå. Åñëè ñëåäóùèé óçåë íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.

156

Çàìå÷àíèå. Åñëè ñëåäóùèé óçåë íå íàéäåí, â óêàçàòåëå âîçâðàùàåòñÿ 0.

167
 
-
 
168

tl_node_poi_get_data

-
 
169

Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà óêàçàííîãî â óêàçàòåëå. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

157
 
170
	push dword tree1
-
 
171
	push dword esi
158

tl_node_poi_get_data

172
	call dword[tl_node_poi_get_data]
159

Áåðåò óêàçàòåëü íà äàííûå (ïîëüçîâàòåëüñêèå è ïîäïèñü) èç óçëà óêàçàííîãî â óêàçàòåëå. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

173
	pop eax ;ïîëó÷àåì äàííûå óçëà
160
	stdcall dword[tl_node_poi_get_data], tree1,esi
174

ãäå: tree1 - ñòðóêòóðà tree_list;

161

ãäå: tree1 - ñòðóêòóðà tree_list;

Line 175... Line 162...
175
esi - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë;
162
esi - óêàçàòåëü íà ñòðóêòóðó îïèñûâàþùóþ óçåë;
176
eax - óêàçàòåëü íà äàííûå óçëà, îïèñààíîãî â esi.

163
eax - óêàçàòåëü íà äàííûå óçëà, îïèñàííîãî â esi.

177

Óêàçàòåëü, âîçâðàùàåìûé ôóíêöèåé tl_node_poi_get_data àíàëîãè÷åí óêàçàòåëþ âîçâðàùàåìîìó ôóíêöèåé tl_node_get_data. Îòëè÷èå ôóíêöèé â òîì, ÷òî tl_node_poi_get_data ðàáîòàåò áåç çàäåéñòâîâàíèÿ êóðñîðà. Ôóíêöèÿìè tl_node_poi_get_info, tl_node_poi_get_next_info è tl_node_poi_get_data ìîæíî ñ÷èòûâàòü èíôîðìàöèþ î óçëàõ ýëåìåíòà, ïðè ýòîì íå ìåíÿÿ òåêóùåãî ïîëîæåíèÿ êóðñîðà. Ò. å. ìîæíî îðãàíèçîâàòü äîñòóï ê äàíûì ýëåìåíòà â "ôîíîâîì ðåæèìå".

164

Óêàçàòåëü, âîçâðàùàåìûé ôóíêöèåé tl_node_poi_get_data àíàëîãè÷åí óêàçàòåëþ âîçâðàùàåìîìó ôóíêöèåé tl_node_get_data. Îòëè÷èå ôóíêöèé â òîì, ÷òî tl_node_poi_get_data ðàáîòàåò áåç çàäåéñòâîâàíèÿ êóðñîðà. Ôóíêöèÿìè tl_node_poi_get_info, tl_node_poi_get_next_info è tl_node_poi_get_data ìîæíî ñ÷èòûâàòü èíôîðìàöèþ î óçëàõ ýëåìåíòà, ïðè ýòîì íå ìåíÿÿ òåêóùåãî ïîëîæåíèÿ êóðñîðà. Ò. å. ìîæíî îðãàíèçîâàòü äîñòóï ê äàíûì ýëåìåíòà â "ôîíîâîì ðåæèìå".

178
 
165
 
179

tl_save_mem

166

tl_save_mem

180

Ñîõðàíÿåò èíôîðìàöèþ îá óçëàõ ýëåìåíòà â ïàìÿòü. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

-
 
181
	MEM_SIZE equ 5000
-
 
182
	node_data rb MEM_SIZE
-
 
183
.........
-
 
184
	push dword tree1
167

Ñîõðàíÿåò èíôîðìàöèþ îá óçëàõ ýëåìåíòà â ïàìÿòü. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

185
	push dword 0
-
 
186
	push dword node_data
168
	MEM_SIZE equ 5000
187
	push dword MEM_SIZE
169
	node_data rb MEM_SIZE
188
	call dword[tl_save_mem]
170
.........
189
	pop eax
171
	stdcall dword[tl_save_mem], tree1, 0, node_data, MEM_SIZE
190

ãäå: tree1 - ñòðóêòóðà tree_list;

172

ãäå: tree1 - ñòðóêòóðà tree_list;

Line 196... Line 178...
196

tl_load_mem

178

tl_load_mem

197

Çàãðóæàåò èíôîðìàöèþ îá óçëàõ ýëåìåíòà èç ïàìÿòè. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

179

Çàãðóæàåò èíôîðìàöèþ îá óçëàõ ýëåìåíòà èç ïàìÿòè. Ïðèìåð èñïîëüçîâàíèÿ ôóíêöèè:

198
	MEM_SIZE equ 5000
180
	MEM_SIZE equ 5000
199
	node_data rb MEM_SIZE
181
	node_data rb MEM_SIZE
200
.........
182
.........
201
	push dword tree1
-
 
202
	push dword 0
-
 
203
	push dword node_data
-
 
204
	push dword MEM_SIZE
-
 
205
	call dword[tl_load_mem]
183
	stdcall dword[tl_load_mem], tree1, 0, node_data, MEM_SIZE
206
	pop eax
-
 
207

ãäå: tree1 - ñòðóêòóðà tree_list;

184

ãäå: tree1 - ñòðóêòóðà tree_list;

208
 0 - èíäåêñ ñ÷èòûâàåìîãî ýëåìåíòà;
185
 0 - èíäåêñ ñ÷èòûâàåìîãî ýëåìåíòà;
209
 node_data - óêàçàòåëü íà áëîê ïàìÿòè;
186
 node_data - óêàçàòåëü íà áëîê ïàìÿòè;
210
 MEM_SIZE - ðàçìåð áëîêà ïàìÿòè äëÿ ñîõðàíåíèÿ.
187
 MEM_SIZE - ðàçìåð áëîêà ïàìÿòè äëÿ ñîõðàíåíèÿ.
211
 ðåãèñòð eax ïèøåòñÿ çíà÷åíèå 0 èëè çàïèñûâàþòñÿ êîäû îøèáîê ñ÷èòûâàíèÿ.

188
 ðåãèñòð eax ïèøåòñÿ çíà÷åíèå 0 èëè çàïèñûâàþòñÿ êîäû îøèáîê ñ÷èòûâàíèÿ.

Line 215... Line 192...
215
 Ýòó ôóíêöèþ ìîæíî èñïîëüçîâàòü ïåðåä ñîõðàíåíèåì íà äèñê, äëÿ ïîëó÷åíèÿ òî÷íîãî ðàçìåðà ñîõðàíÿåìûõ äàííûõ. Ïðèìåð:

192
 Ýòó ôóíêöèþ ìîæíî èñïîëüçîâàòü ïåðåä ñîõðàíåíèåì íà äèñê, äëÿ ïîëó÷åíèÿ òî÷íîãî ðàçìåðà ñîõðàíÿåìûõ äàííûõ. Ïðèìåð:

216
	MEM_SIZE equ 5000
193
	MEM_SIZE equ 5000
217
	node_data rb MEM_SIZE
194
	node_data rb MEM_SIZE
218
.........
195
.........
219
	;ñîõðàíÿåì äàííûå â 'node_data'
196
	;ñîõðàíÿåì äàííûå â 'node_data'
220
	stdcall dword[tl_save_mem], MEM_SIZE, node_data, 0, tree1
197
	stdcall dword[tl_save_mem], tree1, 0, node_data, MEM_SIZE
221
	pop eax ;êîä îøèáêè
198
	pop eax ;êîä îøèáêè
222
.........
199
.........
223
	;ïîëó÷àåì ðàçìåð äàííûõ â 'node_data'
200
	;ïîëó÷àåì ðàçìåð äàííûõ â 'node_data'
224
	stdcall dword[tl_get_mem_size], node_data, tree1
201
	stdcall dword[tl_get_mem_size], tree1, node_data
225
	pop ecx ;ðàçìåð äàííûõ, äîëæåí áûòü <= MEM_SIZE
202
	pop ecx ;ðàçìåð äàííûõ, äîëæåí áûòü <= MEM_SIZE
Line 226... Line 203...
226
 
203
 
227

version_tree_list

204

version_tree_list

Line 228... Line 205...
228

Âåðñèÿ ýëåìåíòà

205

Âåðñèÿ ýëåìåíòà

229
 
206
 
230

Ñòðóêòóðà tree_list

207

Ñòðóêòóðà tree_list

231
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
208
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\
232
	col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
209
	col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\
-
 
210
	info_capt_len,el_focus, p_scroll,on_press
-
 
211
{
-
 
212
.box_left    dd box_l
-
 
213
.box_top     dd box_t
233
	info_capt_len,el_focus, p_scrol,on_press
214
.box_width   dd box_w
234
{
215
.box_height  dd box_h
235
  .data_info  dd 0
216
.data_info   dd 0
236
  .info_size  dw info_size
217
.info_size   dw info_size
237
  .info_max_count dd info_max_count
218
.info_max_count dd info_max_count
238
  .style      dd style
219
.style       dd style
239
  .data_nodes dd 0
220
.data_nodes  dd 0
240
  .data_img   dd 0
221
.data_img    dd 0
241
  .img_cx     dw img_cx
222
.img_cx      dw img_cx
242
  .img_cy     dw img_cy
223
.img_cy      dw img_cy
243
  .data_img_sys dd 0
-
 
244
  .ch_tim     dd 0
224
.data_img_sys dd 0
245
  .ls_tim     dd 0
225
.ch_tim      dd 0
246
  .tim_undo   dd 0
226
.tim_undo    dd 0
247
  .cur_pos    dd 0
227
.cur_pos     dd 0
248
  .col_bkg    dd col_bkg
228
.col_bkg     dd col_bkg
249
  .col_zag    dd col_zag
-
 
250
  .col_txt    dd col_txt
-
 
251
  .box_left   dd box_l
-
 
252
  .box_top    dd box_t
-
 
253
  .box_width  dd box_w
229
.col_zag     dd col_zag
254
  .box_height dd box_h
230
.col_txt     dd col_txt
255
  .capt_cy    dw capt_cy
231
.capt_cy     dw capt_cy
256
  .info_capt_offs dw info_capt_offs
232
.info_capt_offs dw info_capt_offs
257
  .info_capt_len  dw info_capt_len
233
.info_capt_len dw info_capt_len
258
  .el_focus    dd el_focus
-
 
259
  .p_scrol     dd p_scrol
-
 
260
  rb 4
234
.el_focus    dd el_focus
261
  .on_activate dd 0
235
.p_scroll    dd p_scroll
262
  .on_press    dd on_press
236
.on_press    dd on_press
263
}
237
}
264

info_size - êîëè÷åñòâî áàéò, êîòîðîå áóäåò âûäåëåíî äëÿ êàæäîãî óçëà. ×àñòü ýòîé ïàìÿòè ïîëüçîâàòåëü ìîæåò èñïîëüçîâàòü äëÿ ñâîèõ öåëåé (ðåãóëèðóåòñÿ ÷åðåç info_capt_offs è info_capt_len ñì. ðèñ. 2) à îñòàëüíàÿ ÷àñòü áóäåò èñïîëüçîâàíà êàê ïîäïèñü óçëà.

238

info_size - êîëè÷åñòâî áàéò, êîòîðîå áóäåò âûäåëåíî äëÿ êàæäîãî óçëà. ×àñòü ýòîé ïàìÿòè ïîëüçîâàòåëü ìîæåò èñïîëüçîâàòü äëÿ ñâîèõ öåëåé (ðåãóëèðóåòñÿ ÷åðåç info_capt_offs è info_capt_len ñì. ðèñ. 2) à îñòàëüíàÿ ÷àñòü áóäåò èñïîëüçîâàíà êàê ïîäïèñü óçëà.

Line 272... Line 246...
272

col_bkg - öâåò ôîíà.

246

col_bkg - öâåò ôîíà.

273

col_zag - öâåò ñòðîêè çàãîëîâêà (åñëè îíà çàäàíà) è êíîïîê è ïîëçóíêà âåðòèêàëüíîé ïîëîñû ïðîêðóòêè (åñëè îíà åñòü).

247

col_zag - öâåò ñòðîêè çàãîëîâêà (åñëè îíà çàäàíà) è êíîïîê è ïîëçóíêà âåðòèêàëüíîé ïîëîñû ïðîêðóòêè (åñëè îíà åñòü).

274

col_txt - öâåò òåêñòà.

248

col_txt - öâåò òåêñòà.

275

capt_cy - âûñîòà ñòðîêè äëÿ ïîäïèñè ââåðõó ýëåìåíòà, åñëè ìåíüøå 9 ïîäïèñü íå âûâîäèòñÿ.

249

capt_cy - âûñîòà ñòðîêè äëÿ ïîäïèñè ââåðõó ýëåìåíòà, åñëè ìåíüøå 9 ïîäïèñü íå âûâîäèòñÿ.

276

info_capt_len - äëèííà òåêñòà äëÿ ïîäïèñè. Åñëè ðàâíî 0, òî äëèííà ñ÷èòàåòñÿ òàê: info_size - info_capt_offs.

250

info_capt_len - äëèííà òåêñòà äëÿ ïîäïèñè. Åñëè ðàâíî 0, òî äëèííà ñ÷èòàåòñÿ òàê: info_size - info_capt_offs.

277

p_scrol - óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà, ñâÿçàííîãî ñ äàííûì ýëåìåíòîì.

251

p_scroll - óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà, ñâÿçàííîãî ñ äàííûì ýëåìåíòîì.

278

on_press - óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ áóäåò âûçâàíà ïðè íàæàòèè [Enter]. Åñëè óêàçàòåëü ðàâåí 0 òî íè÷åãî íå áóäåò âûçûâàòüñÿ.

252

on_press - óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ áóäåò âûçâàíà ïðè íàæàòèè [Enter]. Åñëè óêàçàòåëü ðàâåí 0 òî íè÷åãî íå áóäåò âûçûâàòüñÿ.

Line 279... Line 253...
279
 
253
 
280
 
254
 
Line 292... Line 266...
292

Ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó.

266

Ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó.

293

tl_list_box_mode

267

tl_list_box_mode

294

Ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå óçëû îäíîãî óðîâíÿ).

268

Ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå óçëû îäíîãî óðîâíÿ).

Line 295... Line 269...
295
 
269
 
296
 
270
 
297

Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 30.09.10.

271

Äîêóìåíòàöèÿ îáíîâëÿëàñü ïîñëåäíèé ðàç 10.11.15.

298
 
272
 
299
 
273