TABLE OF CONTENTS

SpeedBar.mcc/SpeedBar.mcc
SpeedBar.mcc/MUIA_SpeedBar_BarSpacer
SpeedBar.mcc/MUIA_SpeedBar_Borderless
SpeedBar.mcc/MUIA_SpeedBar_Buttons
SpeedBar.mcc/MUIA_SpeedBar_EnableUnderscore
SpeedBar.mcc/MUIA_SpeedBar_Images
SpeedBar.mcc/MUIA_SpeedBar_Pics
SpeedBar.mcc/MUIA_SpeedBar_PicsDrawer
SpeedBar.mcc/MUIA_SpeedBar_RaisingFrame
SpeedBar.mcc/MUIA_SpeedBar_SameHeight
SpeedBar.mcc/MUIA_SpeedBar_SameWidth
SpeedBar.mcc/MUIA_SpeedBar_SmallImages
SpeedBar.mcc/MUIA_SpeedBar_SpacerIndex
SpeedBar.mcc/MUIA_SpeedBar_Spread
SpeedBar.mcc/MUIA_SpeedBar_Strip
SpeedBar.mcc/MUIA_SpeedBar_StripBrush
SpeedBar.mcc/MUIA_SpeedBar_StripButton
SpeedBar.mcc/MUIA_SpeedBar_StripUnderscore
SpeedBar.mcc/MUIA_SpeedBar_Sunny
SpeedBar.mcc/MUIA_SpeedBar_TextOnly
SpeedBar.mcc/MUIA_SpeedBar_ViewMode
SpeedBar.mcc/MUIA_SpeedBar_UseMouseMove
SpeedBar.mcc/MUIM_SpeedBar_AddButton
SpeedBar.mcc/MUIM_SpeedBar_AddButtonObject
SpeedBar.mcc/MUIM_SpeedBar_AddSpacer
SpeedBar.mcc/MUIM_SpeedBar_Clear
SpeedBar.mcc/MUIM_SpeedBar_DoOnButton
SpeedBar.mcc/MUIM_SpeedBar_GetObject
SpeedBar.mcc/SpeedBar.mcc

    SpeedBar#?.#? are copyright 1999-2002 by Simone Tellini
    All Rights Are Reserved.

    SpeedBar.mcc and SpeedButton.mcc allow you to easily create toolbars
    similar to those you can see in Windows programs (although you can
    get a standard look as well ;)

    SpeedBar.mcc is just a MUIC_Group subclass which should contain only
    a set of SpeedButton objects: if you need it to contain other kinds of
    objects, well, try it... it might work.

    These classes can be freely used: all I ask is to receive a registered
    copy of your program if it uses them.

    IMPORTANT NOTE
    if you plan to offer the user the chance to change
    the toolbar style on the fly you should *NEVER* cache
    the pointer to single buttons: this means that something
    like this should never be seen in your code:

    set(button,MUIA_Disabled,TRUE);

    where button is an Object * to a SpeedBar member.

    The reason behind this is that some of the style changes
    may cause the bar to destroy and recreate all the buttons
    thus invalidatin all the previous pointers.

    But don't worry: you have MUIM_SpeedBar_GetObject and
    MUIM_SpeedBar_DoOnButton to solve the problem.

    P.S. Remember that programmers don't write docs... so bear with me
    if some points may result unclear or badly written :)

    SpeedBar#?.#? V12 were produced by Alfonso Ranieri <alforan@tin.it>

SpeedBar.mcc/MUIA_SpeedBar_BarSpacer

    NAME
    MUIA_SpeedBar_BarSpacer -- (V12) BOOL, [ISGN]


    FUNCTION
    If set to TRUE at init time, the bar will use
    a special bar-spacer. Before V12 the attribute
    is ignored.

    Note that till V12.3 the attribute was only
    [I...].

    Default FALSE.

SpeedBar.mcc/MUIA_SpeedBar_Borderless

    NAME
    MUIA_SpeedBar_Borderless -- BOOL, [ISGN]


    FUNCTION
    Remove the MUI frames from the gadgets.

    Note that till V12.1 the attribute was only
    [IS..].

    Default FALSE.


    SEE
    MUIA_SpeedBar_RaisingFrame

