53 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.3 KiB
			
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2015 GitHub, Inc.
 | 
						|
// Use of this source code is governed by the MIT license that can be
 | 
						|
// found in the LICENSE file.
 | 
						|
 | 
						|
#include "atom/browser/ui/atom_menu_model.h"
 | 
						|
 | 
						|
#include "base/stl_util.h"
 | 
						|
 | 
						|
namespace atom {
 | 
						|
 | 
						|
AtomMenuModel::AtomMenuModel(Delegate* delegate)
 | 
						|
    : ui::SimpleMenuModel(delegate),
 | 
						|
      delegate_(delegate) {
 | 
						|
}
 | 
						|
 | 
						|
AtomMenuModel::~AtomMenuModel() {
 | 
						|
}
 | 
						|
 | 
						|
void AtomMenuModel::SetRole(int index, const base::string16& role) {
 | 
						|
  int command_id = GetCommandIdAt(index);
 | 
						|
  roles_[command_id] = role;
 | 
						|
}
 | 
						|
 | 
						|
base::string16 AtomMenuModel::GetRoleAt(int index) {
 | 
						|
  int command_id = GetCommandIdAt(index);
 | 
						|
  if (ContainsKey(roles_, command_id))
 | 
						|
    return roles_[command_id];
 | 
						|
  else
 | 
						|
    return base::string16();
 | 
						|
}
 | 
						|
 | 
						|
bool AtomMenuModel::GetAcceleratorAtWithParams(
 | 
						|
    int index,
 | 
						|
    bool use_default_accelerator,
 | 
						|
    ui::Accelerator* accelerator) const {
 | 
						|
  if (delegate_) {
 | 
						|
    return delegate_->GetAcceleratorForCommandIdWithParams(
 | 
						|
        GetCommandIdAt(index), use_default_accelerator, accelerator);
 | 
						|
  }
 | 
						|
  return false;
 | 
						|
}
 | 
						|
 | 
						|
void AtomMenuModel::MenuClosed() {
 | 
						|
  ui::SimpleMenuModel::MenuClosed();
 | 
						|
  FOR_EACH_OBSERVER(Observer, observers_, MenuClosed());
 | 
						|
}
 | 
						|
 | 
						|
AtomMenuModel* AtomMenuModel::GetSubmenuModelAt(int index) {
 | 
						|
  return static_cast<AtomMenuModel*>(
 | 
						|
      ui::SimpleMenuModel::GetSubmenuModelAt(index));
 | 
						|
}
 | 
						|
 | 
						|
}  // namespace atom
 |