Glib::RefPtr<Gio::Menu> Glib::wrap(GMenu*, bool) (struct GMenu * object, bool take_copy)
{
  struct Menu * iftmp.0;
  int D.98318;
  struct ObjectBase * D.98319;

  D.98318 = (int) take_copy;
  D.98319 = Glib::wrap_auto (object, D.98318);
  if (D.98319 == 0B) goto <D.98320>; else goto <D.98321>;
  <D.98320>:
  iftmp.0 = 0B;
  goto <D.98322>;
  <D.98321>:
  iftmp.0 = __dynamic_cast (D.98319, &_ZTIN4Glib10ObjectBaseE, &_ZTIN3Gio4MenuE, -1);
  <D.98322>:
  Glib::RefPtr<Gio::Menu>::RefPtr (<retval>, iftmp.0);
  return <retval>;
}


Glib::RefPtr<T_CppObject>::RefPtr(T_CppObject*) [with T_CppObject = Gio::Menu] (struct RefPtr * const this, struct Menu * pCppObject)
{
  this->pCppObject_ = pCppObject;
}


const Glib::Class& Gio::Menu_Class::init() (struct Menu_Class * const this)
{
  long unsigned int D.98325;
  long unsigned int D.98328;
  struct Class * D.98329;
  const struct Class & D.98331;

  D.98325 = this->D.86664.gtype_;
  if (D.98325 == 0) goto <D.98326>; else goto <D.98327>;
  <D.98326>:
  this->D.86664.class_init_func_ = class_init_function;
  D.98328 = g_menu_get_type ();
  D.98329 = &this->D.86664;
  Glib::Class::register_derived_type (D.98329, D.98328);
  goto <D.98330>;
  <D.98327>:
  <D.98330>:
  D.98331 = &this->D.86664;
  return D.98331;
}


static void Gio::Menu_Class::class_init_function(void*, void*) (void * g_class, void * class_data)
{
  struct BaseClassType * const klass;

  klass = g_class;
  Gio::MenuModel_Class::class_init_function (klass, class_data);
}


static Glib::ObjectBase* Gio::Menu_Class::wrap_new(GObject*) (struct GObject * object)
{
  struct ObjectBase * D.98334;
  struct ObjectBase * iftmp.1;
  void * D.97241;
  void * D.98336;
  int (*__vtbl_ptr_type) () * D.98339;
  int (*__vtbl_ptr_type) () * D.98340;
  long int D.98341;
  sizetype D.98342;

  D.97241 = operator new (48);
  try
    {
      Gio::Menu::Menu (D.97241, object);
    }
  catch
    {
      operator delete (D.97241);
    }
  D.98336 = D.97241;
  if (D.98336 != 0B) goto <D.98337>; else goto <D.98338>;
  <D.98337>:
  D.98339 = MEM[(struct Menu *)D.98336].D.86606.D.86067._vptr.Object;
  D.98340 = D.98339 + 18446744073709551592;
  D.98341 = MEM[(long int *)D.98340];
  D.98342 = (sizetype) D.98341;
  iftmp.1 = D.98336 + D.98342;
  goto <D.98343>;
  <D.98338>:
  iftmp.1 = 0B;
  <D.98343>:
  D.98334 = iftmp.1;
  return D.98334;
}


GMenu* Gio::Menu::gobj_copy() (struct Menu * const this)
{
  int (*__vtbl_ptr_type) () * D.98348;
  int (*__vtbl_ptr_type) () * D.98349;
  long int D.98350;
  sizetype D.98351;
  struct ObjectBase * D.98352;
  int (*__vtbl_ptr_type) () * D.98353;
  int (*__vtbl_ptr_type) () * D.98354;
  int (*__vtbl_ptr_type) () D.98355;
  struct GMenu * D.98356;

  D.98348 = this->D.86606.D.86067._vptr.Object;
  D.98349 = D.98348 + 18446744073709551592;
  D.98350 = MEM[(long int *)D.98349];
  D.98351 = (sizetype) D.98350;
  D.98352 = this + D.98351;
  D.98348 = this->D.86606.D.86067._vptr.Object;
  D.98349 = D.98348 + 18446744073709551592;
  D.98350 = MEM[(long int *)D.98349];
  D.98351 = (sizetype) D.98350;
  D.98352 = this + D.98351;
  D.98353 = D.98352->_vptr.ObjectBase;
  D.98354 = D.98353 + 16;
  D.98355 = *D.98354;
  D.98348 = this->D.86606.D.86067._vptr.Object;
  D.98349 = D.98348 + 18446744073709551592;
  D.98350 = MEM[(long int *)D.98349];
  D.98351 = (sizetype) D.98350;
  D.98352 = this + D.98351;
  OBJ_TYPE_REF(D.98355;(const struct ObjectBase)D.98352->2) (D.98352);
  D.98356 = Gio::Menu::gobj (this);
  return D.98356;
}


GMenu* Gio::Menu::gobj() (struct Menu * const this)
{
  struct GMenu * D.98358;
  int (*__vtbl_ptr_type) () * D.98359;
  int (*__vtbl_ptr_type) () * D.98360;
  long int D.98361;
  sizetype D.98362;
  struct ObjectBase * D.98363;

  D.98359 = this->D.86606.D.86067._vptr.Object;
  D.98360 = D.98359 + 18446744073709551592;
  D.98361 = MEM[(long int *)D.98360];
  D.98362 = (sizetype) D.98361;
  D.98363 = this + D.98362;
  D.98358 = D.98363->gobject_;
  return D.98358;
}


