#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_SYSTEM_MENU_MODEL_BUILDER_H_
#define CHROME_BROWSER_UI_VIEWS_FRAME_SYSTEM_MENU_MODEL_BUILDER_H_
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/views/frame/system_menu_model_delegate.h"
class Browser;
class EncodingMenuModel;
class ZoomMenuModel;
namespace ui {
class AcceleratorProvider;
class MenuModel;
class SimpleMenuModel;
}
class SystemMenuModelBuilder {
public:
SystemMenuModelBuilder(ui::AcceleratorProvider* provider, Browser* browser);
~SystemMenuModelBuilder();
void Init();
ui::MenuModel* menu_model() { return menu_model_.get(); }
private:
Browser* browser() { return menu_delegate_.browser(); }
void BuildMenu(ui::SimpleMenuModel* model);
void BuildSystemMenuForBrowserWindow(ui::SimpleMenuModel* model);
void BuildSystemMenuForAppOrPopupWindow(ui::SimpleMenuModel* model);
void AddFrameToggleItems(ui::SimpleMenuModel* model);
void AppendTeleportMenu(ui::SimpleMenuModel* model);
SystemMenuModelDelegate menu_delegate_;
scoped_ptr<ui::MenuModel> menu_model_;
scoped_ptr<ZoomMenuModel> zoom_menu_contents_;
scoped_ptr<EncodingMenuModel> encoding_menu_contents_;
DISALLOW_COPY_AND_ASSIGN(SystemMenuModelBuilder);
};
#endif