
                           TAB/VBX 1.1
-------------------------------------------------------------------


This document contains information on TAB/VBX 1.1 that is not contained
within the manual.  Please read this document to become aware of the
new features.


-------------------------------------------------------------------
                           New Features
-------------------------------------------------------------------

TabShape changes

         The TabShape property value 0 has been changed from
         Cornered to Chamfered, with the constant,
         TABVBX_SHAPE_CHAMFERED, also added.

         There is a new value 3 (TABVBX_SHAPE_SQUARE) for square tabs.

TabSeparator

         If the TabSeparator property is set to a negative value, the
         tabs will overlap.  This is most used with the Slanted TabShape.

All color properties

         The constant TABVBX_COLOR_NONE may be used to turn off any
         previously set color.  For example if the BackColor for tab 2
         is set to Blue, currently there is no way to tell it to ignore
         it and use the default color again.  By assigning TABVBX_COLOR_NONE
         to the BackColor property, it will once again use the default
         background color when painting tab 2.  This is true for all
         color properties.

Drag And Drop at design time

         Controls may be moved from one tab to another at design time.
         Simply click on the desired control with the left mouse button
         and drag it over top of the tab you wish to place the control
         upon.  While still holding down the left mouse button, click
         the right mouse button to activate the new tab.  Now release
         the right mouse button and place the control on the tab's page
         at the desired location.

Tab manipulation at design time

         Tabs may be inserted, deleted, cleared, moved, or swapped at
         design time.  Double click the right mouse button over the
         desired tab.  A popup menu will be displayed with the following
         options: Insert Tab, Delete Tab, Clear Tab, Move Tab, and Swap Tabs.

         Insert Tab
            Choosing this option will simply insert a new tab before the
            tab that was clicked on.  The TabCount will be increased by 1.

         Delete Tab
            Choosing this option will delete the tab that was clicked on,
            causing all tabs to the right if it to be shifted to the left.
            The TabCount will be decreased by 1.

            A message box will be displayed asking if you really want to
            delete it.  It is very important that all controls placed upon
            the tab that is to be deleted should be removed from the tab
            before the tab is deleted.  Otherwise, there will be no way to
            retrieve those controls.

         Clear Tab
            Choosing this option will clear all attributes of the tab that
            was clicked on while not deleting the controls on that tab.

         Move Tab
            Choose this option from the menu.  The cursor will then
            change indicating that the tab control is waiting for the new
            desired tab location to be clicked on.  The cursor will change
            indicating that a valid tab location is being dragged over.  Once
            the desired tab is chosen, simply click on that tab with the
            right mouse button and the original tab will be moved to the
            new location.  All over tabs will be shifted appropriately.

         Swap Tabs
            Choose this option from the menu.  The cursor will then
            change indicating that the tab control is waiting for the new
            desired tab location to be clicked on.  The cursor will change
            indicating that a valid tab location is being dragged over.  Once
            the desired tab is chosen, simply click on that tab with the
            right mouse button and the original tab will be swapped with
            the new tab.



-------------------------------------------------------------------
                   Changes from V1.0 to V1.1
-------------------------------------------------------------------

VBX, license and constants file names

         Note the new name of the VBX (FPTAB11.VBX)
         Note the new name of the license file (TABVBX11.LIC)
         Note the new name of the constants file (TABVBX11.BAS)

         TAB/VBX 1.0 Visual Basic Users

            If you are upgrading from Version 1.0 to 1.1, please note
            that the VBX name and the BAS name must be changed to the
            new names in your project file.  The easiest way to do so
            is to the load the make file (project1.mak) into your
            favorite editor.  Change FPTAB10.VBX to FPTAB11.VBX and
            change TABVBX10.BAS to TABVBX11.BAS (Note:  You may or may
            not have the BAS file in your project).  Once these two
            changes have been made, the project can be loaded into
            Visual Basic with no other changes.

         TAB/VBX 1.0 C++ Users

            If you are upgrading from Version 1.0 to 1.1, please note
            that the VBX name and the header name must be changed to the
            new names within your application.  The easiest way to do so
            is to the load the .rc or .dlg file(s) into your favorite
            editor.  Change FPTAB10.VBX to FPTAB11.VBX.  If you are
            creating controls on the fly, you may need to search through
            your source files (.cpp) and change all instances of
            FPTAB10.VBX to FPTAB11.VBX.

            You will also need to change all instances of TABVBX10.H to
            TABVBX11.H within you source files if you are including the
            header file.

            Once these changes have been made, the application can be
            compiled with no other changes.



-------------------------------------------------------------------
                         New Properties
-------------------------------------------------------------------

ChamferedHeight

         Description

         When the TabShape property is set to Chamfered, this property
         allows the height of the chamfered look to be changed.

         Usage

         [form.]Tab.ChamferedHeight[ = value%]

         Remarks

         This property is used along with the ChamferedWidth property to
         set the overall size.  The units used are pixels.  The default is
         4 pixels.

         Data Type

         Integer

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

ChamferedWidth

         Description

         When the TabShape property is set to Chamfered, this property
         allows the width of the chamfered look to be changed.

         Usage

         [form.]Tab.ChamferedWidth[ = value%]

         Remarks

         This property is used along with the ChamferedHeight property to
         set the overall size.  The units used are pixels.  The default is
         4 pixels.

         Data Type

         Integer

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

