kolibrios-fun/programs/cmm/aelia/gui.h
Kirill Lipatov (Leency) 4b8415c842 Aelia: upload pre alpha
git-svn-id: svn://kolibrios.org@6043 a494cfbc-eb01-0410-851d-a64ba20cac60
2016-01-07 16:00:59 +00:00

76 lines
2.1 KiB
C

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, "<html><head><title>History</title></head><body>\n<h1>History</h1>\n");
strcat(history_page, "<h2>Visited pages</h2><br>\n");
for (i=0; i<history.items.count; i++)
{
strcat(history_page, "<a href='");
strcat(history_page, history.items.get(i));
strcat(history_page, "'>");
strcat(history_page, history.items.get(i));
strcat(history_page, "</a><br>\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);
}
}