NewView
-------

Copyright 2001, 2003 Aaron Lawrence
http://homepages.visp.co.nz/~aaronlawrence
email: aaronl at consultant dot com

NewView is a free replacement for the original OS/2 or eComStation online help system.

If you find NewView helpful, please email me and/or make a donation to support further development. It's nice to hear from you! See my web page for donation suggestions.

Major enhancements are:

- New user interface (split window)
- Select and copy direct from window
- Easy to use global (all files) search
- Remembers size & position
- Most recently used files list
- Smooth scrolling display
- Current topic always highlighted in contents
- Can go forward as well as back in history
- Options for fonts, colors and more
- Annotate help files
- Bookmarks
- Fully resizeable

For a version history, see the file changes.txt

Installation
------------

I suggest that you use the install.exe that comes with NewView. This is the easiest way to do a full install. It gives you the option to install NewView either as standalone, replace View only, or complete replacement.

A reboot will be needed for full replacement.

See below for more about manual installation, uninstall and stuff like that.

Known Problems
--------------

If you need to report a crash or other problem, then be as specific as possible about what files were being used, what you were doing, etc. If one is available, PLEASE include the newview.log. The log file will be EITHER
 - in the same directory as NewView itself
 - in the folder set by LOGFILES environment variable (typically eCS 1.1+)

- Printer setup dialog has white background and version number shows as ???
I have no clue what this is caused by, so please don't tell me about it, unless you have a specific suggestion. It doesn't seem to prevent things working properly, so it is extremely low priority.

- OpenChat does not run.
This cannot be fixed, since OpenChat somehow uses undocumented calls into HelpMgr, which I cannot emulate (well, not without the source to the original helpmgr!).

- After fully replacing help, the OS/2 Tutorial does not work.
This is unlikely to be fixed in the near future, but it's not ruled out.

- The Master Help Index and Online Info Overview - Glossary icons in the Assistance Center do not work. These are unlikely to ever be fully fixed, but they no longer crash the desktop.

- EPM help may have problems.

- Notes are not completely predictable.
They will not be in the right position when search highlights are showing... etc. I think I will remove them and replace them with a separate notes window.

- Conflict with Styler/2 (SmartWindows):
If you use the "maximised windows" control, then NewView's topic windows will also be maximised, and may be too large to view. Workaround: add view.exe and/or newview.exe to the "exceptions" list in Styler/2 preferences. This is fixed in Styler/2 1.6.5.1 or higher

- Links to other files or programs don't work.
This will probably be implemented sometime.

- Unable to open files with spaces in the name from desktop:
Make sure the program object for NewView has EITHER: blank parameters; OR the parameters field says "%*" (with quotes) NOT just %* without quotes.
  
License
-------

As of V1.27.9, NewView is open source software under the GNU Public License (GPL), which means 
(see GPL.txt for details): 

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

Should you wish to encourage me to continue developing NewView, then you could use PayPal (http://www.paypal.com) or similar to send me a donation!

Multi-lingual Support
---------------------

NewView can now load different languages for it's user interface. It looks for a file called LANG.lng in it's own directory, where LANG is the setting of the LANG environment variable. For example, on US systems LANG=EN_US so it will look for EN_US.lng. If it cannot find that, it tries looking for the major part of the LANG variable, for example EN.lng. If it cannot find that, the default is US English (which is built into NewView).

Creating a new translation

You can easily create a translation file for NewView. Use Tools - Debug - Save/Update Language to create a new .lng file (you can call it what you like, but follow the rules above if you want NewView to load it automatically). This .lng file will contain all the text items that NewView uses. Translate the text and save it.

You don't need to tell me about your translations, but if you do, I'll include them with NewView when I release it. Also, it might be a good idea to check with me before starting a translation, in case someone has already done one but it hasn't been released yet - to save you the time :)

Note:
~ (tilde) in the text indicates that the next letter that should be underlined and 
used as a hot key. (You may also see & (ampersand) which does the same thing, but
does not work quite as well - please tell me if you see one.)

\t in the text indicates a tab character, and is used to separate a menu item from it's "accelerator" or key combination.

Updating an existing translation

If you already have a file, that needs some updates - perhaps for a new version of NewView - then just save to the file again. NewView will add in the new items needing translation, and remove items that are no longer required. 

Unneeded items are left at the end of the file for you to check; remove them after you've done so, to save space. Note that sometimes items might be renamed, in this case you need to copy the old value to the new name. (Sorry!)

New items needing translation will be marked with *** 

Translation Credits
-------------------

German - Christian Hennecke, Chris Hellwig
Russian - Yuri Prokushev
Spanish - David Mediavilla Ezquibela, Alfredo Fernndez Daz
French - Guillaume Gay 
  French translation may not be criticised on pain of death 

Acknowledgements
----------------

Everyone who donated actual money to help me buy that Porsche:

Moby Disk, Frederick Giroux, Jerauld Prather, Keith Oswald, Daniel Caroll, Sten Solberg, Jason Stefanovich, Alexander Newman, Andy Willis, Richard Tennis, Gregg Young, John F Moore, Bill Richardson, Jan Magne Landsvik, Daniela Engert, Kris Steenhaut, Pieter Kruger Jr, Timur Tabi, Peter Gegenheimer, Gordon Snider, Doug Fitzpatrick, Simon Wright, Aidan Grey, Julian Thomas, Philip Mann, Robert S Stan, Lionel Abrahams, Howard Harris, Teijo Kaakinen, Lon Hoker, Mark Henigan.

Donations so far total US$576 :D
 
All those people who gave encouragement, testing, and suggestions. All your suggestions suck, but thanks for offering them ;-) - just kidding

