.. include:: /Includes.rst.txt
.. _gmenu:
=====
GMENU
=====
.. note::
   GMENU is a menu object type.
GMENU works as an object under the cObject "HMENU" and it creates
graphical navigation, where each link is a separate gif-file.
.. ### BEGIN~OF~TABLE ###
.. container:: table-row
   Property
         RO
   Data type
         boolean
   Default
         0 (false)
   Description
         RollOver configuration enabled / disabled.
         If this is true, RO becomes a GIFBUILDER object defining the layout of
         the menu item when the mouse rolls over it
.. container:: table-row
   Property
         expAll
   Data type
         boolean
   Description
         If this is true, the menu will always show the menu on the level
         underneath the menu item. This corresponds to a situation where a user
         has clicked a menu item and the menu folds out the next level. This
         can enable that to happen on all items as default.
.. container:: table-row
   Property
         collapse
   Data type
         boolean
   Description
         If set, "active" menu items that has expanded the next level on the
         menu will now collapse that menu again.
.. container:: table-row
   Property
         accessKey
   Data type
         boolean
   Description
         If set access-keys are set on the menu-links
.. container:: table-row
   Property
         target
   Data type
         target
   Default
         self
   Description
         Target of the menu links
.. container:: table-row
   Property
         forceTypeValue
   Data type
         integer
   Description
         If set, the &type parameter of the link is forced to this value
         regardless of target. Overrides the global equivalent in 'config' if
         set.
.. container:: table-row
   Property
         stdWrap
   Data type
         ->stdWrap
   Description
         Wraps the whole item using stdWrap
         **Example:** ::
            2 = TMENU
            2 {
              stdWrap.dataWrap = 
              NO {
                ...
              }
            }
.. container:: table-row
   Property
         wrap
   Data type
         wrap
   Description
         Wraps only if there were items in the menu!
.. container:: table-row
   Property
         applyTotalH
   Data type
         objNumsList (offset)
   Description
         This adds the total height of the previously generated menu items to
         the offset of the Gifbuilder Objects mentioned in this list.
         **Example:**
         This is useful it you want to create a menu with individual items but
         a common background image that extends to the whole area behind the
         menu. Then you should setup the background image in each GIFBUILDER-
         object and include the object-number in this list.
         Look at the implementation in static\_template "styles.gmenu.bug"
.. container:: table-row
   Property
         applyTotalW
   Data type
         objNumsList (offset)
   Description
         This adds the total width of the previously generated menu items to
         the offset of the Gifbuilder Objects mentioned in this list.
.. container:: table-row
   Property
         min
   Data type
         x,y (calcInt)
   Description
         Forces the menu as a whole to these minimum dimensions
.. container:: table-row
   Property
         max
   Data type
         x,y (calcInt)
   Description
         Forces the menu as a whole to these maximum dimensions
.. container:: table-row
   Property
         useLargestItemX
   Data type
         boolean
   Description
         If set, then the width of all menu items will be equal to the largest
         of them all.
.. container:: table-row
   Property
         useLargestItemY
   Data type
         boolean
   Description
         If set, then the height of all menu items will be equal to the largest
         of them all.
.. container:: table-row
   Property
         distributeX
   Data type
         positive integer
   Description
         If set, the total width of all the menu items will be equal to this
         number of pixels by adding/subtracting an equal amount of pixels to
         each menu items width.
         Will overrule any setting for ".useLargestItemX"
.. container:: table-row
   Property
         distributeY
   Data type
         positive integer
   Description
         If set, the total height of all the menu items will be equal to this
         number of pixels by adding/subtracting an equal amount of pixels to
         each menu items height.
         Will overrule any setting for ".useLargestItemY"
.. container:: table-row
   Property
         removeObjectsOfDummy
   Data type
         objNumsList
   Description
         If the menu is forced to a certain minimum dimension, this is a list
         of objects in the GIFBUILDER object that is removed for this last
         item. This is important to do if the menu items has elements that
         should only be applied if the item is actually a menu item!
.. container:: table-row
   Property
         disableAltText
   Data type
         boolean
   Description
         If set, the alt-parameter of the images are not set. You can do it
         manually by "imgParams" (see below)
.. container:: table-row
   Property
         IProcFunc
   Data type
         function name
   Description
         The internal array "I" is passed to this function and expected
         returned as well. Subsequent to this function call the menu item is
         compiled by implode()'ing the array $I[parts] in the passed array.
         Thus you may modify this if you need to.
         See example in the extension statictemplates
         (statictemplates/media/scripts/example\_itemArrayProcFunc.php).
.. container:: table-row
   Property
         [Common Item States, see above]
         \+ rollover version for all, except SPC
   Data type
         ->GIFBUILDER
         \+ Additional properties! See table below
   Description
         This is the GIFBUILDER-options for each category of menu item that can
         be generated.
         **Note:** For the GMENU series you can also define the RollOver
         configuration for the item states. This means that you define the
         GIFBUILDER object for the 'Active' state by ACT and the RollOver
         GIFBUILDER object for the 'Active' state by ACTRO.
         This pattern goes for ALL the states except the SPC state.
         **Special:**
         The ->OptionSplit function is run on the whole GIFBUILDER-
         configuration before the items are generated.
.. ###### END~OF~TABLE ######
[tsref:(cObject).HMENU.(mObj).GMENU