## GtkMenuBar GtkMenuBar — A subclass of GtkMenuShell which holds GtkMenuItem widgets |

## Functions

GtkWidget * | gtk_menu_bar_new ()
GtkWidget * | gtk_menu_bar_new_from_model ()
void | gtk_menu_bar_set_pack_direction ()
GtkPackDirection | gtk_menu_bar_get_pack_direction ()
void | gtk_menu_bar_set_child_pack_direction ()
GtkPackDirection | gtk_menu_bar_get_child_pack_direction ()

## Properties

GtkPackDirection | child-pack-direction | Read / Write
GtkPackDirection | pack-direction | Read / Write

## Style Properties

gint | internal-padding | Read
GtkShadowType | shadow-type | Read

## Types and Values

struct | GtkMenuBar
enum | GtkPackDirection

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkMenuShell
                        ╰── GtkMenuBar

## Implemented Interfaces

GtkMenuBar implements AtkImplementorIface and GtkBuildable.

## Includes

    #include <gtk/gtk.h>

## Description

The GtkMenuBar is a subclass of GtkMenuShell which contains one or more GtkMenuItems. The result is a standard menu bar which can hold many menu items.

### CSS nodes

GtkMenuBar has a single CSS node with name menubar.

## Functions

### gtk_menu_bar_new ()

    GtkWidget *
    gtk_menu_bar_new (void);

Creates a new GtkMenuBar

#### Returns

the new menu bar, as a GtkWidget

### gtk_menu_bar_new_from_model ()

    GtkWidget *
    gtk_menu_bar_new_from_model (GMenuModel *model);

Creates a new GtkMenuBar and populates it with menu items and submenus according to `model` .

The created menu items are connected to actions found in the GtkApplicationWindow to which the menu bar belongs - typically by means of being contained within the GtkApplicationWindows widget hierarchy.

#### Parameters

model | a GMenuModel |

#### Returns

a new GtkMenuBar

Since: 3.4

### 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.

#### Parameters

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()`.

#### Parameters

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.

#### Parameters

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()`.

#### Parameters

menubar | a GtkMenuBar |

#### Returns

the child pack direction

Since: 2.8

## Types and Values

### struct GtkMenuBar

    struct GtkMenuBar;

### enum GtkPackDirection

Determines how widgets should be packed inside menubars and menuitems contained in menubars.

#### Members

GTK_PACK_DIRECTION_LTR | Widgets are packed left-to-right |
GTK_PACK_DIRECTION_RTL | Widgets are packed right-to-left |
GTK_PACK_DIRECTION_TTB | Widgets are packed top-to-bottom |
GTK_PACK_DIRECTION_BTT | Widgets are packed bottom-to-top |

## Property Details

### The `“child-pack-direction”` property

      “child-pack-direction”     GtkPackDirection

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

Flags: Read / Write

Default value: GTK_PACK_DIRECTION_LTR

Since: 2.8

### The `“pack-direction”` property

      “pack-direction”           GtkPackDirection

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

Flags: Read / Write

Default value: GTK_PACK_DIRECTION_LTR

Since: 2.8

## Style Property Details

### The `“internal-padding”` style property

      “internal-padding”         gint

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

`GtkMenuBar:internal-padding` has been deprecated since version 3.8 and should not be used in newly-written code.

use the standard padding CSS property (through objects like GtkStyleContext and GtkCssProvider); the value of this style property is ignored.

Flags: Read

Allowed values: >= 0

Default value: 0

### The `“shadow-type”` style property

      “shadow-type”              GtkShadowType

The style of the shadow around the menubar.

`GtkMenuBar:shadow-type` has been deprecated since version 3.20 and should not be used in newly-written code.

Use CSS to determine the shadow; the value of this style property is ignored.

Flags: Read

Default value: GTK_SHADOW_OUT

## See Also

GtkMenuShell, GtkMenu, GtkMenuItem