summaryrefslogtreecommitdiff
path: root/LibGUI/GMenuBar.h
blob: 8a57cabb27b0b049762065eb0f511a2c650e901d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once

#include <LibGUI/GMenu.h>
#include <AK/Badge.h>
#include <AK/OwnPtr.h>
#include <AK/Vector.h>

class GApplication;

class GMenuBar {
public:
    GMenuBar();
    ~GMenuBar();

    void add_menu(OwnPtr<GMenu>&&);

    void notify_added_to_application(Badge<GApplication>);
    void notify_removed_from_application(Badge<GApplication>);

private:
    int realize_menubar();
    void unrealize_menubar();

    int m_menubar_id { 0 };
    Vector<OwnPtr<GMenu>> m_menus;
};