Mark Paschal
24 August 2002
Version 3
winget is a Windows “port” of the popular UNIX program wget. Rather than a direct command line port, winget is a Windows interpretation of wget, providing the ease and power of wget in a form more appropriate to the Windows environment than a command line application.
This specification is not complete. It is subject to revision during the design and implementation of the software. It does not specify the implementation of the software, other than the occasional note or suggestion to implementors.
Alice is a Windows user. She has tried several download managers but doesn’t like any of them. She likes to download files, but is stuck with a dial-up connection, so she can’t download many at once. Sometimes she opens a text editor and pastes URLs in, to fetch later by pasting them into her browser; otherwise she’d forget them.
Bob is an old hand at UNIX. He works in a multi-system environment, running Debian Linux on several headless machines, and has a desktop running Windows XP and a Mac running OS X. He has to trade files between the machines often, and would like to download files to his XP machine with the ease he knows in Linux.
The following features are not part of the winget design:
Using the application is a process like so:

When the application starts, it registers an icon in the Windows system tray. Clicking the icon should cause winget to look in the clipboard for an URL; if found, the URL should be enqueued. Double-clicking the icon opens the “Get” dialog, while right-clicking pops the context menu with various options.
Open issue: what feedback does single-clicking yield, to tell the user it did something? Should winget have a different “doing something” icon?
Open issue: what icon? It would be great to use Iconfactory’s Smoothicons globe, but that won’t happen.
The tray icon should exhibit a tooltip that gives a quick overview of downloads’ progress:

If multiple files are downloading, the filename will be replaced with “number files” and the percent and time remaining will reflect the total percentage and total remaining time of the currently downloading files. These totals should not include enqueued files, since winget doesn’t know how big they are or how fast the connection will be.
On systems that support it, extra messages will be given with a balloon tip. The balloon tip should display an appropriate icon based on winget’s. Such messages are:
On systems that do not support balloon tips, winget should utilize a small dialog lacking a title bar. The dialog should appear in the lower right corner where winget’s windows appear, and look as much like the balloon tip as possible: the same icon next to the same message.
Clicking the balloon tip or message dialog should open winget’s Progress dialog.
Right-clicking on the tray icon brings up winget’s context menu:

Selecting the “Stop downloads” option will stop all the current downloads. “Continue partial downloads” will enqueue and begin downloading the files in the queue that are neither complete nor currently downloading.
The meat of the software is the “Get” dialog, which is modeled after Windows’ own “Run” dialog:

This dialog is kept simple by hiding all the unusual decisions for downloading a file in an “Options” dialog. A set of default options are also set, and used when they aren’t set particularly with the “Options” button here. The “Save to” option will resort to the most recently used directory; as implied in the shot, all the most recent directories are available from the drop down.
The “Get” button commences downloading of the given URL immediately. The download can be queued with the “Queue” button. When all downloads complete, winget should start downloading the first queued file in the list. Each file in the queue will be downloaded one at a time.
Options can be organized in several categories, corresponding to tabs in the dialog:
These forms are as shown:



In addition there’s the “Progress” window that shows the current downloads’ progress.

When an item in the list is selected, the “Run” and “Open Folder” buttons (the leftmost two) become available. They start the file and its location in the normal Windows way. If a file has not been completely downloaded yet (such as dot.png in the shot), the “Go” button (pictured third) is available to start its download. If a file is being downloaded (like anata.mp3), the “Stop” button will allow the user to stop the download for now.
The possible statuses””single words in the “Progress” field””are:
This diagram shows the progression of a download through the stages. “Downloading” is the stage in which a progress bar and percentage are displayed.

A number of columns can be displayed in the Progress dialog; the user can select which by right-clicking in the button bar titling them. Times are displayed in [hh:]mm:ss format.