void DrawToolbarButton(char image_id, int x) { DefineButton(x+1, 7, TOOLBAR_ICON_WIDTH-2, TOOLBAR_ICON_HEIGHT-2, 10+image_id + BT_HIDE, 0); img_draw stdcall(skin.image, x, 6, TOOLBAR_ICON_WIDTH, TOOLBAR_ICON_HEIGHT, 0, image_id*TOOLBAR_ICON_HEIGHT); } void DrawScroller() { scroll.max_area = list.count; scroll.cur_area = list.visible; scroll.position = list.first; scroll.all_redraw = 0; scroll.start_x = list.x + list.w; scroll.start_y = list.y; scroll.size_y = list.h; scroll.start_x = list.x + list.w; scrollbar_v_draw(#scroll); } dword MakePageWithHistory() { int i; static dword history_page; if (history_page) free(history_page); history_page = malloc(history.items.data_size+256); strcat(history_page, "History\n

History

\n"); strcat(history_page, "

Visited pages


\n"); for (i=0; i"); strcat(history_page, history.items.get(i)); strcat(history_page, "
\n"); } return history_page; } enum { STEP_1_DOWNLOAD_PAGE = 0, STEP_2_COUNT_PAGE_HEIGHT = 30, STEP_3_DRAW_PAGE_INTO_BUFFER = 60, STEP_4_SMOOTH_FONT = 94, STEP_5_STOP = 100, }; void DrawProgress(int percent) { int progress_width; if (percent<100) { progress_width = address_box.width+5*percent/100; DrawBar(address_box.left-3, address_box.top+16, progress_width, 2, 0x72B7EA); //debugi(percent); } else { progress_width = address_box.width+5; DrawBar(address_box.left-3, address_box.top+16, progress_width, 2, 0xFFFfff); } } int progress_percent; void DrawProgressWhileDrawing(dword bufoff, buflen) { int progress_cur = bufoff - io.buffer_data; int progress_max = buflen - io.buffer_data; int new_progress_percent = STEP_4_SMOOTH_FONT-STEP_3_DRAW_PAGE_INTO_BUFFER*progress_cur/progress_max + STEP_3_DRAW_PAGE_INTO_BUFFER; if (progress_percent != new_progress_percent) { progress_percent = new_progress_percent; DrawProgress(progress_percent); } }