Gio::Menu::Menu(const Glib::ConstructParams&) (struct Menu * const this, const void * * __vtt_parm, const struct ConstructParams & construct_params)
{
  struct trackable * D.98367;
  const void * * iftmp.2;
  struct ObjectBase * D.98375;
  const void * * iftmp.3;
  struct MenuModel * D.98381;
  int (*__vtbl_ptr_type) () * iftmp.4;
  sizetype iftmp.5;
  int (*__vtbl_ptr_type) () * D.98389;
  int (*__vtbl_ptr_type) () * D.98390;
  long int D.98391;
  struct ObjectBase * D.98393;
  int (*__vtbl_ptr_type) () * iftmp.6;
  const void * * iftmp.7;
  const void * * iftmp.8;

  if (0 != 0) goto <D.98365>; else goto <D.98366>;
  <D.98365>:
  D.98367 = &this->D.86609;
  sigc::trackable::trackable (D.98367);
  goto <D.98368>;
  <D.98366>:
  <D.98368>:
  try
    {
      if (0 != 0) goto <D.98369>; else goto <D.98370>;
      <D.98369>:
      if (0 == 0) goto <D.98372>; else goto <D.98373>;
      <D.98372>:
      iftmp.2 = __vtt_parm + 48;
      goto <D.98374>;
      <D.98373>:
      iftmp.2 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98374>:
      D.98375 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98375, iftmp.2);
      goto <D.98376>;
      <D.98370>:
      <D.98376>:
      try
        {
          if (0 == 0) goto <D.98378>; else goto <D.98379>;
          <D.98378>:
          iftmp.3 = __vtt_parm + 8;
          goto <D.98380>;
          <D.98379>:
          iftmp.3 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
          <D.98380>:
          D.98381 = &this->D.86606;
          Gio::MenuModel::MenuModel (D.98381, iftmp.3, construct_params);
          try
            {
              if (0 == 0) goto <D.98383>; else goto <D.98384>;
              <D.98383>:
              iftmp.4 = *__vtt_parm;
              goto <D.98385>;
              <D.98384>:
              iftmp.4 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98385>:
              this->D.86606.D.86067._vptr.Object = iftmp.4;
              if (0 == 0) goto <D.98387>; else goto <D.98388>;
              <D.98387>:
              D.98389 = this->D.86606.D.86067._vptr.Object;
              D.98390 = D.98389 + 18446744073709551592;
              D.98391 = MEM[(long int *)D.98390];
              iftmp.5 = (sizetype) D.98391;
              goto <D.98392>;
              <D.98388>:
              iftmp.5 = 8;
              <D.98392>:
              D.98393 = this + iftmp.5;
              if (0 == 0) goto <D.98395>; else goto <D.98396>;
              <D.98395>:
              iftmp.6 = MEM[(const void * *)__vtt_parm + 40B];
              goto <D.98397>;
              <D.98396>:
              iftmp.6 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98397>:
              D.98393->_vptr.ObjectBase = iftmp.6;
            }
          catch
            {
              if (0 == 0) goto <D.98399>; else goto <D.98400>;
              <D.98399>:
              iftmp.7 = __vtt_parm + 8;
              goto <D.98401>;
              <D.98400>:
              iftmp.7 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98401>:
              D.98381 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98381, iftmp.7);
            }
        }
      catch
        {
          if (0 != 0) goto <D.98402>; else goto <D.98403>;
          <D.98402>:
          if (0 == 0) goto <D.98405>; else goto <D.98406>;
          <D.98405>:
          iftmp.8 = __vtt_parm + 48;
          goto <D.98407>;
          <D.98406>:
          iftmp.8 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98407>:
          D.98375 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98375, iftmp.8);
          goto <D.98408>;
          <D.98403>:
          <D.98408>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.98409>; else goto <D.98410>;
      <D.98409>:
      D.98367 = &this->D.86609;
      sigc::trackable::~trackable (D.98367);
      goto <D.98411>;
      <D.98410>:
      <D.98411>:
    }
}


Gio::Menu::Menu(const Glib::ConstructParams&) (struct Menu * const this, const struct ConstructParams & construct_params)
{
  struct trackable * D.98416;
  const void * * iftmp.9;
  struct ObjectBase * D.98424;
  const void * * iftmp.10;
  struct MenuModel * D.98430;
  int (*__vtbl_ptr_type) () * iftmp.11;
  const void * * D.98434;
  sizetype iftmp.12;
  int (*__vtbl_ptr_type) () * D.98439;
  int (*__vtbl_ptr_type) () * D.98440;
  long int D.98441;
  struct ObjectBase * D.98443;
  int (*__vtbl_ptr_type) () * iftmp.13;
  const void * * iftmp.14;
  const void * * iftmp.15;

  if (1 != 0) goto <D.98414>; else goto <D.98415>;
  <D.98414>:
  D.98416 = &this->D.86609;
  sigc::trackable::trackable (D.98416);
  goto <D.98417>;
  <D.98415>:
  <D.98417>:
  try
    {
      if (1 != 0) goto <D.98418>; else goto <D.98419>;
      <D.98418>:
      if (1 == 0) goto <D.98421>; else goto <D.98422>;
      <D.98421>:
      iftmp.9 = 48B;
      goto <D.98423>;
      <D.98422>:
      iftmp.9 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98423>:
      D.98424 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98424, iftmp.9);
      goto <D.98425>;
      <D.98419>:
      <D.98425>:
      try
        {
          if (1 == 0) goto <D.98427>; else goto <D.98428>;
          <D.98427>:
          iftmp.10 = 8B;
          goto <D.98429>;
          <D.98428>:
          iftmp.10 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
          <D.98429>:
          D.98430 = &this->D.86606;
          Gio::MenuModel::MenuModel (D.98430, iftmp.10, construct_params);
          try
            {
              if (1 == 0) goto <D.98432>; else goto <D.98433>;
              <D.98432>:
              D.98434 = 0B;
              iftmp.11 = *D.98434;
              goto <D.98435>;
              <D.98433>:
              iftmp.11 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98435>:
              this->D.86606.D.86067._vptr.Object = iftmp.11;
              if (1 == 0) goto <D.98437>; else goto <D.98438>;
              <D.98437>:
              D.98439 = this->D.86606.D.86067._vptr.Object;
              D.98440 = D.98439 + 18446744073709551592;
              D.98441 = MEM[(long int *)D.98440];
              iftmp.12 = (sizetype) D.98441;
              goto <D.98442>;
              <D.98438>:
              iftmp.12 = 8;
              <D.98442>:
              D.98443 = this + iftmp.12;
              if (1 == 0) goto <D.98445>; else goto <D.98446>;
              <D.98445>:
              iftmp.13 = MEM[(const void * *)0B + 40B];
              goto <D.98447>;
              <D.98446>:
              iftmp.13 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98447>:
              D.98443->_vptr.ObjectBase = iftmp.13;
            }
          catch
            {
              if (1 == 0) goto <D.98449>; else goto <D.98450>;
              <D.98449>:
              iftmp.14 = 8B;
              goto <D.98451>;
              <D.98450>:
              iftmp.14 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98451>:
              D.98430 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98430, iftmp.14);
            }
        }
      catch
        {
          if (1 != 0) goto <D.98452>; else goto <D.98453>;
          <D.98452>:
          if (1 == 0) goto <D.98455>; else goto <D.98456>;
          <D.98455>:
          iftmp.15 = 48B;
          goto <D.98457>;
          <D.98456>:
          iftmp.15 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98457>:
          D.98424 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98424, iftmp.15);
          goto <D.98458>;
          <D.98453>:
          <D.98458>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.98459>; else goto <D.98460>;
      <D.98459>:
      D.98416 = &this->D.86609;
      sigc::trackable::~trackable (D.98416);
      goto <D.98461>;
      <D.98460>:
      <D.98461>:
    }
}