SpeedBar.mcc/MUIA_SpeedBar_Buttons

    NAME
    MUIA_SpeedBar_Buttons -- struct MUIS_SpeedBar_Button *, [I...]


    FUNCTION
    Specify an array of buttons that should be placed in the bar.

    The structure you need to fill consists of these fields:

    struct MUIS_SpeedBar_Button
    {
        ULONG           Img;
        STRPTR          Text;
        STRPTR          Help;
        UWORD           Flags;
        struct IClass   *Class;
        Object          *Object;
    };

    Img     - is the index of the MyBrush image used by the button.
    Text    - is the button label.
    Help    - is the button short-help (for bubble help)
    Flags   - can be used to set the type of button you need (see
              SpeedBar_mcc.h)
    Class   - if you want to subclass SpeedButton.mcc to add drag'n'drop
              or something place the pointer to your new class here:
              these way SpeedBar will know how to recreate your buttons
              correctly. Otherwise leave it to NULL.
    Object  - this will be filled after the creation of the bar with
              a pointer to the button. Remember not to cache it and
              have a look at Demo.c to see how to reference other
              SpeedBar members correctly.


    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripBrush
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_EnableUnderscore

    NAME
    MUIA_SpeedBar_EnableUnderscore -- (V12) BOOL, [I...]


    FUNCTION
    You may specify control chars for each button:
    just prefix the control char with a "_" in
    struct MUIS_SpeedBar_Button/Text .

    Before V12 this attribute is ignored.

    To be sure to not display trash, do:

    ...
    MUIA_SpeedBar_StripUnderscore,  TRUE,
    MUIA_SpeedBar_EnableUnderscore, TRUE,
    ...

    So that, If your aplication runs under V12, the
    control chars are used, otherwise the underscores
    are stripped.

    Default FALSE.


    SEE ALSO
    MUIA_SpeedBar_StripUnderscore

SpeedBar.mcc/MUIA_SpeedBar_Images

    NAME
    MUIA_SpeedBar_Images -- struct MyBrush **, [I.G.]


    FUNCTION
    Specify the images which will be used by the buttons of the bar.

    The order how the images are derived is:

    1. MUIA_SpeedBar_Images
    2. MUIA_SpeedBar_StripBrush
    3. MUIA_SpeedBar_Strip
    4. MUIA_SpeedBar_Pics


    SEE ALSO
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripBrush
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_Pics

    NAME
    MUIA_SpeedBar_Pics -- (V12) STRPTR *, [I...]


    FUNCTION
    Specify the images that will be used by the buttons of the bar.

    While with MUIA_SpeedBar_Images you specify an array of
    struct MyBrush ** , with this attribute you specify a NULL
    terminated array made of the names of the pics the bar will use.

    The pics will be load at bar Init time via datatypes.

    If a pic can't be load for any reasone, the bar is forced
    to text-only.


    Again: the order how the images are derived is:

    1. MUIA_SpeedBar_Images
    2. MUIA_SpeedBar_StripBrush
    3. MUIA_SpeedBar_Strip
    4. MUIA_SpeedBar_Pics


    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripBrush
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_PicsDrawer

    NAME
    MUIA_SpeedBar_PicsDrawer -- (V12) STRPTR, [I...]


    FUNCTION
    Specify the drawer where the pic-files supplied in
    MUIA_SpeedBar_Pics resides.


    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripBrush
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_RaisingFrame

    NAME
    MUIA_SpeedBar_RaisingFrame -- BOOL, [IS..]


    FUNCTION
    Setting this and MUIA_SpeedBar_Borderless to TRUE will give you
    a toolbar whose buttons will draw a frame around them when you
    move the pointer over them.

    Note that till V12.1 the attribute was only
    [IS..].

    Default FALSE.


    SEE ALSO
    MUIA_SpeedBar_Borderless

SpeedBar.mcc/MUIA_SpeedBar_SameHeight

    NAME
    MUIA_SpeedBar_SameHeight -- BOOL, [I...]


    FUNCTION
    Set it to FALSE if you don't want all the buttons to have
    the same height. This is only useful if you have a vertical
    toolbar.

    Default TRUE.


    SEE ALSO
    MUIA_SpeedBar_SameWidth

SpeedBar.mcc/MUIA_SpeedBar_SameWidth

    NAME
    MUIA_SpeedBar_SameWidth -- BOOL, [I...]


    FUNCTION
    Set it to FALSE if you don't want all the buttons to have
    the same width. This is only useful if you have an horizontal
    toolbar.

    Default TRUE.


    SEE ALSO
    MUIA_SpeedBar_SameHeight

SpeedBar.mcc/MUIA_SpeedBar_SmallImages

    NAME
    MUIA_SpeedBar_SmallImages -- BOOL [IS..]


    FUNCTION
    If set to TRUE the images will be scaled according with
    the user preferences.

    Note that till V12.1 the attribute was only
    [IS..].

    Default FALSE.

