[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


    NAME
        speedbar_gc -- create speedbar BOOPSI objects

    SUPERCLASS
        gadgetclass

    REQUIRES
        bevel.image

    DESCRIPTION
        This classes provides a simple way to create and manage
        "Speed Bars", also commonly called Button Bars, tool docs, etc.

        A speed bar is a horizontal row or vertical column of button
        gadgets, usually with an image face denoting some program function.
        The speedbar gadget could be placed in the main programs window
        or perhaps its own window to form a floating speedbar/tooldoc.

        An advantages that this class provides:

         > Speedbar button strip created & removed as a single gadget.

         > Help strings for each button can be provided, and displayed
           in a window title bar while a button is depressed.

         > Supports Right Mouse Button abort.

         > Supports window relativity.

         > custom centered images.

         > Ability to change background color of the speed bar strip
           or use fill hook pattern.

         > Horizontal or Vertical speed bar orientation.

         > Supports hiding and exposing speed buttons in the bar.

         > Supports scrolling additional speed buttons in to view
           via holding down the SHIFT key while clicking and
           dragging the mouse left/right or up/down depending on
           the SPEEDBAR_Orientation setting.

         > Supports OM_NOTIFY and may be attached to either
           button.gadget, scroller.gadget and/or propgclass to scroll
           the speed buttons if more buttons exist that are visible
           within its bounds. However, this as a slight unresolvable bug.

    METHODS
        OM_NEW -- Passed to superclass, defaults set, then OM_SET.

        OM_SET -- Passed to superclass, options tags set then rendered.

        OM_GET -- custom tag returned or passed to superclass.

        OM_UPDATE -- Passed to superclass, options set then rendered.

        OM_NOTIFY -- Passed to superclass, options set then rendered.

        OM_DISPOSE -- Passed to superclass.

        GM_RENDER -- Passed to superclass, then speedbar is rendered.

        GM_HITTEST -- Overrides supperclass, returns GMR_HITTEST.

        GM_GOACTIVE -- Passed to superclass, speedbar activated.

        GM_HANDLEINPUT -- Overrides supperclass, all input processed.

        GM_GOINACTIVE -- Passed to superclass, speedbar deactivated.

        GM_DOMAIN -- Returns GDOMAIN_MINIMUM and GDOMAIN_MAXIMUM dimensions.

    ATTRIBUTES
        SPEEDBAR_Buttons (struct list *)
            An Exec list.  Nodes in this list must be allocated with
            allocspeedbuttonnodea().

            See the included SpeedBarTest.c example for additional information.
            Passing a NULL list will remove all buttons from the speedbar and
            detatch the buttons.  Passing ~0 will detach all buttons but not
            erase the display, useful when working on the list data, or while
            changing button lists.

            Applicability is (OM_NEW,OM_SET,OM_GET)

        SPEEDBAR_Orientation (WORD)
            Define orientation of the speedbar's button strip.

            Accepted values as defined in <gadgets/speedbar.h> are:

               SBORIENT_HORIZ
               SBORIENT_VERT

            Defaults to SBORIENT_HORIZ


            Applicability is (OM_NEW,OM_SET,OM_GET)

        SPEEDBAR_Background (WORD)
            Background colour to appear behind gadget.

            Defaults to 0.

            Applicability is (OM_NEW,OM_SET,OM_GET)

        SPEEDBAR_Window (struct window *)
            This Window's TitleBar will changed to the selected button's
            help text while the button remains selected.

            Defaults to NULL.

            Applicability is (OM_NEW,OM_SET,OM_GET)

            NOTE: SPEEDBAR_Screen is *NOT* implemented.

        SPEEDBAR_StrumBar (BOOL)
            enable "strumming" mode, where by you can drag the mouse
            over the button bar to view the help titles and release
            mouse button select the speed button under the mouse.

            Defaults to FALSE.

            Applicability is (OM_NEW,OM_SET)

            NOTE: SPEEDBAR_StrumBar has been disabled to support other
                  features available now, and in the future.

        SPEEDBAR_OffButton (SHORT)
            Disconnect a specified button ID from the speedbar display,
            but does not remove or deallocate button from the list.

            Applicability is (OM_SET, OM_UPDATE)

        SPEEDBAR_OnButton (SHORT)
            Reconnect specified button ID to the speedbar.

            Applicability is (OM_SET, OM_UPDATE)

        SPEEDBAR_ScrollLeft (BOOL)
            Scrolls the speedbuttons to the Left or Up depending on
            gadget orientation.

            Applicability is (OM_SET, OM_UPDATE)

        SPEEDBAR_ScrollRight (BOOL)
            Scrolls the speedbuttons to the Right or Down depending on
            gadget orientation.

            Applicability is (OM_SET, OM_UPDATE)

        SPEEDBAR_Top (WORD)
            Set or retrieve the SpeedButton ID of the Top (read First
            Visible) gadget in the button list.

            Applicability is (OM_SET, OM_UPDATE, OM_GET, OM_NOTIFY)

        SPEEDBAR_Visible (WORD)
            Retrieve the number of speed buttons visible within
            the gadget's container bounds.

            Applicability is (OM_GET, OM_NOTIFY)

        SPEEDBAR_Total (WORD)
            Retrieve the total number of speed buttons in the button list.
            SPEEDBAR_Total, SPEEDBAR_Visible and SPEEDBAR_Top could be
            mapped to a scroller's matching PGA tags to scroll the button
            list if so desired.

            Applicability is (OM_GET, OM_NOTIFY)

        SPEEDBAR_BevelStyle (WORD)
            Set bevel box style around the speed bar. In some cases
            complex speedbars might be built via a series of speedbars
            in a layout object group and it would be desirable to
            select other bevel styles such as BVS_NONE, which under any
            bevel style preferences in use, it will not render a bevel.

            Defaults to BVS_BUTTON.

            Applicability is (ON_NEW, OM_SET, OM_GET)