Rev 4645 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4645 | Rev 4870 | ||
---|---|---|---|
Line 98... | Line 98... | ||
98 | break; |
98 | break; |
99 | } |
99 | } |
100 | mailsize = atr.GetSize(mail_list.current+1) + 1024; |
100 | mailsize = atr.GetSize(mail_list.current+1) + 1024; |
101 | free(mailstart); |
101 | free(mailstart); |
102 | mailstart = malloc(mailsize); |
102 | mailstart = malloc(mailsize); |
- | 103 | mailend = mailstart; |
|
103 | if (!mailstart) |
104 | if (!mailstart) |
104 | { |
105 | { |
105 | debugln("alloc error!"); |
106 | debugln("alloc error!"); |
106 | aim=NULL; |
107 | aim=NULL; |
107 | break; |
108 | break; |
108 | } |
109 | } |
109 | mailend = mailstart; |
110 | debug("mailsize: "); debugi(mailsize); |
110 | aim = GET_ANSWER_RETR; |
111 | aim = GET_ANSWER_RETR; |
111 | debugln("goto GET_ANSWER_RETR"); |
112 | debugln("goto GET_ANSWER_RETR"); |
112 | break; |
113 | break; |
Line 113... | Line 114... | ||
113 | 114 | ||
- | 115 | case GET_ANSWER_RETR: |
|
- | 116 | debug("mailsize: "); debugi(mailsize); |
|
- | 117 | debug("mailstart: "); debugi(mailstart); |
|
114 | case GET_ANSWER_RETR: |
118 | debug("mailend: "); debugi(mailend); |
115 | ticks = Receive(socketnum, mailend, mailsize + mailstart - mailend, MSG_DONTWAIT); |
119 | ticks = Receive(socketnum, mailend, mailsize + mailstart - mailend, MSG_DONTWAIT); |
116 | if (ticks == 0xffffffff) break; |
120 | if (ticks == 0xffffffff) break; |
117 | mailend += ticks; |
121 | mailend = mailend + ticks; |
118 | if (mailsize + mailstart - mailend - 2 < 0) |
122 | if (mailsize + mailstart - mailend - 2 < 0) |
119 | { |
123 | { |
120 | debugln("Resizing buffer"); |
124 | debugln("Resizing buffer"); |
121 | mailsize += 4096; |
125 | mailsize += 4096; |
122 | mailstart = realloc(mailstart, mailsize); |
126 | mailstart = realloc(mailstart, mailsize); |
123 | if (!mailstart) { StopConnect("Realloc error!"); break;} |
127 | if (!mailstart) { StopConnect("Realloc error!"); break;} |
- | 128 | } |
|
124 | } |
129 | /* |
125 | if (mailsize>9000) |
130 | if (mailsize>9000) |
126 | { |
131 | { |
127 | load_persent = mailend - mailstart * 100 ; |
132 | load_persent = mailend - mailstart * 100 ; |
128 | load_persent /= mailsize - 1024; |
133 | load_persent /= mailsize - 1024; |
129 | if (load_persent != cur_st_percent) SetMailBoxStatus( load_persent , NULL); |
134 | if (load_persent != cur_st_percent) SetMailBoxStatus( load_persent , NULL); |
- | 135 | } |
|
130 | } |
136 | */ |
131 | ParseMail(); |
137 | //ParseMail(); |
132 | } |
138 | } |
Line 133... | Line 139... | ||
133 | } |
139 | } |
Line 313... | Line 319... | ||
313 | PutPaletteImage(sizeof(letter_icons)/3*direction + #letter_icons, 18,12, on_x+18, |
319 | PutPaletteImage(sizeof(letter_icons)/3*direction + #letter_icons, 18,12, on_x+18, |
314 | mail_list.line_h-12/2+ on_y, 8, #letter_icons_pal); |
320 | mail_list.line_h-12/2+ on_y, 8, #letter_icons_pal); |
315 | WriteText(on_x + 42, on_y+5, 0x80, 0, atr.GetSubject(i+mail_list.first+1)); |
321 | WriteText(on_x + 42, on_y+5, 0x80, 0, atr.GetSubject(i+mail_list.first+1)); |
316 | DrawBar(0, on_y + mail_list.line_h-1, mail_list.w, 1, 0xCCCccc); |
322 | DrawBar(0, on_y + mail_list.line_h-1, mail_list.w, 1, 0xCCCccc); |
317 | WriteText(10, on_y+5, 0x80, 0, itoa(i+mail_list.first+1)); |
323 | WriteText(10, on_y+5, 0x80, 0, itoa(i+mail_list.first+1)); |
318 | WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertMemSize(atr.GetSize(i+mail_list.first+1))); |
324 | WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertSize(atr.GetSize(i+mail_list.first+1))); |
319 | } |
325 | } |
320 | DrawBar(0, i*mail_list.line_h + mail_list.y, mail_list.w, -i*mail_list.line_h+mail_list.h, 0xFFFfff); |
326 | DrawBar(0, i*mail_list.line_h + mail_list.y, mail_list.w, -i*mail_list.line_h+mail_list.h, 0xFFFfff); |
321 | DrawScroller1(); |
327 | DrawScroller1(); |
322 | } |
328 | } |
Line 326... | Line 332... | ||
326 | DrawBar(0, lt_y, mail_list.w, 1, sc.work_graph); |
332 | DrawBar(0, lt_y, mail_list.w, 1, sc.work_graph); |
327 | DrawBar(0, lt_y+1, Form.cwidth, 1, LBUMP); |
333 | DrawBar(0, lt_y+1, Form.cwidth, 1, LBUMP); |
328 | DrawBar(0, lt_y+2, Form.cwidth, LIST_INFO_H-4, sc.work); |
334 | DrawBar(0, lt_y+2, Form.cwidth, LIST_INFO_H-4, sc.work); |
329 | WriteText(mail_list.w-30/2, lt_y, 0x80, 0x888888, "= = ="); |
335 | WriteText(mail_list.w-30/2, lt_y, 0x80, 0x888888, "= = ="); |
330 | WriteText(mail_list.w-30/2, lt_y+1, 0x80, 0xEeeeee, "= = ="); |
336 | WriteText(mail_list.w-30/2, lt_y+1, 0x80, 0xEeeeee, "= = ="); |
331 | DrawBar(0, lt_y+LIST_INFO_H-2, mail_list.w, 1, sc.work_graph); //bottom |
337 | DrawBar(0, lt_y+LIST_INFO_H-2, Form.cwidth, 1, sc.work_graph); //bottom |
332 | DrawBar(0, lt_y+LIST_INFO_H-1, mail_list.w, 1, 0xdfdfdf); |
338 | DrawBar(0, lt_y+LIST_INFO_H-1, Form.cwidth, 1, 0xdfdfdf); |
333 | DrawBar(0, lt_y+LIST_INFO_H , mail_list.w, 1, 0xf0f0f0); |
339 | DrawBar(0, lt_y+LIST_INFO_H , Form.cwidth, 1, 0xf0f0f0); |
334 | WriteTextB(10, lt_y+8 , 0x80, sc.work_text, "From:"); |
340 | WriteTextB(10, lt_y+8 , 0x80, sc.work_text, "From:"); |
335 | WriteText (45, lt_y+8 , 0x80, sc.work_text, #from); |
341 | WriteText (45, lt_y+8 , 0x80, sc.work_text, #from); |
336 | WriteTextB(10, lt_y+20, 0x80, sc.work_text, "To:"); |
342 | WriteTextB(10, lt_y+20, 0x80, sc.work_text, "To:"); |
337 | WriteText (45, lt_y+20, 0x80, sc.work_text, #to); |
343 | WriteText (45, lt_y+20, 0x80, sc.work_text, #to); |
338 | WriteTextB(10, lt_y+32, 0x80, sc.work_text, "Date:"); |
344 | WriteTextB(10, lt_y+32, 0x80, sc.work_text, "Date:"); |
Line 345... | Line 351... | ||
345 | void InitTWB() { |
351 | void InitTWB() { |
346 | WB1.list.SetSizes(0, mail_list.y+mail_list.h+LIST_INFO_H+1, Form.cwidth - scroll_wv.size_x - 1, |
352 | WB1.list.SetSizes(0, mail_list.y+mail_list.h+LIST_INFO_H+1, Form.cwidth - scroll_wv.size_x - 1, |
347 | Form.cheight - mail_list.y - mail_list.h - LIST_INFO_H - 1 - status_bar_h, 60, 12); |
353 | Form.cheight - mail_list.y - mail_list.h - LIST_INFO_H - 1 - status_bar_h, 60, 12); |
348 | WB1.list.column_max = WB1.list.w - 30 / 6; |
354 | WB1.list.column_max = WB1.list.w - 30 / 6; |
349 | WB1.list.visible = WB1.list.h / WB1.list.line_h; |
355 | WB1.list.visible = WB1.list.h / WB1.list.line_h; |
350 | WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h, WB1.list.line_h); |
356 | WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h); |
Line 351... | Line 357... | ||
351 | 357 | ||
352 | strcpy(#header, #version); |
358 | strcpy(#header, #version); |
353 | pre_text = 0; |
359 | pre_text = 0; |
354 | WB1.list.first = WB1.list.count = 0; |
360 | WB1.list.first = WB1.list.count = 0; |
Line 357... | Line 363... | ||
357 | void DrawLetter() { |
363 | void DrawLetter() { |
358 | pre_text = 2; |
364 | pre_text = 2; |
359 | bufsize = strlen(mdata); |
365 | bufsize = strlen(mdata); |
360 | WB1.Prepare(bufsize, mdata); |
366 | WB1.Prepare(bufsize, mdata); |
361 | if (bufsize) WB1.Parse(); |
367 | if (bufsize) WB1.Parse(); |
- | 368 | DrawRectangle(scroll_wv.start_x, scroll_wv.start_y, scroll_wv.size_x, scroll_wv.size_y-1, 0xFFFfff); |
|
362 | } |
369 | } |
Line 363... | Line 370... | ||
363 | 370 | ||
364 | 371 | ||
Line 386... | Line 393... | ||
386 | } |
393 | } |
Line 387... | Line 394... | ||
387 | 394 | ||
388 | 395 | ||
- | 396 | ||
389 | 397 | void SetMailBoxStatus(dword percent1, text1) { |
|
390 | void SetMailBoxStatus(dword percent1, text1) { |
398 | DrawProgressBar(3, Form.cheight -status_bar_h + 1, 220, 12, sc.work, 0xC3C3C3, 0x54B1D6, sc.work_text, percent1); |
391 | DrawProgressBar(3, Form.cheight -status_bar_h + 1, 220, 12, sc.work, 0xC3C3C3, 0x54B1D6, sc.work_text, percent1, text1); |
399 | WriteText(3, Form.cheight -status_bar_h + 1, 0x80, sc.work_text, text1); |