SpeedBar.mcc/MUIA_SpeedBar_SpacerIndex

    NAME
    MUIA_SpeedBar_SpacerIndex -- UWORD, [I.G.]


    FUNCTION
    If you want an empty spacer object, set this to -1, otherwise
    set it to the index of the images inside the _Images array.

    Default 0 !!!.


    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_BarSpacer

SpeedBar.mcc/MUIA_SpeedBar_Spread

    NAME
    MUIA_SpeedBar_Spread -- BOOL [I...]


    FUNCTION
    Setting this to TRUE will cause the bar to layout the objects
    evenly, stretching spacer objects. Otherwise the bar will be
    left aligned.

    Default FALSE.


    SEE ALSO

SpeedBar.mcc/MUIA_SpeedBar_Strip

    NAME
    MUIA_SpeedBar_Strip -- (V12.3) STRPTR [I...]


    FUNCTION
    Here you my define a picture to load via datatypes
    wich contains all the button image. The single images
    must have all the same size nd must be separated by
    a one pixel column. If for any reason the picture can't
    be load the bar is forced to text only.
    MUIA_SpeedBar_PicDrawer applies as well while loading.

    The number of the images to split the picture in is
    derived from:

    (1) the number of the buttons specified in
        MUIA_SpeedBar_Buttons (if supplied), spacer not
        included

    (2) the value spcedified in MUIA_SpeedBar_StripButtons
        iff it is greater than (1). This lets you
        add buttons later.

    Again: the order how the images are derived is:

    1. MUIA_SpeedBar_Images
    2. MUIA_SpeedBar_StripBrush
    3. MUIA_SpeedBar_Strip
    4. MUIA_SpeedBar_Pics

    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_StripBrush
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_StripBrush

    NAME
    MUIA_SpeedBar_StripBrush -- (V12.3) struct MyBrush * [I...]


    FUNCTION
    Here you my define a picture wich contains all the
    button image. The single images must have all the
    same size nd must be separated by a one pixel column.
    If for any reason the single images can't be created
    bar is forced to text only.

    The number of the images to split the picture in is
    derived from:

    (1) the number of the buttons specified in
        MUIA_SpeedBar_Buttons (if supplied), spacer not
        included

    (2) the value spcedified in MUIA_SpeedBar_StripButtons
        iff it is greater than (1). This lets you
        add buttons later.

    Again: the order how the images are derived is:

    1. MUIA_SpeedBar_Images
    2. MUIA_SpeedBar_StripBrush
    3. MUIA_SpeedBar_Strip
    4. MUIA_SpeedBar_Pics

    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripButtons

SpeedBar.mcc/MUIA_SpeedBar_StripButtons

    NAME
    MUIA_SpeedBar_StripButtons -- (V12.3) UWORD [I...]


    FUNCTION
    Here you my define the number of the buttons to
    split the strip specified in MUIA_SpeedBar_Strip
    or MUIA_SpeedBar_StripBruh. It must be greater than
    the number of the buttons defined in MUIA_SpeedBar_Buttons
    (if supplied), spacer not included.

    SEE ALSO
    MUIA_SpeedBar_Images
    MUIA_SpeedBar_Pics
    MUIA_SpeedBar_PicDrawer
    MUIA_SpeedBar_Strip
    MUIA_SpeedBar_StripBrush

SpeedBar.mcc/MUIA_SpeedBar_StripUnderscore

    NAME
    MUIA_SpeedBar_StripUnderscore -- BOOL [I...]


    FUNCTION
    Causes the bar to strip underscores from buttons labels.
    Note that this attribute is just ignored if
    MUIA_SpeedBar_EnableUnderscore is set to TRUE.

    Default FALSE.


    SEE ALSO
    MUIA_SpeedBar_EnableUnderscore

SpeedBar.mcc/MUIA_SpeedBar_Sunny

    NAME
    MUIA_SpeedBar_Sunny -- BOOL [ISGN]


    FUNCTION
    Do you need buttons a là IE5 (coloured when the mouse is over
    them and grey otherwise)? Set this to TRUE then :)

    Note that till V12.1 the attribute was only
    [IS..].

    Default FALSE.

SpeedBar.mcc/MUIA_SpeedBar_TextOnly

    NAME
    MUIA_SpeedBar_TextOnly -- (V12) BOOL [..G.]


    FUNCTION
    If any of the pics specified in MUIA_SpeedBar_Pics
    can't be load for any reasone, the bar is forced to
    text-only and this attribute is TRUE.


    SEE ALSO
    MUIA_SpeedBar_Pics

