TOOLBARS VERSION 1.60 (UNLICENSED EVALUATION VERSION)

           Two controls for Visual Basic that allow easy creation
           of button-bars and status-bars in any Visual Basic for
           Windows (version 3.0 or higher) application.

0. IMPORTANT NOTICE

           This is the last version of the TOOLBARS.VBX that will
           be sent out into the world for free use in FreeWare or
           Public Domain applications. All new features that will
           be built in after this release, will only be included
           in commercial or ShareWare versions (see 11 and 12).
           Of course, if there are any bugs in this release, an
           update will be released.


1. GENERAL INFORMATION


           The TOOLBARS.VBX contains two custom controls for
           Visual Basic: StatusBar and ButtonBar. Both controls
           have an integrated helpfile that can be called from the
           VB development environment when you press F1 in the
           properties-window or when you select an event in the
           code window. There are also some ready to use examples
           in the helpfile. Therefore this documentation-file is
           very brief.
           If you have a problem with (one of these) controls, or
           think of an enhancement that I don't already have
           planned (see the 'future enhancements' section below),
           please e-mail to the special account that has been set
           up for this purpose: vbx_dev@shear.iaf.nl.


2. SHORT DESCRIPTION OF VERSION 1.0 FEATURES

           The StatusBar control allows you to create a statusbar
           at the top or bottom of the client area of your
           application to display status-messages. It offers 20
           fully configurable text-fields and a few other extras
           as well. Here's a quick summation:
           -    automatically adjusted border-line for different
                alignments (top, bottom or none)
           -    automatically size one field (ExpandField
                property) to fill the entire status-area (can be
                turned off). If the window is resized, one of the
                statusbar fields is resized as well.
           -    can be used as a progress indicator (FloodField,
                FloodInvertText, FloodPercent, FloodShowPct,
                FloodColor properties). Absolutely no flickering
                on updates.
           -    adjustable left- and right-margins (LeftMargin and
                RightMargin property
           -    etc...

           Text-field specific properties:
           -    alignment (left, right or centered) (Alignment
                property array)
           -    font-color (ForeColor property array)
           -    message (the text to display in the text-field)
                (Message property array)
           -    field type (FieldType property array)
                Field-types are:
                - normal (display text in Message property)
                - clock (type-of clock can be set with the
                  with ClockFormat property)
                - num-lock indicator (user-definable text for
                  on- and off state)
                - scroll-lock indicator    (    "   "     )
                - caps-lock indicator      (    "   "     )
           -    field width (FieldWidth property array)
           -    define spacing between fields (SpaceAfter property
                array)
           -    control type (for TypeOf statements): StatusBar
           -    etc...

           The ButtonBar control allows easy creation of a
           buttonbar at the top or bottom of the client area of
           your application. You only have to specify a picture
           for the button to create it. The ButtonBar
           automagically creates the needed bitmaps for the down
           and disabled states for the button with the picture you
           specify. It's also possible to specify a picture for
           the disabled state of the button if you don't like the
           ButtonBar's disabling method. Summation of features:
           -    automatically adjusted border-line for different
                alignments (top, bottom or none)
           -    create buttons by simply specifying one or two
                bitmaps for the up-state of the button (Picture
                and PictureDisabled property arrays).
           -    2 types of buttons available: normal and 2-state
                (ButtonType property array)
           -    group buttons into GroupPushButtons (ButtonGroup
                and GroupAllowAllup property arrays)
           -    enable or disable individual buttons
                (ButtonEnabled property array)
           -    connect the ButtonBar to the StatusBar to display
                a message in a textfield when a user selects a
                button (hWndStatusBar and StatusField properties,
                and the ButtonMessage property array).
           -    define spacing between buttons (SpaceAfter
                property array)
           -    control type (for TypeOf statements): ButtonBar
           -    etc...


3. WHAT WAS NEW IN VERSION 1.1 ?

           Two bugs were fixed:
           -    when setting the ClockFormat property for the
                StatusBar control to an AM/PM  clock, the AM/PM
                time-indication wasn't properly updated at 12 noon
                and 12 o'clock midnight. This bug has been fixed.
           -    the ButtonBar control released the mouse capture after
                the Click event. This is no problem if you don't show
                modal forms on a click on a button, but when you do
                display a modal form on a click, this window can't
                receive the input-focus. This bug has been fixed by
                releasing the mouse capture before firing the click
                event.

           Three new properties and a new event were added to the
           StatusBar:
           -    toggle event: this event is fired whenever the num-lock
                caps-lock or scroll-lock key is pressed. It helps you
                to keep track of the status of these keys, for example
                when you're writing a text-editor.
           -    AutoToggle allows users to double-click on a num-lock,
                caps-lock or scroll-lock field. The statusbar control
                automatically sets or resets the state of the toggle-key.
           -    Numlock, Capslock and ScrollLock properties allow you to
                get or set the status of the num-lock, caps-lock or
                scroll-lock keys.

           The ButtonBar also has a new feature:
           -    The OutlineChildren automatically gives a three-D
                outline to controls placed on the buttonbar, to make
                them look raised or inset.

           Also, some very stupid mistakes were corrected:
           -    The Enabled property was added to the StatusBar
           -    The Visible and Enabled properties were added to
                the ButtonBar


4. WHAT WAS NEW IN VERSION 1.2 ?

           Another bug was fixed:
           -    after clicking on a button of the ButtonBar, the
                button remained down if the programmer had a DoEvents()
                statement in the code under the click event. This was
                caused by an extra WM_MOUSEMOVE that was generated as
                a result of the DoEvents().

           There were no changes to the StatusBar, but the ButtonBar had
           a lot of new things:
           -    Real tooltips. To avoid problems with naming copyrights,
                the ButtonBar calls these Button/ControlHints. You can
                specify a Hint for each button you define and each control
                you place on the ButtonBar. A bunch of properties were added
                to control the position and look of the Hint-popup window
                (Font-properties, HintBackColor, HintDelay, HintPosition,
                HintOffsetX, HintOffsetY, ButtonHint property array for
                specifying hints for buttons, ControlHwnd and ControlHint
                properties for specifying hints for controls.
           -    The ShowButtonMessage properties allows you to control when
                to display the ButtonMessages in the StatusBar (when the
                mouse is over a button, when you select the button or
                when you click the button with the right mouse-button).
           -    The minimum height of the ButtonBar depends on the size of
                the pictures you use for the buttons, but the ButtonBar
                added a small border around that. This border has been
                narrowed down to one pixel.
           -    The number of available buttons and controls placed on the
                ButtonBar has been increased to 30.
           -    All buttons are automatically disabled when the ButtonBar
                is disabled and are enabled again if the ButtonBar is
                enabled. This was the case already, but now the user gets
                some visual feedback as well (the buttons look disabled).
           -    There are now properties to support all states of a button.
                The PictureDown and PictureDisabledDown property arrays
                allow you to completely define all states a button can have.

           Also, the helpfile was enhanced and now included an example
           of how to use the ButtonBar together with the PictureClip control
           that comes with Visual Basic.

5. WHAT WAS NEW IN VERSION 1.3 ?

           Two bugs were fixed:
           -    The ButtonBar erroneously displayed the ButtonHints                button remained down if the programmer had a DoEvents()
                even if another window had captured the mouse (for example
                if you pulled down a menu over the ButtonBar). This has
                been fixed.
           -    The ButtonBar only displayed control-hints if the Outline-
                Children property was set to anything but zero. This also
                has been fixed.

           One new property was added to the StatusBar:
           -    The FieldOutline property arrays lets you define the
                way fields look on the StatusBar (raised, inset or
                no outline at all).

           The ButtonBar has a number of new features:
           -    The ShowButtonMessage was renamed to ShowStatusMessage.
                You can now also synchronize the StatusBar messages and
                the Button/ControlHints by setting the ShowStatusMessage
                property to 4 (=Together with Hint).
           -    MAJOR IMPROVEMENT: It is now possible to store a bitmap
                containing all the tiny bitmaps needed for defining the
                buttons on the ButtonBar in the ButtonBar control.
                You can do this with the ButtonPictures property. The
                ButtonRows and ButtonColumns properties allow you to define
                the number of rows and columns of button-pictures in the
                bitmap. After that you can use the ButtonPicture property
                array to retreive the tiny bitmaps from the big bitmap
                and set the Picture(), PictureDown() etc property arrays
                from them.
                This means that it is no longer necessary to load all the
                tiny bitmaps from disk, since the bitmap in the Button-
                Pictures property is saved within your application.
                A further advantage is that you can easily define all
                buttons on the ButtonBar in a single for-loop.
                For details and an example, see the help-file.
           -    For convenience, this release of TOOLBARS.VBX also contains
                a Visual Basic program (only source code, you'll have to
                compile it yourself) that allows you to create a large
                bitmap from several tiny ones. It includes loading and
                saving of the bitmap-positions you've defined, an auto-
                grid (so the tiny bitmaps will fit nicely together) and
                fully automatic generation of the large bitmap. For
                instructions how to use the sample application, see the
                readme file in the self-extracting zip-file.

           Also, the helpfile was modified. The PicClip example was removed
           and replaced by a ButtonPictures example.


6. WHAT WAS NEW IN VERSION 1.4 ?

           Three bugs were fixed:
           -    The ButtonBar behaved strange if you had more than one
                in your project. This has been fixed.
           -    If your code had an Unload statement in the code following
                a click on a field of the StatusBar or a button on the
                ButtonBar, VB crashed. This has also been fixed.
           -    A lot of properties-values (including the FieldWidth and
                SpaceAfter properties) couldn't exceed the value 127.
                This was because of some crummy optimization I had built
                in. This has been removed. The maximum value is now 32767.

           Also, some errors in the helpfile were corrected.

           One property was removed and four new properties were added
           to the StatusBar. All the font related properties were changed
           to property arrays.
           -    The biggest improvement is the FieldProperties property.
                This property has no value, but instead, pops up a dialog
                box were you can define all field-related properties during
                design time. So you don't need to do any coding anymore to
                completely define your StatusBar.
           -    The AdjustFieldHeight property makes all fields on the
                StatusBar equal in height or adjusts the height of a field
                according to the fontsize of that field.
           -    The BackColor property array allows you to define a different
                background color for each text-field.
           -    The FIELD_CLOCK FieldType has changed to a FIELD_DATETIME.
                So now you can not only show the time but also the date.
           -    To support the new date/time field properly, the ClockFormat
                property was removed and the DateTimeFormat property array
                was added. This allows you to define a different format for
                each date/time field you may have on the StatusBar. The
                DateTime format property handles all strings for formatting
                dates and times that are supported in the Visual Basic
                Format$ function.
           -    All text-fields now have font related properties of their
                own. The FontName, FontSize, FontBold etc. properties have
                been chang to control-arrays.

           The ButtonBar has only one new property:
           -    The ButtonProperties property. Like the FieldProperties
                property in the StatusBar, this property has no value,
                but pops up a dialog box were you can define all button-
                related properties during design time. So you don't need
                any coding anymore to define your ButtonBar.


7. WHAT WAS NEW IN VERSION 1.47?

           Three bugs in the ButtonBar were fixed:
           -    For some reason, the ButtonEnabled property didn't function
                properly anymore. The button looked disabled, but could be
                pressed like any other button. This was fixed.
           -    On some systems, using the ButtonProperties dialog, caused
                VB to crash. This was fixed as well (thank you beta-testers).
           -    The ButtonMessage for disabled buttons, was displayed in
                the StatusBar, but never removed. This was fixed also.

           New features:
           -    Enhanced ButtonProperties and FieldProperties dialogs
                The ButtonProperties and FieldProperties, used for setting
                almost all of the property arrays of the Button- and
                StatusBar, have been enhanced. To the right of the list
                containing all the buttons/fields are four new buttons.
                These buttons allow you to insert, delete and reposition
                the buttons/fields on the Button/StatusBar.
                The ButtonProperties dialog has also been extended to enable
                you to make a connection between the ButtonBar and an exis-
                ting StatusBar at design time. Also, it is now possible to
                select a picturefile from disk in the ButtonProperties
                dialog.

          New Properties for the ButtonBar control:
          -     ButtonVisible property array
                This property allows you to make buttons visible/invisible
                at run-time.
          -     IgnoreInvisibleButtons property
                Use this property to specify if the remaining buttons should
                shift to the left or right whenever a button on the ButtonBar
                is made (in)visible.
          -     ShowDisabledMessages/ShowDisabledHints properties
                These properties allow you to specify whether or not the
                ButtonBar should display Button/ControlMessages or Button/
                ControlHints for disabled buttons or controls.

8. WHAT WAS NEW IN VERSION 1.48/1.49

          A few bugs in ButtonBar were fixed:
          -     The IgnoreInvisibleButtons property didn't function properly.
                After setting the property to True and after that closing
                and reopening the form displayed a gray box in the upper
                left corner of the ButtonBar. This has been fixed
          -     The slider in the ButtonProperties dialog didn't work
                correctly for large buttons. This has been fixed as well.
         -      The 1.47 version behaved erroneously if a StatusBar was
                coupled to the ButtonBar with the ButtonProperties dialog.
                It could even cause VB to crash. This has been fixed.

          The StatusBar had one new property and a new event:
          -     MenuTagsField property
                This property tells the StatusBar to monitor menu-browsing
                on the form the StatusBar is placed upon. If a user selects
                a menu-item the StatusBar obtains the text from the Tag
                property of that menu-item and displays it in the field
                specified by the MenuTagsField property.
          -     SysMenuBrowse Event
                This event occurs whenever the MenuTagsField property is
                set to something other than -1 and a user is browsing
                through the system-menu. Since the system-menu of each form
                doesn't have a Tag property, the StatusBar fires an event,
                specifying the currently selected item from the system
                menu. By modifying the Message parameter of the event, you
                can specify a message for each system-menu item.

9.  BUG FIXES IN VERSION 1.5
           Some minor bugs in the StatusBar and the ButtonBar were fixed.

10. BUG FIXES IN VERSION 1.6
           -    The StatusBar control had a serious problem with the displaying
                of menu-messages if there was another control on the same form that
                also subclasses the parent-form (like the one an only MessageBlaster
                control for example). This has been fixed by capturing the menu-
                messages in a complete different manner.
           -    The saving and loading of bitmaps for the ButtonBar control was 
                completely rewritten to work around GPF's that occurred with some
                buggy video-drivers.
             
11. KNOWN PROBLEMS/BUGS

           On some more than 256 color machines, the buttons on the ButtonBar
           change color. This has to do with problems in the video-driver and
           is expected to be solved in the next release.

           If you find any other bugs, please inform me at the e-mail address 
           mentioned at the end of this file.


12. FUTURE ENHANCEMENTS

           Some suggestions and remarks have made clear that there
           is at least one possible future enhancement for
           the StatusBar control:
           -    pictures for a field instead of only a text (Something
                like a FieldPicture property array).

           The ButtonBar control als has some extra features I'm
           considering to implement:
           -    moveable/floatable buttonbar (like the ones in Word 6.0)
           -    alignment at the top, bottom, left and right of
                the form.

           If you have more suggestions or remarks, let me know.


13. ARCHIVE CONTENTS AND INSTALLATION NOTES

           This archive's original name is TOOLB146.ZIP and contains
           the following files:

           TOOLBARS.VBX   The toolbars vbx-library.
           TOOLBARS.HLP   Design time helpfile.
           ORDER.FRM      Order form
           README.1ST     This file
           MKBITMAP.EXE   A self-extracting archive containing the
                          BUTTONS.BMP file and the bitmap creator Visual
                          Basic program

           In order to use the toolbars vbx you must copy the
           file TOOLBARS.VBX to your Windows system directory. To be able
           to use the design time help, you have to copy the TOOLBARS.HLP
           file to the Visual Basic directory. If you want to use the
           bitmap creation sample application, just executable the
           MKBUTTON executable.


14. DISCLAIMER

           The TOOLBARS.VBX control library is distributed "as is"
           and without warranties as to performance or
           merchantability or any other warranties whether
           expressed or implied. No warranty of fitness for a
           particular purpose is either expressed or implied.


15. LICENSE AGREEMENT AND COPYRIGHT

           In this notice, "The controls" refers to the
           TOOLBARS.VBX custom controls library for Visual Basic
           and the "the author" refers to SheAr software.

           The control is copyright (C) 1995 by the author. You may
           distribute this control only with FreeWare of Public
           Domain applications without any charge. If you like these
           controls and would like to use it in a commercial or shareware
           application, you have to pay for it.


16. ORDERING INFORMATION

           The licensing fee for a commercial of shareware version
           is 25 Dutch guilders (approx. 17 US Dollars) for a shareware
           version and 50 Dutch guilders (approx. 35 US Dollars) for a
           commercial version. To order, send the included order form
           (remember to sign it) to the address mentioned in the form.

           Benefits of buying the TOOLBARS.VBX:
           - You'll receive two versions of the VBX, one for you to use
             in the Visual Basic design time environment. Another one,
             significantly smaller but not usable in the VB design time
             environment, to distribute with your applications.
           - A printed manual.
           - One year unlimited free support. Either by mail, e-mail or
             telephone.
           - One year of free updates. Whenever a new version gets out
             or a bug has been reported, you'll receive detailed work-
             around information or a new version by mail or e-mail.
           - Finaly, the 'nag-screen' (the about box that comes up
             in the VB development environment) won't be present in the
             licensed version (of course).


17. FURTHER NOTES

           This is the eighth release of TOOLBARS.VBX. Although
           all major bugs have been fixed, It's still not guaranteed
           to be error-free, but I think it works pretty well.
           If you wish to use it in your applications (subject to
           the above restriction), you may do so.

           Arjen Broeze
	   SheAr software
           vbx_dev@shear.iaf.nl
           08/15/95