Gio::Menu::Menu(GMenu*) (struct Menu * const this, const void * * __vtt_parm, struct GMenu * castitem)
{
  struct trackable * D.98466;
  const void * * iftmp.16;
  struct ObjectBase * D.98474;
  const void * * iftmp.17;
  struct MenuModel * D.98480;
  int (*__vtbl_ptr_type) () * iftmp.18;
  sizetype iftmp.19;
  int (*__vtbl_ptr_type) () * D.98488;
  int (*__vtbl_ptr_type) () * D.98489;
  long int D.98490;
  struct ObjectBase * D.98492;
  int (*__vtbl_ptr_type) () * iftmp.20;
  const void * * iftmp.21;
  const void * * iftmp.22;

  if (0 != 0) goto <D.98464>; else goto <D.98465>;
  <D.98464>:
  D.98466 = &this->D.86609;
  sigc::trackable::trackable (D.98466);
  goto <D.98467>;
  <D.98465>:
  <D.98467>:
  try
    {
      if (0 != 0) goto <D.98468>; else goto <D.98469>;
      <D.98468>:
      if (0 == 0) goto <D.98471>; else goto <D.98472>;
      <D.98471>:
      iftmp.16 = __vtt_parm + 48;
      goto <D.98473>;
      <D.98472>:
      iftmp.16 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98473>:
      D.98474 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98474, iftmp.16);
      goto <D.98475>;
      <D.98469>:
      <D.98475>:
      try
        {
          if (0 == 0) goto <D.98477>; else goto <D.98478>;
          <D.98477>:
          iftmp.17 = __vtt_parm + 8;
          goto <D.98479>;
          <D.98478>:
          iftmp.17 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
          <D.98479>:
          D.98480 = &this->D.86606;
          Gio::MenuModel::MenuModel (D.98480, iftmp.17, castitem);
          try
            {
              if (0 == 0) goto <D.98482>; else goto <D.98483>;
              <D.98482>:
              iftmp.18 = *__vtt_parm;
              goto <D.98484>;
              <D.98483>:
              iftmp.18 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98484>:
              this->D.86606.D.86067._vptr.Object = iftmp.18;
              if (0 == 0) goto <D.98486>; else goto <D.98487>;
              <D.98486>:
              D.98488 = this->D.86606.D.86067._vptr.Object;
              D.98489 = D.98488 + 18446744073709551592;
              D.98490 = MEM[(long int *)D.98489];
              iftmp.19 = (sizetype) D.98490;
              goto <D.98491>;
              <D.98487>:
              iftmp.19 = 8;
              <D.98491>:
              D.98492 = this + iftmp.19;
              if (0 == 0) goto <D.98494>; else goto <D.98495>;
              <D.98494>:
              iftmp.20 = MEM[(const void * *)__vtt_parm + 40B];
              goto <D.98496>;
              <D.98495>:
              iftmp.20 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98496>:
              D.98492->_vptr.ObjectBase = iftmp.20;
            }
          catch
            {
              if (0 == 0) goto <D.98498>; else goto <D.98499>;
              <D.98498>:
              iftmp.21 = __vtt_parm + 8;
              goto <D.98500>;
              <D.98499>:
              iftmp.21 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98500>:
              D.98480 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98480, iftmp.21);
            }
        }
      catch
        {
          if (0 != 0) goto <D.98501>; else goto <D.98502>;
          <D.98501>:
          if (0 == 0) goto <D.98504>; else goto <D.98505>;
          <D.98504>:
          iftmp.22 = __vtt_parm + 48;
          goto <D.98506>;
          <D.98505>:
          iftmp.22 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98506>:
          D.98474 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98474, iftmp.22);
          goto <D.98507>;
          <D.98502>:
          <D.98507>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.98508>; else goto <D.98509>;
      <D.98508>:
      D.98466 = &this->D.86609;
      sigc::trackable::~trackable (D.98466);
      goto <D.98510>;
      <D.98509>:
      <D.98510>:
    }
}


Gio::Menu::Menu(GMenu*) (struct Menu * const this, struct GMenu * castitem)
{
  struct trackable * D.98515;
  const void * * iftmp.23;
  struct ObjectBase * D.98523;
  const void * * iftmp.24;
  struct MenuModel * D.98529;
  int (*__vtbl_ptr_type) () * iftmp.25;
  const void * * D.98533;
  sizetype iftmp.26;
  int (*__vtbl_ptr_type) () * D.98538;
  int (*__vtbl_ptr_type) () * D.98539;
  long int D.98540;
  struct ObjectBase * D.98542;
  int (*__vtbl_ptr_type) () * iftmp.27;
  const void * * iftmp.28;
  const void * * iftmp.29;

  if (1 != 0) goto <D.98513>; else goto <D.98514>;
  <D.98513>:
  D.98515 = &this->D.86609;
  sigc::trackable::trackable (D.98515);
  goto <D.98516>;
  <D.98514>:
  <D.98516>:
  try
    {
      if (1 != 0) goto <D.98517>; else goto <D.98518>;
      <D.98517>:
      if (1 == 0) goto <D.98520>; else goto <D.98521>;
      <D.98520>:
      iftmp.23 = 48B;
      goto <D.98522>;
      <D.98521>:
      iftmp.23 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98522>:
      D.98523 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98523, iftmp.23);
      goto <D.98524>;
      <D.98518>:
      <D.98524>:
      try
        {
          if (1 == 0) goto <D.98526>; else goto <D.98527>;
          <D.98526>:
          iftmp.24 = 8B;
          goto <D.98528>;
          <D.98527>:
          iftmp.24 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
          <D.98528>:
          D.98529 = &this->D.86606;
          Gio::MenuModel::MenuModel (D.98529, iftmp.24, castitem);
          try
            {
              if (1 == 0) goto <D.98531>; else goto <D.98532>;
              <D.98531>:
              D.98533 = 0B;
              iftmp.25 = *D.98533;
              goto <D.98534>;
              <D.98532>:
              iftmp.25 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98534>:
              this->D.86606.D.86067._vptr.Object = iftmp.25;
              if (1 == 0) goto <D.98536>; else goto <D.98537>;
              <D.98536>:
              D.98538 = this->D.86606.D.86067._vptr.Object;
              D.98539 = D.98538 + 18446744073709551592;
              D.98540 = MEM[(long int *)D.98539];
              iftmp.26 = (sizetype) D.98540;
              goto <D.98541>;
              <D.98537>:
              iftmp.26 = 8;
              <D.98541>:
              D.98542 = this + iftmp.26;
              if (1 == 0) goto <D.98544>; else goto <D.98545>;
              <D.98544>:
              iftmp.27 = MEM[(const void * *)0B + 40B];
              goto <D.98546>;
              <D.98545>:
              iftmp.27 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98546>:
              D.98542->_vptr.ObjectBase = iftmp.27;
            }
          catch
            {
              if (1 == 0) goto <D.98548>; else goto <D.98549>;
              <D.98548>:
              iftmp.28 = 8B;
              goto <D.98550>;
              <D.98549>:
              iftmp.28 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98550>:
              D.98529 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98529, iftmp.28);
            }
        }
      catch
        {
          if (1 != 0) goto <D.98551>; else goto <D.98552>;
          <D.98551>:
          if (1 == 0) goto <D.98554>; else goto <D.98555>;
          <D.98554>:
          iftmp.29 = 48B;
          goto <D.98556>;
          <D.98555>:
          iftmp.29 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98556>:
          D.98523 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98523, iftmp.29);
          goto <D.98557>;
          <D.98552>:
          <D.98557>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.98558>; else goto <D.98559>;
      <D.98558>:
      D.98515 = &this->D.86609;
      sigc::trackable::~trackable (D.98515);
      goto <D.98560>;
      <D.98559>:
      <D.98560>:
    }
}


