diff options
Diffstat (limited to 'amiga')
-rw-r--r-- | amiga/download.c | 19 | ||||
-rwxr-xr-x | amiga/download.h | 2 | ||||
-rwxr-xr-x | amiga/gui.c | 5 |
3 files changed, 25 insertions, 1 deletions
diff --git a/amiga/download.c b/amiga/download.c index bd4f05a5e..4e9b2966a 100644 --- a/amiga/download.c +++ b/amiga/download.c @@ -31,6 +31,8 @@ #include "amiga/options.h" #include "amiga/save_complete.h" +#include "content/fetch.h" + #include "desktop/selection.h" #include "utils/messages.h" @@ -103,6 +105,8 @@ struct gui_download_window *gui_download_window_create(const char *url, WA_CloseGadget, FALSE, WA_SizeGadget, TRUE, WA_CustomScreen,scrn, + WINDOW_SharedPort,sport, + WINDOW_UserData,dw, WINDOW_IconifyGadget, TRUE, WINDOW_LockHeight,TRUE, WINDOW_Position, WPOS_CENTERSCREEN, @@ -118,13 +122,20 @@ struct gui_download_window *gui_download_window_create(const char *url, FUELGAUGE_VarArgs,va, FUELGAUGE_Percent,FALSE, FUELGAUGE_Justification,FGJ_CENTER, - StringEnd, + FuelGaugeEnd, CHILD_NominalSize,TRUE, CHILD_WeightedHeight,0, + LAYOUT_AddChild, dw->gadgets[GID_CANCEL] = ButtonObject, + GA_ID,GID_CANCEL, + GA_RelVerify,TRUE, + GA_Text,messages_get("Abort"), + GA_TabCycle,TRUE, + ButtonEnd, EndGroup, EndWindow; dw->win = (struct Window *)RA_OpenWindow(dw->objects[OID_MAIN]); + dw->fetch = fetch; dw->node = AddObject(window_list,AMINS_DLWINDOW); dw->node->objstruct = dw; @@ -170,6 +181,12 @@ void gui_download_window_error(struct gui_download_window *dw, gui_download_window_done(dw); } +void ami_download_window_abort(struct gui_download_window *dw) +{ + fetch_abort(dw->fetch); + gui_download_window_done(dw); +} + void gui_download_window_done(struct gui_download_window *dw) { struct dlnode *dln,*dln2; diff --git a/amiga/download.h b/amiga/download.h index 3628add70..e48069d0e 100755 --- a/amiga/download.h +++ b/amiga/download.h @@ -37,11 +37,13 @@ struct gui_download_window { uint32 downloaded; struct dlnode *dln; struct browser_window *bw; + struct fetch *fetch; }; int drag_save; void *drag_save_data; +void ami_download_window_abort(struct gui_download_window *dw); void ami_drag_save(struct Window *win); void ami_free_download_list(struct List *dllist); diff --git a/amiga/gui.c b/amiga/gui.c index 33afd9120..4d5e98208 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -947,6 +947,11 @@ void ami_handle_msg(void) ami_401login_close((struct gui_login_window *)gwin); win_destroyed = true; } + else if(gwin->node->Type == AMINS_DLWINDOW) + { + ami_download_window_abort((struct gui_download_window *)gwin); + win_destroyed = true; + } break; default: |