This software is provided ?as-is?, without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the
use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in a
product, an acknowledgment in the product documentation would be appreciated
but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Anyone uses bits of the code for other reasons is welcome to, as long as
they specifically state that their work is based, in part, on the Project
HighWire source release by Robert Goldsmith.
2. What is HighWire? - History
This is taken from the HighWire site written by the original author, Robert
Goldsmith.
For those of you who have not heard, HighWire is a new web browser. It has been
in ?development? for over a year. I started HighWire in what I considered a
feeble attempt to discourage me from moaning about CAB. I figured that when I
proved my code was vastly slower than CAB at parsing and rendering a page I
would give up and accept that browsing on my Falcon would always be slow.
Things did not turn out how I expected...
I think the big problem with my plan was that, unbeknownst to me at the
time, I had had a couple of rather good ideas. The result is HighWire.
Ok, so can I download it? You cannot write a web-browser in a month. I know,
I tried. :) HighWire is still very much in development.
Originally HighWire could do the following:
Load in an HTML 3.2 page hardcoded into the source
Display this page multiple times in hard coded frames
Redraw and scroll the frames and resize the window
Quit
Where we have gone with the project ...
New items since it went open source:
Frameset Support (90%)
Tables (98%)
HTML 4 compliant (90%)
HTML forms (20%)
Online OVLs for mintnet, sting and support for iconnect
Colour support (mapped to current system palette)
Graphics (99%) - Now loads HTML files with Gifs, Jpgs, XBM, XPM and Pngs (50%) -
colors are now perfect in all color modes (mono/256/32k/64k/24bit/32bit) which were tested using a Hades060 with a Nova graphics card May solve color problems on a Falcon with a Nova card, but this has not been tested as yet.
Files (Graphics, HTMLs, Docs etc.) can be dragged to a Highwire window
where they will be displayed.
Implementation of memory caching of images avoids multiple loading of same image. The pseudo URI "about:cache" now shows detailed information about cached images.
GEM Version with drop-down menues
GemScript support
Iconify/uniconify window
HighWire now loads sample HTML files from a folder named ?HTML?
Sound support
International Character Set support
Unicode characters up to U+FFFD with NVDI 4 and TrueType fonts
Scroll Window using arrow keys
A working implementation of hyperlinks (text and image)
File Selector support
Display text files using PRE style font selection
Number of windows only restricted by operating system
Frame Scroll controls are implemented now, also support of right mouse button.
Real time scrolling
Background Scrolling is now working
Highwire now works with scroll mice when the program MWheel is being used.
The program My PDF has been added to the Highwire package and is currently under development (PDF support 10%)
Several Hotkeys added
Extended menu bar, the current charset encoding can be seen and changed at menu title "View". Also de/increasing of the display font is available there.
Menu entry "info.." will show now some basic information about the active frame.
Improved algorithm for the line breaking to avoid splitting of text at wrong positions
HTTP protcol layer reworked, is faster now and works for much more servers.
The problem of files with long names no loaded at some Magic versions (eg. *html) is solved now.
Added a workaround to have it working under Geneva again.
Reworked code to avoid a flickering mouse pointer when using Highwire.
Navigation Bar added with the traditional browser buttons: Forward, Back, Home, Reload, Stop and URL Edit Field.
When holding down the Forward and Back buttons a bit longer, a popup appears that allows selection of any URL stored in History as well as the Last and Next URLs.
Using the commands, ^C/^V, copying between the Navigation Bar's edit field and the Clipboard can be done.
The Navigation Bar can be hidden or shown by holding down the ALT key while clicking the window's Close button.
Initial implementation of the Ovl's for different TCP/IP stack support has been added.
Form support added which allows keyboard input into form input fields.
Calulation of table width and cells has been improved.
New keyword FONT_MINSIZE to define a minimum font height in points, eg. for (font size = 1) (see example.cfg\highwire.cfg for explanation).
Nw menu entry under "Option" to have frames always resizable and scrollbars if necessary, even if the HTML defines anything else there. The default
is off, but can be set with the keyword FORCE_FRAMECTRL = 1.
The cfg file now supports three new keywords concerning the cache: 1) CACHEDIR which lets the user choose where Highwire will define a directory for the storage of visited pages/images,
2) CACHEMEM=(kbytes) to limit the amount of memory cached images (default is now 100k) which should help to prevent Highwire from running out of
memory due to always storing every image ever loaded and 3) CACHEDSK which sets limits for filling up the cache in order to prevent blowing up hard drives. (eg. CACHEDSK =
8192 1000 means to use only 8192 of disk space, but not more than 1000 files).
More functionality for the redo button: Holding down the ALT key clears now the whole cache. Additional holding down the SHIFT key will avoid forcing
a page reload then.
The TAB key can now be used to jump between text fields, including automatical page scrolling to the actual field --
the latter in opposite to CAB. To leave the edit mode either press CTRL+TAB or click somewhere else on the page.
A right mouse click not only brings up the options: Back, Foward, Reload, View Source and Info, but also Copy URL and
Save As. This means that now it is possible to download archive and HTML files to a local directory.
TEXTAREA tags are now working and editable.
Highwire is now capable of storing non-session cookies to allow persistent user preferences for sites as offered by Google, Yahoo and others. Access this in the "Options" menu.
When the option 'Cookies allowed' in the menu gets changed, this will be stored in the config file.
F10 brings up full-screen mode.
New keyword for the Highwire cfg file. START_PAGE = to define what should be displayed after program start. NOTE: This option will always be ignored at the very first start of a new installed version.
The menu bar got changed: 'Suppress Images' was removed (still useable from config file) and instead 'View Images' and 'Use CSS' were added. Both of the latter are stored in the cfg file also when changed.
Highwire now has CSS support especially for the layout of the floating block elements (DIV, TABLE, P, ..). Also recognised are the CSS attributes: float, clear, border and font.
Highwire now loads it's config file from the HOME directory under Magic and Mint.
It is currently missing:
User interface
Java/Javascript support
Use of internet clients
External viewer support
External emailer
Lots more...
So why all the fuss?
Well, HighWire can load in, parse and render an HTML page in full 16-bit
fonts (for all the ?strange? characters such as ?) in about half the time of
CAB. Furthermore, once a page is pre-rendered (before the first time it is
displayed) it does not need further processing, making redraws and window
resizes much much faster. On a Hades machine the code was tested on, the page
render including font sizes, centering and lists redrew correctly in real time
(with a slight flicker...) as the window was resized.
Multitasking (preemptive multitasking) Atari OS – MagiC or MiNT
NVDI 3 or SpeedoGDOS
Speedo fonts with Bitstream International Character Set (BICS)
File types supported:
HTML files (8-bit coded)
GIF images
JPG images
PNG images (not yet complete: no interlaced pics at the moment)
Plain text (8-bit and 16-bit coded)
Configuration
At present highwire.cfg consists mainly of font information. Change manually, or better with the setup tool FontList.
Hotkeys:
Control + I - About HighWire alert
Control + O - Open file selector
Control + R - Reload
Control + Q - Quit HighWire
Control + V - Cycle window
Control + W - Cycle window
Control + TAB - Close frames
1: Reload with default character set ISO/IEC 8859-1, Latin-1, Windows
codepage 1252 (This is the default character set for a HTML browser.)
2: Reload with default character set ISO/IEC 8859-2, Latin-2
A: Reload with default character set Atari ST system font
U: Reload with default encoding UTF-8, Unicode
Tab: Cycle Frames
+: Reload with increased font size
–: Reload with decreased font size
Help, F1 - Help: Help
F5 - Reload
F7 - Toggle logging to console
F8 - Toggle pictures or alternative text
Undo - Go back in file history (+Shift: go forward)
Arrow keys: Scroll frame
The scroll elements support the right mouse button
Editor keys:
Tab – move to next field on form
Cursor up, down, left, right – move cursor one character/line
Shift cursor left, right - move to start/end of text line
Home - move to start of text area
End, Shift Home - move to end of text area
Backspace – remove character to left of cursor
Delete – remove character to right of cursor
Shift Backspace – remove all characters to left of cursor
Shift Delete – remove all characters to right of cursor
Escape – remove all text in text area
Page Up/Down -
5. Use of FontList
FontList
Coded by Lp and GokMasE for the HighWire Project
FontList is a small utility to change the font settings in the HighWire
configuration file.
Installation
Keep this binary in the HighWire directory. (Same directory as the
highwire.cfg file.)
Usage
As of FontList 1.11 a default config file is created at launch time,
unless an existing file is located in FontList's work directory.
Also note that if the font setting you are seeking to change is not
present (or not activated) in the old config file, FontList will add
the new setting to the end of the config.
Select 1 (there can be only one) of the fonts, then use
menubar to decide what setting in HighWire should be affected.
You can also right click on any of the fonts to open up a popup menu
and select a text style to link the current font ID to.
Note that changes are written to HighWire configuration file
instantly when you select an entry in either menu!
Another thing you can do, is select a number of fonts (hold down
CTRL) and later press CTRL + C. Then the prg will save a list of all
currently selected fonts to the clipboard.
CTRL + A selects / deselects all.
NOTE: When NVDI is installed, all non-speedo fonts are greyed out and
thus not selectable. The reason for this is that HighWire at this time
does not support other format than Speedo. However, if you wish to
play around with other fonts you can enable all listed fonts by
selecting ?Allow non-speedo? from menubar.
General Advice
It might be a good idea to keep a backup of latest working configuration
file.
6. Supported HTML tags
Here are some of the HTML tags that HighWire supports:
Hopefully will be updated to list all supported tags.