summaryrefslogtreecommitdiff
path: root/atari
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2012-12-17 23:32:06 +0100
committerOle Loots <ole@monochrom.net>2012-12-17 23:32:06 +0100
commit59a44380a6951b220c91d109532c24ecc7148361 (patch)
tree79ecf80164a33d49a4f7eff51f4d51b61b055a10 /atari
parent037b7e0b75972470d9670def49893da8e24f056b (diff)
downloadnetsurf-59a44380a6951b220c91d109532c24ecc7148361.tar.gz
netsurf-59a44380a6951b220c91d109532c24ecc7148361.tar.bz2
Download window works now without windom, except file select.
Diffstat (limited to 'atari')
-rwxr-xr-xatari/download.c54
1 files changed, 30 insertions, 24 deletions
diff --git a/atari/download.c b/atari/download.c
index 28cf35b8f..566f44a86 100755
--- a/atari/download.c
+++ b/atari/download.c
@@ -52,6 +52,7 @@ extern GRECT desk_area;
static void gui_download_window_destroy( struct gui_download_window * gdw );
static void on_abort_click(struct gui_download_window *dw);
+static void on_cbrdy_click(struct gui_download_window *dw);
static void on_close(struct gui_download_window * dw);
static void on_redraw(struct gui_download_window *dw, GRECT *clip);
@@ -66,7 +67,7 @@ static short on_aes_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8])
if ((ev_out->emo_events & MU_MESAG) != 0) {
// handle message
- printf("download win msg: %d\n", msg[0]);
+ //printf("download win msg: %d\n", msg[0]);
switch (msg[0]) {
case WM_REDRAW:
@@ -85,6 +86,7 @@ static short on_aes_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8])
break;
case WM_TOOLBAR:
+ printf("tb idx: %d\n", msg[4]);
switch(msg[4]){
case DOWNLOAD_BT_ABORT:
@@ -92,6 +94,7 @@ static short on_aes_event(GUIWIN *win, EVMULT_OUT *ev_out, short msg[8])
break;
case DOWNLOAD_CB_CLOSE_RDY:
+ on_cbrdy_click(data);
break;
default: break;
@@ -119,7 +122,7 @@ static void on_redraw(struct gui_download_window *dw, GRECT *clip)
GRECT work, visible;
uint32_t p = 0;
- guiwin_get_grect(dw->guiwin, GUIWIN_AREA_CONTENT, &work);
+ guiwin_get_grect(dw->guiwin, GUIWIN_AREA_TOOLBAR, &work);
tree->ob_x = work.g_x;
tree->ob_y = work.g_y;
@@ -145,6 +148,7 @@ static void on_redraw(struct gui_download_window *dw, GRECT *clip)
} else {
tree[DOWNLOAD_CB_CLOSE_RDY].ob_state &= ~(SELECTED | CROSSED);
}
+ tree[DOWNLOAD_BT_ABORT].ob_state &= ~SELECTED;
/*Walk the AES rectangle list and redraw the visible areas of the window: */
wind_get_grect(dw->aes_handle, WF_FIRSTXYWH, &visible);
@@ -169,11 +173,12 @@ static void on_abort_click(struct gui_download_window *dw)
static void on_cbrdy_click(struct gui_download_window *dw)
{
- dw->close_on_finish = (dw->tree[DOWNLOAD_CB_CLOSE_RDY].ob_state & SELECTED);
+ dw->close_on_finish = !dw->close_on_finish;
if (dw->close_on_finish && dw->status == NSATARI_DOWNLOAD_COMPLETE) {
guiwin_send_msg(dw->guiwin, WM_CLOSED, 0,0,0,0);
}
- guiwin_send_redraw(dw->guiwin, NULL);
+ guiwin_send_redraw(dw->guiwin, NULL);
+ evnt_timer(250);
}
static void on_close(struct gui_download_window * dw)
@@ -251,8 +256,7 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
}
filename = download_context_get_filename(ctx);
- //dlgres = form_alert(2, "[2][Accept download?][Yes|Save as...|No]");
- dlgres = 1;
+ dlgres = form_alert(2, "[2][Accept download?][Yes|Save as...|No]");
if( dlgres == 3){
return( NULL );
}
@@ -270,7 +274,7 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
snprintf( destination, dstsize, "%s/%s", gdos_path, filename );
}
- gdw = calloc( 1, sizeof(struct gui_download_window) );
+ gdw = calloc(1, sizeof(struct gui_download_window));
if( gdw == NULL ){
warn_user(NULL, "Out of memory!");
free( destination );
@@ -290,12 +294,12 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
gdw->tree = tree;
url = download_context_get_url(ctx);
- gdw->fd = fopen(gdw->destination, "wb" );
+ gdw->fd = fopen(gdw->destination, "wb");
if( gdw->fd == NULL ){
char spare[200];
snprintf(spare, 200, "Couldn't open %s for writing!", gdw->destination);
msg_box_show(MSG_BOX_ALERT, spare);
- free( filename );
+ free(filename);
gui_download_window_destroy(gdw);
return( NULL );
}
@@ -305,9 +309,11 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
setvbuf( gdw->fd, gdw->fbuf, _IOFBF, gdw->fbufsize );
}
- gdw->aes_handle = wind_create_grect(CLOSER | MOVER | NAME, &desk_area);
+ gdw->aes_handle = wind_create_grect(CLOSER | NAME | MOVER, &desk_area);
wind_set_str(gdw->aes_handle, WF_NAME, "Download");
- gdw->guiwin = guiwin_add(gdw->aes_handle, GW_FLAG_DEFAULTS, on_aes_event);
+ unsigned long gwflags = GW_FLAG_DEFAULTS;
+ gwflags &= ~GW_FLAG_TOOLBAR_REDRAW;
+ gdw->guiwin = guiwin_add(gdw->aes_handle, gwflags, on_aes_event);
if( gdw->guiwin == NULL || gdw->fd == NULL ){
die("could not create guiwin");
free( filename );
@@ -315,9 +321,9 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
return( NULL );
}
guiwin_set_user_data(gdw->guiwin, gdw);
- //guiwin_set_toolbar(gdw->guiwin, tree, 0, 0);
+ guiwin_set_toolbar(gdw->guiwin, tree, 0, 0);
- //strncpy((char*)&gdw->lbl_file, filename, MAX_SLEN_LBL_FILE-1);
+ strncpy((char*)&gdw->lbl_file, filename, MAX_SLEN_LBL_FILE-1);
free( filename );
LOG(("created download: %s (total size: %d)",
gdw->destination, gdw->size_total
@@ -334,9 +340,8 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
curr.g_x = (desk_area.g_w / 2) - (curr.g_w / 2);
curr.g_y = (desk_area.g_h / 2) - (curr.g_h / 2);
- dbg_grect("download window", &curr);
-
wind_open_grect(gdw->aes_handle, &curr);
+ gdw->lastrdw = clock() / (CLOCKS_PER_SEC >> 3);
return(gdw);
}
@@ -345,9 +350,10 @@ struct gui_download_window * gui_download_window_create(download_context *ctx,
nserror gui_download_window_data(struct gui_download_window *dw,
const char *data, unsigned int size)
{
-
- uint32_t tnow = clock() / CLOCKS_PER_SEC;
- uint32_t sdiff = tnow - dw->start;
+
+ uint32_t clck = clock();
+ uint32_t tnow = clck / (CLOCKS_PER_SEC>>3);
+ uint32_t sdiff = (clck / (CLOCKS_PER_SEC)) - dw->start;
uint32_t p = 0;
float speed;
float pf = 0;
@@ -368,10 +374,8 @@ nserror gui_download_window_data(struct gui_download_window *dw,
fwrite( data , size, sizeof(unsigned char),dw->fd );
dw->size_downloaded += size;
- return NSERROR_OK;
-
- /* Update the progress bar... */
- if( tnow - dw->lastrdw > 1 ) {
+ /* Update GUI */
+ if ((tnow - dw->lastrdw) > 1) {
dw->lastrdw = tnow;
speed = dw->size_downloaded / sdiff;
@@ -406,14 +410,16 @@ void gui_download_window_error(struct gui_download_window *dw,
strncpy((char*)&dw->lbl_file, error_msg, MAX_SLEN_LBL_FILE-1);
dw->status = NSATARI_DOWNLOAD_ERROR;
guiwin_send_redraw(dw->guiwin, NULL);
- gui_window_set_status(input_window, messages_get("Done") );
+ gui_window_set_status(input_window, messages_get("Done") );
+ // TODO: change abort to close
}
void gui_download_window_done(struct gui_download_window *dw)
{
OBJECT * tree;
LOG((""));
-
+
+// TODO: change abort to close
dw->status = NSATARI_DOWNLOAD_COMPLETE;
if( dw->fd != NULL ) {