HighestPrecedence

         Description

         This property allows the application to determine the precedence
         order used when drawing tabs.  By default, fonts and colors set
         for the active tab as assigned by setting ApplyTo to 1 have a
         higher precedence than individual tab settings.  However, setting
         the HighestPrecedence property to 1 will give the individual tab
         settings the higher precedence.

         Usage

         [form.]Tab.HighestPrecedence[ = value%]

         Remarks

         The default value is 0.

         Setting  Constance                    Description
         ----------------------------------------------------------
         0        TABVBX_PRECEDENCE_ACTIVE     The active tab settings have
                                               the highest precedence.
         1        TABVBX_PRECEDENCE_INDIVIDUAL The individual tab settings
                                               have the highest precedence.

         Data Type

         Integer (Enumeration)

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

MouseOverTab

         Description

         This property is used by the application to determine the tab
         that is currently under the mouse pointer.  This property is
         useful for allowing the user to drag and drop data between
         tabs at run-time.

         Usage

         [form.]Tab.MouseOverTab

         Remarks

         The property is read only and is only available at run time.

         Data Type

         Integer

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

OffsetFromClientTop

         Description

         This property is used to determine if the controls placed on
         the tab should be offset from the top left corner of the tab
         control or the top left corner of the client area within the
         control.  The client area is the area of the tab that controls
         may be placed upon excluding the tab caption area.

         When this property is true, each time a property is changed that
         affects the size of the client area, including adding another
         row of tab captions or changing the tab caption height, the
         controls displayed within the tab will move accordingly.  This
         way the controls always maintain the same distance from the top
         and left corner of the client area.

         When this property is False, the controls will always stay in
         the same position no matter what happens to the position of
         the client area of the tab.

         Usage

         [form.]Tab.OffsetFromClientTop[ = value%]

         Remarks

         The default is true.

         Note:  If you are converting a project that used TABVBX 1.0, all
                tabs that were created using that version will have
                OffsetFromClientTop set to False.  All new tabs will be
                set to True.  If you wish all tabs to be set to True,
                simply load your old tabs at design time and change this
                property to True.

         Data Type

         Integer (Boolean)

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

PageColor

         Description

         This property allows the page color to be changed separately
         from the tab color for an individual tab, the active tab or
         for all tabs.  The ApplyTo and Tab properties must be set
         before using the PageColor property.

         Usage

         [form.]Tab.PageColor[ = value&]

         Remarks

         The default value is TABVBX_COLOR_NONE.  TABVBX_COLOR_NONE is
         used to turn off the page color and use the tab color instead.

         Data Type

         Color

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

RotateText90

         Description

         This property allows the application to rotate the text and picture
         within the tab 90 degrees.

         Usage

         [form.]Tab.RotateText90[ = value%]

         Remarks

         This property can be used with the FlipText property, which
         rotates the text 180 degrees, to rotate the text 270 degrees.
         The default is False.

         Data Type

         Integer (Boolean)

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

TabRowOffset

         Description

         When more than one row of tabs is displayed, the back rows
         are offset a specified width from the left side of the
         preview tab.  This property allows that width to be changed.

         Usage

         [form.]Tab.TabRowOffset[ = value!]

         Remarks

         The units used are based on the ScaleMode of the form.
         The default is 150 twips.

         Data Type

         Single



-------------------------------------------------------------------
                           New Events
-------------------------------------------------------------------

UserError

         Description

         This event is fired when the user has committed an error.

         Syntax

         Sub Tab_UserError(UserError As Integer, UserErrorTab As Integer)

         Remarks

         The following parameters are provided:

         Parameter      Description
         ---------------------------------------------------
         UserError      1 : User clicked on a locked tab.
         UserErrorTab   Tab that was clicked on.



-------------------------------------------------------------------
                         New Functions
-------------------------------------------------------------------

TabSetChildPos

         Description

         This function is used by the application to change the position
         of a child control within the tab.  This function is only used
         within Visual Basic.

         If an application chooses to move a control, this function
         should be used instead of the Top or Left properties of the
         control.  This way the tab can keep track of its children.

         Usage

         Declare Sub TabSetChildPos Lib "fptab11.vbx" (hCtlTab As Control, hCtlChild As Control, ByVal xPos As Long, ByVal yPos As Long)

         Parameters

         Parameter      Description
         ---------------------------------------------------
         hCtlTab        The tab control.
         hCtlChild      The child control you wish to move.
         xPos           The new horizontal position of the child control.
                        This value is in twips.
         yPos           The new vertical position of the child control.
                        This value is in twips.

         Return Type

         None.

         Example

         ' This example moves the Label1 control.
         TabSetChildPos Tab1, Label1 500, 700

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

TabGetChildPos

         Description

         This function is used by the application to retrieve the position
         of a child control within the tab.  This function is only used
         within Visual Basic.

         If an application chooses to retrieve the coordinates of a
         control, this function should be used instead of the Top or
         Left properties of the control.

         Usage

         Declare Sub TabGetChildPos Lib "fptab11.vbx" (hCtlTab As Control, hCtlChild As Control, xPos As Long, yPos As Long)

         Parameters

         Parameter      Description
         ---------------------------------------------------
         hCtlTab        The tab control.
         hCtlChild      The child control you wish to move.
         xPos           The horizontal position of the child control.
                        This value is in twips.
         yPos           The vertical position of the child control.
                        This value is in twips.

         Return Type

         None.

         Example

         ' This example retrieves the position of the Label1 control.
         Dim xPos As Long
         Dim yPos As Long

         TabGetChildPos Tab1, Label1 xPos, yPos