Gio::Menu::~Menu() (struct Menu * const this, const void * * __vtt_parm)
{
  int (*__vtbl_ptr_type) () * iftmp.30;
  sizetype iftmp.31;
  int (*__vtbl_ptr_type) () * D.98570;
  int (*__vtbl_ptr_type) () * D.98571;
  long int D.98572;
  struct ObjectBase * D.98574;
  int (*__vtbl_ptr_type) () * iftmp.32;
  const void * * iftmp.33;
  struct MenuModel * D.98583;
  int D.98584;
  const void * * iftmp.34;
  struct ObjectBase * D.98591;
  struct trackable * D.98595;
  int D.98597;

  {
    if (0 == 0) goto <D.98564>; else goto <D.98565>;
    <D.98564>:
    iftmp.30 = *__vtt_parm;
    goto <D.98566>;
    <D.98565>:
    iftmp.30 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
    <D.98566>:
    this->D.86606.D.86067._vptr.Object = iftmp.30;
    if (0 == 0) goto <D.98568>; else goto <D.98569>;
    <D.98568>:
    D.98570 = this->D.86606.D.86067._vptr.Object;
    D.98571 = D.98570 + 18446744073709551592;
    D.98572 = MEM[(long int *)D.98571];
    iftmp.31 = (sizetype) D.98572;
    goto <D.98573>;
    <D.98569>:
    iftmp.31 = 8;
    <D.98573>:
    D.98574 = this + iftmp.31;
    if (0 == 0) goto <D.98576>; else goto <D.98577>;
    <D.98576>:
    iftmp.32 = MEM[(const void * *)__vtt_parm + 40B];
    goto <D.98578>;
    <D.98577>:
    iftmp.32 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
    <D.98578>:
    D.98574->_vptr.ObjectBase = iftmp.32;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (0 == 0) goto <D.98580>; else goto <D.98581>;
                    <D.98580>:
                    iftmp.33 = __vtt_parm + 8;
                    goto <D.98582>;
                    <D.98581>:
                    iftmp.33 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
                    <D.98582>:
                    D.98583 = &this->D.86606;
                    Gio::MenuModel::~MenuModel (D.98583, iftmp.33);
                  }
              }
            finally
              {
                D.98584 = 0;
                if (D.98584 != 0) goto <D.98585>; else goto <D.98586>;
                <D.98585>:
                if (0 == 0) goto <D.98588>; else goto <D.98589>;
                <D.98588>:
                iftmp.34 = __vtt_parm + 48;
                goto <D.98590>;
                <D.98589>:
                iftmp.34 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
                <D.98590>:
                D.98591 = &this->D.86608;
                Glib::ObjectBase::~ObjectBase (D.98591, iftmp.34);
                goto <D.98592>;
                <D.98586>:
                <D.98592>:
              }
          }
        finally
          {
            D.98584 = 0;
            if (D.98584 != 0) goto <D.98593>; else goto <D.98594>;
            <D.98593>:
            D.98595 = &this->D.86609;
            sigc::trackable::~trackable (D.98595);
            goto <D.98596>;
            <D.98594>:
            <D.98596>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.97269>:
  D.98597 = 0;
  if (D.98597 != 0) goto <D.98598>; else goto <D.98599>;
  <D.98598>:
  operator delete (this);
  goto <D.98600>;
  <D.98599>:
  <D.98600>:
}


virtual Gio::Menu::~Menu() (struct Menu * const this)
{
  int (*__vtbl_ptr_type) () * iftmp.35;
  const void * * D.98616;
  sizetype iftmp.36;
  int (*__vtbl_ptr_type) () * D.98621;
  int (*__vtbl_ptr_type) () * D.98622;
  long int D.98623;
  struct ObjectBase * D.98625;
  int (*__vtbl_ptr_type) () * iftmp.37;
  const void * * iftmp.38;
  struct MenuModel * D.98634;
  int D.98635;
  const void * * iftmp.39;
  struct ObjectBase * D.98642;
  struct trackable * D.98646;
  int D.98648;

  {
    if (2 == 0) goto <D.98614>; else goto <D.98615>;
    <D.98614>:
    D.98616 = 0B;
    iftmp.35 = *D.98616;
    goto <D.98617>;
    <D.98615>:
    iftmp.35 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
    <D.98617>:
    this->D.86606.D.86067._vptr.Object = iftmp.35;
    if (2 == 0) goto <D.98619>; else goto <D.98620>;
    <D.98619>:
    D.98621 = this->D.86606.D.86067._vptr.Object;
    D.98622 = D.98621 + 18446744073709551592;
    D.98623 = MEM[(long int *)D.98622];
    iftmp.36 = (sizetype) D.98623;
    goto <D.98624>;
    <D.98620>:
    iftmp.36 = 8;
    <D.98624>:
    D.98625 = this + iftmp.36;
    if (2 == 0) goto <D.98627>; else goto <D.98628>;
    <D.98627>:
    iftmp.37 = MEM[(const void * *)0B + 40B];
    goto <D.98629>;
    <D.98628>:
    iftmp.37 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
    <D.98629>:
    D.98625->_vptr.ObjectBase = iftmp.37;
    try
      {
        try
          {
            try
              {
                try
                  {

                  }
                finally
                  {
                    if (2 == 0) goto <D.98631>; else goto <D.98632>;
                    <D.98631>:
                    iftmp.38 = 8B;
                    goto <D.98633>;
                    <D.98632>:
                    iftmp.38 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
                    <D.98633>:
                    D.98634 = &this->D.86606;
                    Gio::MenuModel::~MenuModel (D.98634, iftmp.38);
                  }
              }
            finally
              {
                D.98635 = 2;
                if (D.98635 != 0) goto <D.98636>; else goto <D.98637>;
                <D.98636>:
                if (2 == 0) goto <D.98639>; else goto <D.98640>;
                <D.98639>:
                iftmp.39 = 48B;
                goto <D.98641>;
                <D.98640>:
                iftmp.39 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
                <D.98641>:
                D.98642 = &this->D.86608;
                Glib::ObjectBase::~ObjectBase (D.98642, iftmp.39);
                goto <D.98643>;
                <D.98637>:
                <D.98643>:
              }
          }
        finally
          {
            D.98635 = 2;
            if (D.98635 != 0) goto <D.98644>; else goto <D.98645>;
            <D.98644>:
            D.98646 = &this->D.86609;
            sigc::trackable::~trackable (D.98646);
            goto <D.98647>;
            <D.98645>:
            <D.98647>:
          }
      }
    finally
      {
        *this = {CLOBBER};
      }
  }
  <D.97272>:
  D.98648 = 0;
  if (D.98648 != 0) goto <D.98649>; else goto <D.98650>;
  <D.98649>:
  operator delete (this);
  goto <D.98651>;
  <D.98650>:
  <D.98651>:
}