SpeedBar.mcc/MUIA_SpeedBar_ViewMode

    NAME
    MUIA_SpeedBar_ViewMode -- UWORD [ISGN]


    FUNCTION
    Set the style of the toolbar.
    The available values are:
        MUIV_SpeedBar_ViewMode_TextGfx (0)
        MUIV_SpeedBar_ViewMode_Gfx     (1)
        MUIV_SpeedBar_ViewMode_Text    (2)

    Default MUIV_SpeedBar_ViewMode_TextGfx.

    Note that in V12, if you specified MUIA_SpeedBar_Pics and
    any of the pics couldn't be load, MUIA_SpeedBar_TextOnly is
    set to 1 and the bar is forced to text-only, wich means
    that this attribute can't be set.

    SEE ALSO
    MUIA_SpeedBar_TextOnly

SpeedBar.mcc/MUIA_SpeedBar_UseMouseMove

    NAME
    MUIA_SpeedBar_UseMouseMove -- (V12.1) BOOL [I...]


    FUNCTION
    SpeedBar.mcc <12.0 used IDCMP_MOUSEOBJECT if running on MUI 4.0
    and IDCMP_INTUITICKS otherwise. I (Alfonso) don't have MUI 4.0
    (argggg :-) so SpeedBar >=12 just uses IDCMP_INTUITICKS.

    IDCMP_INTUITICKS uses less cpu than IDCMP_MOUSEMOVE
    but IDCMP_MOUSEMOVE has really a better feedback.

    Setting this attribute will make the SpeedBar to use
    IDCMP_MOUSEMOVE. Before V12.1 it is ignored.

    Default FALSE.

    Note that this attribute overwrites the user preferences and
    therefore it should be used sparerly.

SpeedBar.mcc/MUIM_SpeedBar_AddButton

    NAME
    MUIM_SpeedBar_AddButton


    SYNOPSIS
    DoMethod(obj,MUIM_SpeedBar_AddButton,speedbar_button);


    FUNCTION
    Adds a button to the bar.


    INPUTS
    speedbar_button - pointer to a MUIS_SpeedBar_Button structure


    RESULT
    Object * to the created button.

SpeedBar.mcc/MUIM_SpeedBar_AddButtonObject

    NAME
    MUIM_SpeedBar_AddButtonObject


    SYNOPSIS
    DoMethod(obj,MUIM_SpeedBar_AddButtonObject,button);


    FUNCTION
    Adds an object to the bar.


    INPUTS
    Object *button - object you want to add


    RESULT
    Nothing you should care of

SpeedBar.mcc/MUIM_SpeedBar_AddSpacer

    NAME
    MUIM_SpeedBar_AddSpacer


    SYNOPSIS
    DoMethod(obj,MUIM_SpeedBar_AddSpacer);


    FUNCTION
    Adds a spacer object.


    RESULT
    Object * to the spacer created.

SpeedBar.mcc/MUIM_SpeedBar_Clear

    NAME
    MUIM_SpeedBar_Clear


    SYNOPSIS
    DoMethod(obj,MUIM_SpeedBar_Clear);


    FUNCTION
    Clears the toolbar.

SpeedBar.mcc/MUIM_SpeedBar_DoOnButton

    NAME
    MUIM_SpeedBar_DoOnButton


    SYNOPSIS
    DoMethod(obj,MUIM_SpeedBar_DoOnButton,i,method,...);


    FUNCTION
    Performs the specified method on the i-th object of the bar.


    INPUTS
    ULONG i      - index of the object to send the method to
    ULONG method - method to invoke


    EXAMPLE

    DoMethod(buttons[0].Object,MUIM_Notify,MUIA_Selected,FALSE,
        SpeedBar,5,MUIM_SpeedBar_DoOnButton,1,MUIM_Set,MUIA_Selected,FALSE);



    NOTES
    This methods MUST be used if you change the toolbar style
    without destroying and recreating the bar!

SpeedBar.mcc/MUIM_SpeedBar_GetObject

    NAME
    MUIM_SpeedBar_GetObject


    SYNOPSIS
    Object *obj = (Object *)DoMethod(bar,MUIM_SpeedBar_GetObject,i);


    FUNCTION
    Returns a pointer to the object number i in the bar.


    INPUTS
    ULONG i - index of the object you need


    RESULT
    Object *obj - the object you need
