## GtkMenuBar GtkMenuBar — A subclass widget for GtkMenuShell which holds GtkMenuItem widgets |

## Synopsis

    #include <gtk/gtk.h>

                GtkMenuBar;
    GtkWidget*  gtk_menu_bar_new                (void);
    #define     gtk_menu_bar_append             (menu,child)
    #define     gtk_menu_bar_prepend            (menu,child)
    #define     gtk_menu_bar_insert             (menu,child,pos)
    enum        GtkPackDirection;
    void        gtk_menu_bar_set_pack_direction (GtkMenuBar *menubar,
                                                 GtkPackDirection pack_dir);
    GtkPackDirection gtk_menu_bar_get_pack_direction
                                                (GtkMenuBar *menubar);
    void        gtk_menu_bar_set_child_pack_direction
                                                (GtkMenuBar *menubar,
                                                 GtkPackDirection child_pack_dir);
    GtkPackDirection gtk_menu_bar_get_child_pack_direction
                                                (GtkMenuBar *menubar);

## Object Hierarchy

      GObject
       +----GtkObject
             +----GtkWidget
                   +----GtkContainer
                         +----GtkMenuShell
                               +----GtkMenuBar

## Implemented Interfaces

GtkMenuBar implements AtkImplementorIface.

## Properties

      "child-pack-direction" GtkPackDirection      : Read / Write
      "pack-direction"       GtkPackDirection      : Read / Write

## Style Properties

      "internal-padding"     gint                  : Read
      "shadow-type"          GtkShadowType         : Read

## Description

The GtkMenuBar is a subclass of GtkMenuShell which contains one to many GtkMenuItem. The result is a standard menu bar which can hold many menu items. GtkMenuBar allows for a shadow type to be set for aesthetic purposes. The shadow types are defined in the gtk_menu_bar_set_shadow_type function.

## Details

### GtkMenuBar

    typedef struct _GtkMenuBar GtkMenuBar;

The GtkMenuBar struct contains the following fields. (These fields should be considered read-only. They should never be set by an application.)

### gtk_menu_bar_new ()

    GtkWidget*  gtk_menu_bar_new                (void);

Creates the new GtkMenuBar

Returns : | the GtkMenuBar

### gtk_menu_bar_append()

    #define gtk_menu_bar_append(menu,child)	    gtk_menu_shell_append  ((GtkMenuShell *)(menu),(child))

### Warning

`gtk_menu_bar_append` is deprecated and should not be used in newly-written code.

Adds a new GtkMenuItem to the end of the GtkMenuBar

`menu` : | a GtkMenuBar
`child` : | the GtkMenuItem to add

### gtk_menu_bar_prepend()

    #define gtk_menu_bar_prepend(menu,child)    gtk_menu_shell_prepend ((GtkMenuShell *)(menu),(child))

### Warning

`gtk_menu_bar_prepend` is deprecated and should not be used in newly-written code.

Adds a new GtkMenuItem to the beginning of the GtkMenuBar

`menu` : | a GtkMenuBar
`child` : | the GtkMenuItem to add

### gtk_menu_bar_insert()

    #define gtk_menu_bar_insert(menu,child,pos) gtk_menu_shell_insert ((GtkMenuShell *)(menu),(child),(pos))

### Warning

`gtk_menu_bar_insert` is deprecated and should not be used in newly-written code.

Adds a new GtkMenuItem to the GtkMenuBar at the position defined by `position`

`menu` : | a GtkMenuBar
`child` : | the GtkMenuItem to add
`pos` : | the position in the item list where the `child` is added.

### enum GtkPackDirection

    typedef enum
    {
      GTK_PACK_DIRECTION_LTR,
      GTK_PACK_DIRECTION_RTL,
      GTK_PACK_DIRECTION_TTB,
      GTK_PACK_DIRECTION_BTT
    } GtkPackDirection;

### gtk_menu_bar_set_pack_direction ()

    void        gtk_menu_bar_set_pack_direction (GtkMenuBar *menubar,
                                                 GtkPackDirection pack_dir);

Sets how items should be packed inside a menubar.

`menubar` : | a GtkMenuBar.
`pack_dir` : | a new GtkPackDirection.

Since 2.8

### gtk_menu_bar_get_pack_direction ()

    GtkPackDirection gtk_menu_bar_get_pack_direction
                                                (GtkMenuBar *menubar);

Retrieves the current pack direction of the menubar. See `gtk_menu_bar_set_pack_direction()`.

`menubar` : | a GtkMenuBar
Returns : | the pack direction

Since 2.8

### gtk_menu_bar_set_child_pack_direction ()

    void        gtk_menu_bar_set_child_pack_direction
                                                (GtkMenuBar *menubar,
                                                 GtkPackDirection child_pack_dir);

Sets how widgets should be packed inside the children of a menubar.

`menubar` : | a GtkMenuBar.
`child_pack_dir` : | a new GtkPackDirection.

Since 2.8

### gtk_menu_bar_get_child_pack_direction ()

    GtkPackDirection gtk_menu_bar_get_child_pack_direction
                                                (GtkMenuBar *menubar);

Retrieves the current child pack direction of the menubar. See `gtk_menu_bar_set_child_pack_direction()`.

`menubar` : | a GtkMenuBar
Returns : | the child pack direction

Since 2.8

## Properties

### The "`child-pack-direction`" property

      "child-pack-direction" GtkPackDirection      : Read / Write

The pack direction of the menubar. It determines how the widgets contained in child menuitems are arranged.

Default value: GTK_PACK_DIRECTION_LTR

Since 2.8

### The "`pack-direction`" property

      "pack-direction"       GtkPackDirection      : Read / Write

The pack direction of the menubar. It determines how menuitems are arranged in the menubar.

Default value: GTK_PACK_DIRECTION_LTR

Since 2.8

## Style Properties

### The "`internal-padding`" style property

      "internal-padding"     gint                  : Read

Amount of border space between the menubar shadow and the menu items.

Allowed values: >= 0

Default value: 1

### The "`shadow-type`" style property

      "shadow-type"          GtkShadowType         : Read

Style of bevel around the menubar.

Default value: GTK_SHADOW_OUT

## See Also

GtkMenuShell, GtkMenu, GtkMenuItem