virtual Gio::Menu::~Menu() (struct Menu * const this)
{
  Gio::Menu::~Menu (this);
  <D.97277>:
  operator delete (this);
}


static GType Gio::Menu::get_type() ()
{
  GType D.98664;
  const struct Class & D.98665;

  D.98665 = Gio::Menu_Class::init (&menu_class_);
  D.98664 = Glib::Class::get_type (D.98665);
  return D.98664;
}


GType Glib::Class::get_type() const (const struct Class * const this)
{
  GType D.98668;

  D.98668 = this->gtype_;
  return D.98668;
}


static GType Gio::Menu::get_base_type() ()
{
  GType D.98670;

  D.98670 = g_menu_get_type ();
  return D.98670;
}


Gio::Menu::Menu() (struct Menu * const this, const void * * __vtt_parm)
{
  struct trackable * D.98675;
  const void * * iftmp.40;
  struct ObjectBase * D.98683;
  struct ConstructParams D.97295;
  const struct Class & D.98685;
  const void * * iftmp.41;
  struct MenuModel * D.98690;
  int (*__vtbl_ptr_type) () * iftmp.42;
  sizetype iftmp.43;
  int (*__vtbl_ptr_type) () * D.98698;
  int (*__vtbl_ptr_type) () * D.98699;
  long int D.98700;
  struct ObjectBase * D.98702;
  int (*__vtbl_ptr_type) () * iftmp.44;
  const void * * iftmp.45;
  const void * * iftmp.46;

  if (0 != 0) goto <D.98673>; else goto <D.98674>;
  <D.98673>:
  D.98675 = &this->D.86609;
  sigc::trackable::trackable (D.98675);
  goto <D.98676>;
  <D.98674>:
  <D.98676>:
  try
    {
      if (0 != 0) goto <D.98677>; else goto <D.98678>;
      <D.98677>:
      if (0 == 0) goto <D.98680>; else goto <D.98681>;
      <D.98680>:
      iftmp.40 = __vtt_parm + 48;
      goto <D.98682>;
      <D.98681>:
      iftmp.40 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98682>:
      D.98683 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98683, iftmp.40, 0B);
      goto <D.98684>;
      <D.98678>:
      <D.98684>:
      try
        {
          D.98685 = Gio::Menu_Class::init (&menu_class_);
          Glib::ConstructParams::ConstructParams (&D.97295, D.98685);
          try
            {
              if (0 == 0) goto <D.98687>; else goto <D.98688>;
              <D.98687>:
              iftmp.41 = __vtt_parm + 8;
              goto <D.98689>;
              <D.98688>:
              iftmp.41 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98689>:
              D.98690 = &this->D.86606;
              Gio::MenuModel::MenuModel (D.98690, iftmp.41, &D.97295);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.97295);
              D.97295 = {CLOBBER};
            }
          try
            {
              if (0 == 0) goto <D.98692>; else goto <D.98693>;
              <D.98692>:
              iftmp.42 = *__vtt_parm;
              goto <D.98694>;
              <D.98693>:
              iftmp.42 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98694>:
              this->D.86606.D.86067._vptr.Object = iftmp.42;
              if (0 == 0) goto <D.98696>; else goto <D.98697>;
              <D.98696>:
              D.98698 = this->D.86606.D.86067._vptr.Object;
              D.98699 = D.98698 + 18446744073709551592;
              D.98700 = MEM[(long int *)D.98699];
              iftmp.43 = (sizetype) D.98700;
              goto <D.98701>;
              <D.98697>:
              iftmp.43 = 8;
              <D.98701>:
              D.98702 = this + iftmp.43;
              if (0 == 0) goto <D.98704>; else goto <D.98705>;
              <D.98704>:
              iftmp.44 = MEM[(const void * *)__vtt_parm + 40B];
              goto <D.98706>;
              <D.98705>:
              iftmp.44 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98706>:
              D.98702->_vptr.ObjectBase = iftmp.44;
            }
          catch
            {
              if (0 == 0) goto <D.98708>; else goto <D.98709>;
              <D.98708>:
              iftmp.45 = __vtt_parm + 8;
              goto <D.98710>;
              <D.98709>:
              iftmp.45 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98710>:
              D.98690 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98690, iftmp.45);
            }
        }
      catch
        {
          if (0 != 0) goto <D.98711>; else goto <D.98712>;
          <D.98711>:
          if (0 == 0) goto <D.98714>; else goto <D.98715>;
          <D.98714>:
          iftmp.46 = __vtt_parm + 48;
          goto <D.98716>;
          <D.98715>:
          iftmp.46 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98716>:
          D.98683 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98683, iftmp.46);
          goto <D.98717>;
          <D.98712>:
          <D.98717>:
        }
    }
  catch
    {
      if (0 != 0) goto <D.98718>; else goto <D.98719>;
      <D.98718>:
      D.98675 = &this->D.86609;
      sigc::trackable::~trackable (D.98675);
      goto <D.98720>;
      <D.98719>:
      <D.98720>:
    }
}


