text: // Copyright (c) 2020 The Chromium Embedded Framework Authors. All rights
  // reserved. Use of this source code is governed by a BSD-style license that
  // can be found in the LICENSE file.
  //
  // ---------------------------------------------------------------------------
  //
  // This file was generated by the CEF translator tool. If making changes by
  // hand only do so within the body of existing method and function
  // implementations. See the translator.README.txt file in the tools directory
  // for more information.
  //
  // $hash=eb78e3b37b654734b8b28449b713cc3eb3b9070d$
  //
  
  #include "libcef_dll/cpptoc/menu_model_cpptoc.h"
  #include "libcef_dll/ctocpp/menu_model_delegate_ctocpp.h"
  #include "libcef_dll/shutdown_checker.h"
  
  // GLOBAL FUNCTIONS - Body may be edited by hand.
  
  CEF_EXPORT cef_menu_model_t* cef_menu_model_create(
      struct _cef_menu_model_delegate_t* delegate) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    // Verify param: delegate; type: refptr_diff
    DCHECK(delegate);
    if (!delegate)
      return NULL;
  
    // Execute
    CefRefPtr<CefMenuModel> _retval =
        CefMenuModel::CreateMenuModel(CefMenuModelDelegateCToCpp::Wrap(delegate));
  
    // Return type: refptr_same
    return CefMenuModelCppToC::Wrap(_retval);
  }
  
  namespace {
  
  // MEMBER FUNCTIONS - Body may be edited by hand.
  
  int CEF_CALLBACK menu_model_is_sub_menu(struct _cef_menu_model_t* self) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsSubMenu();
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_clear(struct _cef_menu_model_t* self) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->Clear();
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_count(struct _cef_menu_model_t* self) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    int _retval = CefMenuModelCppToC::Get(self)->GetCount();
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_add_separator(struct _cef_menu_model_t* self) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->AddSeparator();
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_add_item(struct _cef_menu_model_t* self,
                                       int command_id,
                                       const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->AddItem(command_id, CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_add_check_item(struct _cef_menu_model_t* self,
                                             int command_id,
                                             const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->AddCheckItem(command_id, CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_add_radio_item(struct _cef_menu_model_t* self,
                                             int command_id,
                                             const cef_string_t* label,
                                             int group_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->AddRadioItem(
        command_id, CefString(label), group_id);
  
    // Return type: bool
    return _retval;
  }
  
  struct _cef_menu_model_t* CEF_CALLBACK
  menu_model_add_sub_menu(struct _cef_menu_model_t* self,
                          int command_id,
                          const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return NULL;
  
    // Execute
    CefRefPtr<CefMenuModel> _retval =
        CefMenuModelCppToC::Get(self)->AddSubMenu(command_id, CefString(label));
  
    // Return type: refptr_same
    return CefMenuModelCppToC::Wrap(_retval);
  }
  
  int CEF_CALLBACK menu_model_insert_separator_at(struct _cef_menu_model_t* self,
                                                  int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->InsertSeparatorAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_insert_item_at(struct _cef_menu_model_t* self,
                                             int index,
                                             int command_id,
                                             const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->InsertItemAt(index, command_id,
                                                               CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_insert_check_item_at(struct _cef_menu_model_t* self,
                                                   int index,
                                                   int command_id,
                                                   const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->InsertCheckItemAt(
        index, command_id, CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_insert_radio_item_at(struct _cef_menu_model_t* self,
                                                   int index,
                                                   int command_id,
                                                   const cef_string_t* label,
                                                   int group_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->InsertRadioItemAt(
        index, command_id, CefString(label), group_id);
  
    // Return type: bool
    return _retval;
  }
  
  struct _cef_menu_model_t* CEF_CALLBACK
  menu_model_insert_sub_menu_at(struct _cef_menu_model_t* self,
                                int index,
                                int command_id,
                                const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return NULL;
  
    // Execute
    CefRefPtr<CefMenuModel> _retval =
        CefMenuModelCppToC::Get(self)->InsertSubMenuAt(index, command_id,
                                                       CefString(label));
  
    // Return type: refptr_same
    return CefMenuModelCppToC::Wrap(_retval);
  }
  
  int CEF_CALLBACK menu_model_remove(struct _cef_menu_model_t* self,
                                     int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->Remove(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_remove_at(struct _cef_menu_model_t* self,
                                        int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->RemoveAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_index_of(struct _cef_menu_model_t* self,
                                           int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    int _retval = CefMenuModelCppToC::Get(self)->GetIndexOf(command_id);
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_command_id_at(struct _cef_menu_model_t* self,
                                                int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    int _retval = CefMenuModelCppToC::Get(self)->GetCommandIdAt(index);
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_command_id_at(struct _cef_menu_model_t* self,
                                                int index,
                                                int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetCommandIdAt(index, command_id);
  
    // Return type: bool
    return _retval;
  }
  
  cef_string_userfree_t CEF_CALLBACK
  menu_model_get_label(struct _cef_menu_model_t* self, int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
  
    // Execute
    CefString _retval = CefMenuModelCppToC::Get(self)->GetLabel(command_id);
  
    // Return type: string
    return _retval.DetachToUserFree();
  }
  
  cef_string_userfree_t CEF_CALLBACK
  menu_model_get_label_at(struct _cef_menu_model_t* self, int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
  
    // Execute
    CefString _retval = CefMenuModelCppToC::Get(self)->GetLabelAt(index);
  
    // Return type: string
    return _retval.DetachToUserFree();
  }
  
  int CEF_CALLBACK menu_model_set_label(struct _cef_menu_model_t* self,
                                        int command_id,
                                        const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetLabel(command_id, CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_label_at(struct _cef_menu_model_t* self,
                                           int index,
                                           const cef_string_t* label) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: label; type: string_byref_const
    DCHECK(label);
    if (!label)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetLabelAt(index, CefString(label));
  
    // Return type: bool
    return _retval;
  }
  
  cef_menu_item_type_t CEF_CALLBACK
  menu_model_get_type(struct _cef_menu_model_t* self, int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return MENUITEMTYPE_NONE;
  
    // Execute
    cef_menu_item_type_t _retval =
        CefMenuModelCppToC::Get(self)->GetType(command_id);
  
    // Return type: simple
    return _retval;
  }
  
  cef_menu_item_type_t CEF_CALLBACK
  menu_model_get_type_at(struct _cef_menu_model_t* self, int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return MENUITEMTYPE_NONE;
  
    // Execute
    cef_menu_item_type_t _retval =
        CefMenuModelCppToC::Get(self)->GetTypeAt(index);
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_group_id(struct _cef_menu_model_t* self,
                                           int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    int _retval = CefMenuModelCppToC::Get(self)->GetGroupId(command_id);
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_group_id_at(struct _cef_menu_model_t* self,
                                              int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    int _retval = CefMenuModelCppToC::Get(self)->GetGroupIdAt(index);
  
    // Return type: simple
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_group_id(struct _cef_menu_model_t* self,
                                           int command_id,
                                           int group_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetGroupId(command_id, group_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_group_id_at(struct _cef_menu_model_t* self,
                                              int index,
                                              int group_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetGroupIdAt(index, group_id);
  
    // Return type: bool
    return _retval;
  }
  
  struct _cef_menu_model_t* CEF_CALLBACK
  menu_model_get_sub_menu(struct _cef_menu_model_t* self, int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
  
    // Execute
    CefRefPtr<CefMenuModel> _retval =
        CefMenuModelCppToC::Get(self)->GetSubMenu(command_id);
  
    // Return type: refptr_same
    return CefMenuModelCppToC::Wrap(_retval);
  }
  
  struct _cef_menu_model_t* CEF_CALLBACK
  menu_model_get_sub_menu_at(struct _cef_menu_model_t* self, int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return NULL;
  
    // Execute
    CefRefPtr<CefMenuModel> _retval =
        CefMenuModelCppToC::Get(self)->GetSubMenuAt(index);
  
    // Return type: refptr_same
    return CefMenuModelCppToC::Wrap(_retval);
  }
  
  int CEF_CALLBACK menu_model_is_visible(struct _cef_menu_model_t* self,
                                         int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsVisible(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_is_visible_at(struct _cef_menu_model_t* self,
                                            int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsVisibleAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_visible(struct _cef_menu_model_t* self,
                                          int command_id,
                                          int visible) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetVisible(
        command_id, visible ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_visible_at(struct _cef_menu_model_t* self,
                                             int index,
                                             int visible) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetVisibleAt(
        index, visible ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_is_enabled(struct _cef_menu_model_t* self,
                                         int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsEnabled(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_is_enabled_at(struct _cef_menu_model_t* self,
                                            int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsEnabledAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_enabled(struct _cef_menu_model_t* self,
                                          int command_id,
                                          int enabled) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetEnabled(
        command_id, enabled ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_enabled_at(struct _cef_menu_model_t* self,
                                             int index,
                                             int enabled) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetEnabledAt(
        index, enabled ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_is_checked(struct _cef_menu_model_t* self,
                                         int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsChecked(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_is_checked_at(struct _cef_menu_model_t* self,
                                            int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->IsCheckedAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_checked(struct _cef_menu_model_t* self,
                                          int command_id,
                                          int checked) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetChecked(
        command_id, checked ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_checked_at(struct _cef_menu_model_t* self,
                                             int index,
                                             int checked) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetCheckedAt(
        index, checked ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_has_accelerator(struct _cef_menu_model_t* self,
                                              int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->HasAccelerator(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_has_accelerator_at(struct _cef_menu_model_t* self,
                                                 int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->HasAcceleratorAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_accelerator(struct _cef_menu_model_t* self,
                                              int command_id,
                                              int key_code,
                                              int shift_pressed,
                                              int ctrl_pressed,
                                              int alt_pressed) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetAccelerator(
        command_id, key_code, shift_pressed ? true : false,
        ctrl_pressed ? true : false, alt_pressed ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_accelerator_at(struct _cef_menu_model_t* self,
                                                 int index,
                                                 int key_code,
                                                 int shift_pressed,
                                                 int ctrl_pressed,
                                                 int alt_pressed) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetAcceleratorAt(
        index, key_code, shift_pressed ? true : false,
        ctrl_pressed ? true : false, alt_pressed ? true : false);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_remove_accelerator(struct _cef_menu_model_t* self,
                                                 int command_id) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->RemoveAccelerator(command_id);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK
  menu_model_remove_accelerator_at(struct _cef_menu_model_t* self, int index) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->RemoveAcceleratorAt(index);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_accelerator(struct _cef_menu_model_t* self,
                                              int command_id,
                                              int* key_code,
                                              int* shift_pressed,
                                              int* ctrl_pressed,
                                              int* alt_pressed) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: key_code; type: simple_byref
    DCHECK(key_code);
    if (!key_code)
      return 0;
    // Verify param: shift_pressed; type: bool_byref
    DCHECK(shift_pressed);
    if (!shift_pressed)
      return 0;
    // Verify param: ctrl_pressed; type: bool_byref
    DCHECK(ctrl_pressed);
    if (!ctrl_pressed)
      return 0;
    // Verify param: alt_pressed; type: bool_byref
    DCHECK(alt_pressed);
    if (!alt_pressed)
      return 0;
  
    // Translate param: key_code; type: simple_byref
    int key_codeVal = key_code ? *key_code : 0;
    // Translate param: shift_pressed; type: bool_byref
    bool shift_pressedBool = (shift_pressed && *shift_pressed) ? true : false;
    // Translate param: ctrl_pressed; type: bool_byref
    bool ctrl_pressedBool = (ctrl_pressed && *ctrl_pressed) ? true : false;
    // Translate param: alt_pressed; type: bool_byref
    bool alt_pressedBool = (alt_pressed && *alt_pressed) ? true : false;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->GetAccelerator(
        command_id, key_codeVal, shift_pressedBool, ctrl_pressedBool,
        alt_pressedBool);
  
    // Restore param: key_code; type: simple_byref
    if (key_code)
      *key_code = key_codeVal;
    // Restore param: shift_pressed; type: bool_byref
    if (shift_pressed)
      *shift_pressed = shift_pressedBool ? true : false;
    // Restore param: ctrl_pressed; type: bool_byref
    if (ctrl_pressed)
      *ctrl_pressed = ctrl_pressedBool ? true : false;
    // Restore param: alt_pressed; type: bool_byref
    if (alt_pressed)
      *alt_pressed = alt_pressedBool ? true : false;
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_accelerator_at(struct _cef_menu_model_t* self,
                                                 int index,
                                                 int* key_code,
                                                 int* shift_pressed,
                                                 int* ctrl_pressed,
                                                 int* alt_pressed) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: key_code; type: simple_byref
    DCHECK(key_code);
    if (!key_code)
      return 0;
    // Verify param: shift_pressed; type: bool_byref
    DCHECK(shift_pressed);
    if (!shift_pressed)
      return 0;
    // Verify param: ctrl_pressed; type: bool_byref
    DCHECK(ctrl_pressed);
    if (!ctrl_pressed)
      return 0;
    // Verify param: alt_pressed; type: bool_byref
    DCHECK(alt_pressed);
    if (!alt_pressed)
      return 0;
  
    // Translate param: key_code; type: simple_byref
    int key_codeVal = key_code ? *key_code : 0;
    // Translate param: shift_pressed; type: bool_byref
    bool shift_pressedBool = (shift_pressed && *shift_pressed) ? true : false;
    // Translate param: ctrl_pressed; type: bool_byref
    bool ctrl_pressedBool = (ctrl_pressed && *ctrl_pressed) ? true : false;
    // Translate param: alt_pressed; type: bool_byref
    bool alt_pressedBool = (alt_pressed && *alt_pressed) ? true : false;
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->GetAcceleratorAt(
        index, key_codeVal, shift_pressedBool, ctrl_pressedBool, alt_pressedBool);
  
    // Restore param: key_code; type: simple_byref
    if (key_code)
      *key_code = key_codeVal;
    // Restore param: shift_pressed; type: bool_byref
    if (shift_pressed)
      *shift_pressed = shift_pressedBool ? true : false;
    // Restore param: ctrl_pressed; type: bool_byref
    if (ctrl_pressed)
      *ctrl_pressed = ctrl_pressedBool ? true : false;
    // Restore param: alt_pressed; type: bool_byref
    if (alt_pressed)
      *alt_pressed = alt_pressedBool ? true : false;
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_color(struct _cef_menu_model_t* self,
                                        int command_id,
                                        cef_menu_color_type_t color_type,
                                        cef_color_t color) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetColor(command_id, color_type, color);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_color_at(struct _cef_menu_model_t* self,
                                           int index,
                                           cef_menu_color_type_t color_type,
                                           cef_color_t color) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetColorAt(index, color_type, color);
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_color(struct _cef_menu_model_t* self,
                                        int command_id,
                                        cef_menu_color_type_t color_type,
                                        cef_color_t* color) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: color; type: simple_byref
    DCHECK(color);
    if (!color)
      return 0;
  
    // Translate param: color; type: simple_byref
    cef_color_t colorVal = color ? *color : 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->GetColor(command_id, color_type, colorVal);
  
    // Restore param: color; type: simple_byref
    if (color)
      *color = colorVal;
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_get_color_at(struct _cef_menu_model_t* self,
                                           int index,
                                           cef_menu_color_type_t color_type,
                                           cef_color_t* color) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Verify param: color; type: simple_byref
    DCHECK(color);
    if (!color)
      return 0;
  
    // Translate param: color; type: simple_byref
    cef_color_t colorVal = color ? *color : 0;
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->GetColorAt(index, color_type, colorVal);
  
    // Restore param: color; type: simple_byref
    if (color)
      *color = colorVal;
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_font_list(struct _cef_menu_model_t* self,
                                            int command_id,
                                            const cef_string_t* font_list) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Unverified params: font_list
  
    // Execute
    bool _retval = CefMenuModelCppToC::Get(self)->SetFontList(
        command_id, CefString(font_list));
  
    // Return type: bool
    return _retval;
  }
  
  int CEF_CALLBACK menu_model_set_font_list_at(struct _cef_menu_model_t* self,
                                               int index,
                                               const cef_string_t* font_list) {
    shutdown_checker::AssertNotShutdown();
  
    // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
  
    DCHECK(self);
    if (!self)
      return 0;
    // Unverified params: font_list
  
    // Execute
    bool _retval =
        CefMenuModelCppToC::Get(self)->SetFontListAt(index, CefString(font_list));
  
    // Return type: bool
    return _retval;
  }
  
  }  // namespace
  
  // CONSTRUCTOR - Do not edit by hand.
  
  CefMenuModelCppToC::CefMenuModelCppToC() {
    GetStruct()->is_sub_menu = menu_model_is_sub_menu;
    GetStruct()->clear = menu_model_clear;
    GetStruct()->get_count = menu_model_get_count;
    GetStruct()->add_separator = menu_model_add_separator;
    GetStruct()->add_item = menu_model_add_item;
    GetStruct()->add_check_item = menu_model_add_check_item;
    GetStruct()->add_radio_item = menu_model_add_radio_item;
    GetStruct()->add_sub_menu = menu_model_add_sub_menu;
    GetStruct()->insert_separator_at = menu_model_insert_separator_at;
    GetStruct()->insert_item_at = menu_model_insert_item_at;
    GetStruct()->insert_check_item_at = menu_model_insert_check_item_at;
    GetStruct()->insert_radio_item_at = menu_model_insert_radio_item_at;
    GetStruct()->insert_sub_menu_at = menu_model_insert_sub_menu_at;
    GetStruct()->remove = menu_model_remove;
    GetStruct()->remove_at = menu_model_remove_at;
    GetStruct()->get_index_of = menu_model_get_index_of;
    GetStruct()->get_command_id_at = menu_model_get_command_id_at;
    GetStruct()->set_command_id_at = menu_model_set_command_id_at;
    GetStruct()->get_label = menu_model_get_label;
    GetStruct()->get_label_at = menu_model_get_label_at;
    GetStruct()->set_label = menu_model_set_label;
    GetStruct()->set_label_at = menu_model_set_label_at;
    GetStruct()->get_type = menu_model_get_type;
    GetStruct()->get_type_at = menu_model_get_type_at;
    GetStruct()->get_group_id = menu_model_get_group_id;
    GetStruct()->get_group_id_at = menu_model_get_group_id_at;
    GetStruct()->set_group_id = menu_model_set_group_id;
    GetStruct()->set_group_id_at = menu_model_set_group_id_at;
    GetStruct()->get_sub_menu = menu_model_get_sub_menu;
    GetStruct()->get_sub_menu_at = menu_model_get_sub_menu_at;
    GetStruct()->is_visible = menu_model_is_visible;
    GetStruct()->is_visible_at = menu_model_is_visible_at;
    GetStruct()->set_visible = menu_model_set_visible;
    GetStruct()->set_visible_at = menu_model_set_visible_at;
    GetStruct()->is_enabled = menu_model_is_enabled;
    GetStruct()->is_enabled_at = menu_model_is_enabled_at;
    GetStruct()->set_enabled = menu_model_set_enabled;
    GetStruct()->set_enabled_at = menu_model_set_enabled_at;
    GetStruct()->is_checked = menu_model_is_checked;
    GetStruct()->is_checked_at = menu_model_is_checked_at;
    GetStruct()->set_checked = menu_model_set_checked;
    GetStruct()->set_checked_at = menu_model_set_checked_at;
    GetStruct()->has_accelerator = menu_model_has_accelerator;
    GetStruct()->has_accelerator_at = menu_model_has_accelerator_at;
    GetStruct()->set_accelerator = menu_model_set_accelerator;
    GetStruct()->set_accelerator_at = menu_model_set_accelerator_at;
    GetStruct()->remove_accelerator = menu_model_remove_accelerator;
    GetStruct()->remove_accelerator_at = menu_model_remove_accelerator_at;
    GetStruct()->get_accelerator = menu_model_get_accelerator;
    GetStruct()->get_accelerator_at = menu_model_get_accelerator_at;
    GetStruct()->set_color = menu_model_set_color;
    GetStruct()->set_color_at = menu_model_set_color_at;
    GetStruct()->get_color = menu_model_get_color;
    GetStruct()->get_color_at = menu_model_get_color_at;
    GetStruct()->set_font_list = menu_model_set_font_list;
    GetStruct()->set_font_list_at = menu_model_set_font_list_at;
  }
  
  // DESTRUCTOR - Do not edit by hand.
  
  CefMenuModelCppToC::~CefMenuModelCppToC() {
    shutdown_checker::AssertNotShutdown();
  }
  
  template <>
  CefRefPtr<CefMenuModel>
  CefCppToCRefCounted<CefMenuModelCppToC, CefMenuModel, cef_menu_model_t>::
      UnwrapDerived(CefWrapperType type, cef_menu_model_t* s) {
    NOTREACHED() << "Unexpected class type: " << type;
    return nullptr;
  }
  
  template <>
  CefWrapperType CefCppToCRefCounted<CefMenuModelCppToC,
                                     CefMenuModel,
                                     cef_menu_model_t>::kWrapperType =
      WT_MENU_MODEL;
  