Christian Hennecke for pointing out the problems with multi-lingual, so it is now complete.

Aaron Reed at IBM for his help getting the Help Manager working, and especially with 16/32 bit coding. 

Michal Necasek, Kendall Bennett and the rest of the Open Watcom team for Watcom C/C++. Michal was extremely helpful in answering my dumb questions. Great video drivers too. http://www.scitechsoft.com

Mark Vollmer for pointing out WM_QUERYHELPINFO/WM_SETHELPINFO and thereby getting SmartSuite working...

Hakan Gadler for persisting with testing.

Nicky Morrow for lots of constructive suggestions about user interface.

Keith Oswald, for the installation suggestions and contributions. (so anyway... looks like I did an installer, but it's not WarpIn :).

Everyone in the comp.os.os2.programmer.misc newsgroup for listening to my long winded questions!

The eCS Developers Group for lots of interesting discussions.

Serenity Systems International (SSI): Kim Cheung and Bob St John for giving it a crack where IBM gave up years ago, and being very tolerant of some wacky people. http://www.ecomstation.com

John Bijnens, A favourable review in OS/2 E-zine which encouraged me to continue! http://www.os2ezine.com

Cristiano Guadagnino, Author of WarpHelp - hope I haven't annoyed you by doing my own thing, I wanted to see something happen. Cheers for the inspiration to get started!

Peter Fitzsimmons, for the original INF bitmap decompression code (LZW) used in Inf2HTML. Thanks Peter! I managed to port it without fully understanding it... :-)

Ulrich Moeller, Author of Inf2HTML
  http://www.xworkplace.org/projects.html
And OF COURSE! XWorkplace/eWorkPlace etc etc. What a legend!

Carl Hauser. Original author of INF01.DOC, the description of the INF Binary format. Wonder what you're up to these days Carl ;) We finally got there.

Marcus Groeber, Added additional information to INF2A.TXT

Peter Childs, Further updates to INF03.TXT

Speedsoft (http://www.speedsoft-online.de)
Makers of Sibyl, the awesome Delphi clone for OS/2, Linux and Win32 - Good luck guys. Where are you? 

Mat Kramer http://www.vyperhelp.com/
Author of VyperHelp - thanks for some suggestions on rich text controls, plus a handy help authoring tool.

Michael Kaply, Platform Owner - Mozilla for OS/2. Thanks heaps!

Erik Hueslmann, Author of Sibyl HelperThread components and maintainer of Sibyl mail list archive http://www.sibyl-archive.org/

IBM... Sometimes they rocked.

Joachim Benjamins (Mensys Netherlands) - for the Bugtracker. Good work dude.

"Elwood" Composer of "Unknown Phuture" (unk.xm) - That song rocks...

"Mr Stewe" Composer of "Static Universe" (pb_static.xm) - you should be in business man

30 Seconds To Mars - What an incredible debut album, I love it. Played incessantly @ v2.
"You know enough to know the way..."

For Developers
--------------

I've uploaded the source to Hobbes, somewhat haphazardly. 

It is written using two tools:
- The GUI application is done with Speedsoft Sibyl (an Object-Pascal system like Delphi)
  http://www.speedsoft-online.de
- The new HelpMgr.dll is written using Open Watcom C++
  http://openwatcom.org

--------------------------------------------------

Manual Installation
-------------------

For standalone use, you can simply unzip NewView.exe and NewView.inf into a directory. This directory can be in the path if you want. 

To fully replace OS/2 help, we need to replace c:\os2\view.exe and c:\os2\dll\helpmgr.dll. 

Replacing View.exe can be done manually without much difficulty:

1. Go to C:\os2
2. Copy View.exe to OldView.exe 
   This makes a backup. Do NOT rename View.exe or OS/2 will
   detect the change and make help files use OldView.exe!
3. Copy NewView.exe to View.exe.

Now all your existing help file icons will load NewView.

Modifying file associations for .inf or .hlp files may not do the full job, because many help file icons are actually program objects for "View.exe".

Replacing HelpMgr.dll is more tricky because it is always in use by the WorkPlace Shell (WPS) desktop. You must either:
- reboot to a command prompt 
or
- use a tool such as unlock or replmod to unlock the DLL
I suggest that, as with View.exe, you back up the old DLL by copying it to a different filename.

Uninstallation
--------------

Well, there isn't one yet. (There is an ongoing debate over using WarpIn. At this stage I remain unconvinced.)

You need to copy the backup files (.bak if you used the Install.exe) to the original filenames, again you will need to use unlock/replmod to change HelpMgr.dll or boot to a command prompt.

Using Original View
-------------------

If you do the full install, replacing helpmgr.dll, then the old View will no longer work because it is linked to the original helpmgr.dll. You must use a tool such as DLLRNAME to rename the reference in old View to the new name of the original DLL. Install.EXE does not do this since it seems a little risky. If enough people are interested, I could look at including this.

Specifically, what must be done:

copy view.exe oldview.exe
copy helpmgr.dll oldhmgr.dll
copy viewdoc.exe viewdoc.bak 
  backup only - we can't actually change the name easily, 
  since it is coded into view.exe (now oldview.exe) somewhere
dllrname oldview.exe helpmgr=oldhmgr
dllrname oldhmgr.dll helpmgr=oldhmgr 
  dllrname doesn't like to do this; I used a binary editor.
  This might be because the file has already been renamed
dllrname viewdoc.exe helpmgr=oldhmgr

Now you can use Oldview <filenames> and admire the original suckitude. 

Note that there is no easy way to get access to the old helpmgr for online help. That will require a lot of tedious work by me in the new helpmgr to dynamically decide to pass functions on (joy).