Gio::Menu::Menu() (struct Menu * const this)
{
  struct trackable * D.98727;
  const void * * iftmp.47;
  struct ObjectBase * D.98735;
  struct ConstructParams D.97297;
  const struct Class & D.98737;
  const void * * iftmp.48;
  struct MenuModel * D.98742;
  int (*__vtbl_ptr_type) () * iftmp.49;
  const void * * D.98746;
  sizetype iftmp.50;
  int (*__vtbl_ptr_type) () * D.98751;
  int (*__vtbl_ptr_type) () * D.98752;
  long int D.98753;
  struct ObjectBase * D.98755;
  int (*__vtbl_ptr_type) () * iftmp.51;
  const void * * iftmp.52;
  const void * * iftmp.53;

  if (1 != 0) goto <D.98725>; else goto <D.98726>;
  <D.98725>:
  D.98727 = &this->D.86609;
  sigc::trackable::trackable (D.98727);
  goto <D.98728>;
  <D.98726>:
  <D.98728>:
  try
    {
      if (1 != 0) goto <D.98729>; else goto <D.98730>;
      <D.98729>:
      if (1 == 0) goto <D.98732>; else goto <D.98733>;
      <D.98732>:
      iftmp.47 = 48B;
      goto <D.98734>;
      <D.98733>:
      iftmp.47 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
      <D.98734>:
      D.98735 = &this->D.86608;
      Glib::ObjectBase::ObjectBase (D.98735, iftmp.47, 0B);
      goto <D.98736>;
      <D.98730>:
      <D.98736>:
      try
        {
          D.98737 = Gio::Menu_Class::init (&menu_class_);
          Glib::ConstructParams::ConstructParams (&D.97297, D.98737);
          try
            {
              if (1 == 0) goto <D.98739>; else goto <D.98740>;
              <D.98739>:
              iftmp.48 = 8B;
              goto <D.98741>;
              <D.98740>:
              iftmp.48 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98741>:
              D.98742 = &this->D.86606;
              Gio::MenuModel::MenuModel (D.98742, iftmp.48, &D.97297);
            }
          finally
            {
              Glib::ConstructParams::~ConstructParams (&D.97297);
              D.97297 = {CLOBBER};
            }
          try
            {
              if (1 == 0) goto <D.98744>; else goto <D.98745>;
              <D.98744>:
              D.98746 = 0B;
              iftmp.49 = *D.98746;
              goto <D.98747>;
              <D.98745>:
              iftmp.49 = &MEM[(void *)&_ZTVN3Gio4MenuE + 32B];
              <D.98747>:
              this->D.86606.D.86067._vptr.Object = iftmp.49;
              if (1 == 0) goto <D.98749>; else goto <D.98750>;
              <D.98749>:
              D.98751 = this->D.86606.D.86067._vptr.Object;
              D.98752 = D.98751 + 18446744073709551592;
              D.98753 = MEM[(long int *)D.98752];
              iftmp.50 = (sizetype) D.98753;
              goto <D.98754>;
              <D.98750>:
              iftmp.50 = 8;
              <D.98754>:
              D.98755 = this + iftmp.50;
              if (1 == 0) goto <D.98757>; else goto <D.98758>;
              <D.98757>:
              iftmp.51 = MEM[(const void * *)0B + 40B];
              goto <D.98759>;
              <D.98758>:
              iftmp.51 = &MEM[(void *)&_ZTVN3Gio4MenuE + 112B];
              <D.98759>:
              D.98755->_vptr.ObjectBase = iftmp.51;
            }
          catch
            {
              if (1 == 0) goto <D.98761>; else goto <D.98762>;
              <D.98761>:
              iftmp.52 = 8B;
              goto <D.98763>;
              <D.98762>:
              iftmp.52 = &MEM[(void *)&_ZTTN3Gio4MenuE + 8B];
              <D.98763>:
              D.98742 = &this->D.86606;
              Gio::MenuModel::~MenuModel (D.98742, iftmp.52);
            }
        }
      catch
        {
          if (1 != 0) goto <D.98764>; else goto <D.98765>;
          <D.98764>:
          if (1 == 0) goto <D.98767>; else goto <D.98768>;
          <D.98767>:
          iftmp.53 = 48B;
          goto <D.98769>;
          <D.98768>:
          iftmp.53 = &MEM[(void *)&_ZTTN3Gio4MenuE + 48B];
          <D.98769>:
          D.98735 = &this->D.86608;
          Glib::ObjectBase::~ObjectBase (D.98735, iftmp.53);
          goto <D.98770>;
          <D.98765>:
          <D.98770>:
        }
    }
  catch
    {
      if (1 != 0) goto <D.98771>; else goto <D.98772>;
      <D.98771>:
      D.98727 = &this->D.86609;
      sigc::trackable::~trackable (D.98727);
      goto <D.98773>;
      <D.98772>:
      <D.98773>:
    }
}


static Glib::RefPtr<Gio::Menu> Gio::Menu::create() ()
{
  void * D.97301;

  D.97301 = operator new (48);
  try
    {
      Gio::Menu::Menu (D.97301);
    }
  catch
    {
      operator delete (D.97301);
    }
  Glib::RefPtr<Gio::Menu>::RefPtr (<retval>, D.97301);
  return <retval>;
}


void Gio::Menu::freeze() (struct Menu * const this)
{
  struct GMenu * D.98782;

  D.98782 = Gio::Menu::gobj (this);
  g_menu_freeze (D.98782);
}


void Gio::Menu::insert_item(int, const Glib::RefPtr<Gio::MenuItem>&) (struct Menu * const this, int position, const struct RefPtr & item)
{
  struct BaseObjectType * D.98783;
  struct GMenu * D.98784;

  D.98783 = Glib::unwrap<Gio::MenuItem> (item);
  D.98784 = Gio::Menu::gobj (this);
  g_menu_insert_item (D.98784, position, D.98783);
}


typename T::BaseObjectType* Glib::unwrap(const Glib::RefPtr<T_CppObject>&) [with T = Gio::MenuItem; typename T::BaseObjectType = _GMenuItem] (const struct RefPtr & ptr)
{
  struct BaseObjectType * D.98786;
  struct BaseObjectType * iftmp.54;
  bool D.98788;
  struct MenuItem * D.98791;

  D.98788 = Glib::RefPtr<Gio::MenuItem>::operator bool (ptr);
  if (D.98788 != 0) goto <D.98789>; else goto <D.98790>;
  <D.98789>:
  D.98791 = Glib::RefPtr<Gio::MenuItem>::operator-> (ptr);
  iftmp.54 = Gio::MenuItem::gobj (D.98791);
  goto <D.98792>;
  <D.98790>:
  iftmp.54 = 0B;
  <D.98792>:
  D.98786 = iftmp.54;
  return D.98786;
}


Glib::RefPtr<T_CppObject>::operator bool() const [with T_CppObject = Gio::MenuItem] (const struct RefPtr * const this)
{
  bool D.98794;
  struct MenuItem * D.98795;

  D.98795 = this->pCppObject_;
  D.98794 = D.98795 != 0B;
  return D.98794;
}


T_CppObject* Glib::RefPtr<T_CppObject>::operator->() const [with T_CppObject = Gio::MenuItem] (const struct RefPtr * const this)
{
  struct MenuItem * D.98797;

  D.98797 = this->pCppObject_;
  return D.98797;
}


GMenuItem* Gio::MenuItem::gobj() (struct MenuItem * const this)
{
  struct GMenuItem * D.98799;
  int (*__vtbl_ptr_type) () * D.98800;
  int (*__vtbl_ptr_type) () * D.98801;
  long int D.98802;
  sizetype D.98803;
  struct ObjectBase * D.98804;

  D.98800 = this->D.86414._vptr.Object;
  D.98801 = D.98800 + 18446744073709551592;
  D.98802 = MEM[(long int *)D.98801];
  D.98803 = (sizetype) D.98802;
  D.98804 = this + D.98803;
  D.98799 = D.98804->gobject_;
  return D.98799;
}


void Gio::Menu::prepend_item(const Glib::RefPtr<Gio::MenuItem>&) (struct Menu * const this, const struct RefPtr & item)
{
  struct BaseObjectType * D.98806;
  struct GMenu * D.98807;

  D.98806 = Glib::unwrap<Gio::MenuItem> (item);
  D.98807 = Gio::Menu::gobj (this);
  g_menu_prepend_item (D.98807, D.98806);
}


void Gio::Menu::append_item(const Glib::RefPtr<Gio::MenuItem>&) (struct Menu * const this, const struct RefPtr & item)
{
  struct BaseObjectType * D.98809;
  struct GMenu * D.98810;

  D.98809 = Glib::unwrap<Gio::MenuItem> (item);
  D.98810 = Gio::Menu::gobj (this);
  g_menu_append_item (D.98810, D.98809);
}


void Gio::Menu::remove(int) (struct Menu * const this, int position)
{
  struct GMenu * D.98812;

  D.98812 = Gio::Menu::gobj (this);
  g_menu_remove (D.98812, position);
}


void Gio::Menu::remove_all() (struct Menu * const this)
{
  struct GMenu * D.98813;

  D.98813 = Gio::Menu::gobj (this);
  g_menu_remove_all (D.98813);
}


void Gio::Menu::insert(int, const Glib::ustring&, const Glib::ustring&) (struct Menu * const this, int position, const struct ustring & label, const struct ustring & detailed_action)
{
  const char * iftmp.55;
  bool D.98815;
  const char * D.98819;
  struct GMenu * D.98820;

  D.98815 = Glib::ustring::empty (detailed_action);
  if (D.98815 != 0) goto <D.98816>; else goto <D.98817>;
  <D.98816>:
  iftmp.55 = 0B;
  goto <D.98818>;
  <D.98817>:
  iftmp.55 = Glib::ustring::c_str (detailed_action);
  <D.98818>:
  D.98819 = Glib::ustring::c_str (label);
  D.98820 = Gio::Menu::gobj (this);
  g_menu_insert (D.98820, position, D.98819, iftmp.55);
}


void Gio::Menu::insert(int, const Glib::ustring&) (struct Menu * const this, int position, const struct ustring & label)
{
  const char * D.98824;
  struct GMenu * D.98825;

  D.98824 = Glib::ustring::c_str (label);
  D.98825 = Gio::Menu::gobj (this);
  g_menu_insert (D.98825, position, D.98824, 0B);
}


void Gio::Menu::prepend(const Glib::ustring&, const Glib::ustring&) (struct Menu * const this, const struct ustring & label, const struct ustring & detailed_action)
{
  const char * iftmp.56;
  bool D.98828;
  const char * D.98832;
  struct GMenu * D.98833;

  D.98828 = Glib::ustring::empty (detailed_action);
  if (D.98828 != 0) goto <D.98829>; else goto <D.98830>;
  <D.98829>:
  iftmp.56 = 0B;
  goto <D.98831>;
  <D.98830>:
  iftmp.56 = Glib::ustring::c_str (detailed_action);
  <D.98831>:
  D.98832 = Glib::ustring::c_str (label);
  D.98833 = Gio::Menu::gobj (this);
  g_menu_prepend (D.98833, D.98832, iftmp.56);
}


void Gio::Menu::prepend(const Glib::ustring&) (struct Menu * const this, const struct ustring & label)
{
  const char * D.98837;
  struct GMenu * D.98838;

  D.98837 = Glib::ustring::c_str (label);
  D.98838 = Gio::Menu::gobj (this);
  g_menu_prepend (D.98838, D.98837, 0B);
}


void Gio::Menu::append(const Glib::ustring&, const Glib::ustring&) (struct Menu * const this, const struct ustring & label, const struct ustring & detailed_action)
{
  const char * iftmp.57;
  bool D.98841;
  const char * D.98845;
  struct GMenu * D.98846;

  D.98841 = Glib::ustring::empty (detailed_action);
  if (D.98841 != 0) goto <D.98842>; else goto <D.98843>;
  <D.98842>:
  iftmp.57 = 0B;
  goto <D.98844>;
  <D.98843>:
  iftmp.57 = Glib::ustring::c_str (detailed_action);
  <D.98844>:
  D.98845 = Glib::ustring::c_str (label);
  D.98846 = Gio::Menu::gobj (this);
  g_menu_append (D.98846, D.98845, iftmp.57);
}


void Gio::Menu::append(const Glib::ustring&) (struct Menu * const this, const struct ustring & label)
{
  const char * D.98850;
  struct GMenu * D.98851;

  D.98850 = Glib::ustring::c_str (label);
  D.98851 = Gio::Menu::gobj (this);
  g_menu_append (D.98851, D.98850, 0B);
}


void Gio::Menu::insert_section(int, const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, int position, const struct ustring & label, const struct RefPtr & section)
{
  struct BaseObjectType * D.98853;
  const char * iftmp.58;
  bool D.98855;
  struct GMenu * D.98859;

  D.98853 = Glib::unwrap<Gio::MenuModel> (section);
  D.98855 = Glib::ustring::empty (label);
  if (D.98855 != 0) goto <D.98856>; else goto <D.98857>;
  <D.98856>:
  iftmp.58 = 0B;
  goto <D.98858>;
  <D.98857>:
  iftmp.58 = Glib::ustring::c_str (label);
  <D.98858>:
  D.98859 = Gio::Menu::gobj (this);
  g_menu_insert_section (D.98859, position, iftmp.58, D.98853);
}


typename T::BaseObjectType* Glib::unwrap(const Glib::RefPtr<T_CppObject>&) [with T = Gio::MenuModel; typename T::BaseObjectType = _GMenuModel] (const struct RefPtr & ptr)
{
  struct BaseObjectType * D.98863;
  struct BaseObjectType * iftmp.59;
  bool D.98865;
  struct MenuModel * D.98868;

  D.98865 = Glib::RefPtr<Gio::MenuModel>::operator bool (ptr);
  if (D.98865 != 0) goto <D.98866>; else goto <D.98867>;
  <D.98866>:
  D.98868 = Glib::RefPtr<Gio::MenuModel>::operator-> (ptr);
  iftmp.59 = Gio::MenuModel::gobj (D.98868);
  goto <D.98869>;
  <D.98867>:
  iftmp.59 = 0B;
  <D.98869>:
  D.98863 = iftmp.59;
  return D.98863;
}


Glib::RefPtr<T_CppObject>::operator bool() const [with T_CppObject = Gio::MenuModel] (const struct RefPtr * const this)
{
  bool D.98871;
  struct MenuModel * D.98872;

  D.98872 = this->pCppObject_;
  D.98871 = D.98872 != 0B;
  return D.98871;
}


T_CppObject* Glib::RefPtr<T_CppObject>::operator->() const [with T_CppObject = Gio::MenuModel] (const struct RefPtr * const this)
{
  struct MenuModel * D.98874;

  D.98874 = this->pCppObject_;
  return D.98874;
}


GMenuModel* Gio::MenuModel::gobj() (struct MenuModel * const this)
{
  struct GMenuModel * D.98876;
  int (*__vtbl_ptr_type) () * D.98877;
  int (*__vtbl_ptr_type) () * D.98878;
  long int D.98879;
  sizetype D.98880;
  struct ObjectBase * D.98881;

  D.98877 = this->D.86067._vptr.Object;
  D.98878 = D.98877 + 18446744073709551592;
  D.98879 = MEM[(long int *)D.98878];
  D.98880 = (sizetype) D.98879;
  D.98881 = this + D.98880;
  D.98876 = D.98881->gobject_;
  return D.98876;
}


void Gio::Menu::insert_section(int, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, int position, const struct RefPtr & section)
{
  struct BaseObjectType * D.98883;
  struct GMenu * D.98884;

  D.98883 = Glib::unwrap<Gio::MenuModel> (section);
  D.98884 = Gio::Menu::gobj (this);
  g_menu_insert_section (D.98884, position, 0B, D.98883);
}


void Gio::Menu::prepend_section(const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct ustring & label, const struct RefPtr & section)
{
  struct BaseObjectType * D.98886;
  const char * iftmp.60;
  bool D.98888;
  struct GMenu * D.98892;

  D.98886 = Glib::unwrap<Gio::MenuModel> (section);
  D.98888 = Glib::ustring::empty (label);
  if (D.98888 != 0) goto <D.98889>; else goto <D.98890>;
  <D.98889>:
  iftmp.60 = 0B;
  goto <D.98891>;
  <D.98890>:
  iftmp.60 = Glib::ustring::c_str (label);
  <D.98891>:
  D.98892 = Gio::Menu::gobj (this);
  g_menu_prepend_section (D.98892, iftmp.60, D.98886);
}


void Gio::Menu::prepend_section(const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct RefPtr & section)
{
  struct BaseObjectType * D.98896;
  struct GMenu * D.98897;

  D.98896 = Glib::unwrap<Gio::MenuModel> (section);
  D.98897 = Gio::Menu::gobj (this);
  g_menu_prepend_section (D.98897, 0B, D.98896);
}


void Gio::Menu::append_section(const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct ustring & label, const struct RefPtr & section)
{
  struct BaseObjectType * D.98899;
  const char * iftmp.61;
  bool D.98901;
  struct GMenu * D.98905;

  D.98899 = Glib::unwrap<Gio::MenuModel> (section);
  D.98901 = Glib::ustring::empty (label);
  if (D.98901 != 0) goto <D.98902>; else goto <D.98903>;
  <D.98902>:
  iftmp.61 = 0B;
  goto <D.98904>;
  <D.98903>:
  iftmp.61 = Glib::ustring::c_str (label);
  <D.98904>:
  D.98905 = Gio::Menu::gobj (this);
  g_menu_append_section (D.98905, iftmp.61, D.98899);
}


void Gio::Menu::append_section(const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct RefPtr & section)
{
  struct BaseObjectType * D.98909;
  struct GMenu * D.98910;

  D.98909 = Glib::unwrap<Gio::MenuModel> (section);
  D.98910 = Gio::Menu::gobj (this);
  g_menu_append_section (D.98910, 0B, D.98909);
}


void Gio::Menu::insert_submenu(int, const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, int position, const struct ustring & label, const struct RefPtr & submenu)
{
  struct BaseObjectType * D.98912;
  const char * D.98913;
  struct GMenu * D.98914;

  D.98912 = Glib::unwrap<Gio::MenuModel> (submenu);
  D.98913 = Glib::ustring::c_str (label);
  D.98914 = Gio::Menu::gobj (this);
  g_menu_insert_submenu (D.98914, position, D.98913, D.98912);
}


void Gio::Menu::prepend_submenu(const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct ustring & label, const struct RefPtr & submenu)
{
  struct BaseObjectType * D.98917;
  const char * D.98918;
  struct GMenu * D.98919;

  D.98917 = Glib::unwrap<Gio::MenuModel> (submenu);
  D.98918 = Glib::ustring::c_str (label);
  D.98919 = Gio::Menu::gobj (this);
  g_menu_prepend_submenu (D.98919, D.98918, D.98917);
}


void Gio::Menu::append_submenu(const Glib::ustring&, const Glib::RefPtr<Gio::MenuModel>&) (struct Menu * const this, const struct ustring & label, const struct RefPtr & submenu)
{
  struct BaseObjectType * D.98922;
  const char * D.98923;
  struct GMenu * D.98924;

  D.98922 = Glib::unwrap<Gio::MenuModel> (submenu);
  D.98923 = Glib::ustring::c_str (label);
  D.98924 = Gio::Menu::gobj (this);
  g_menu_append_submenu (D.98924, D.98923, D.98922);
}


