Would it be possible to add methods and/or events to expose the visibility state of Menu instances? For example methods like `Menu#isVisible()` and `Menu#isHidden()` and events like "show" and "hide".
shell/browser/api/atom_api_tray.cc
v8::Local<v8::Value> val,
                     electron::TrayIcon::IconType* out) {
    using IconType = electron::TrayIcon::IconType;
    std::string mode;
    if (ConvertFromV8(isolate, val, &mode)) {
      if (mode == "none") {
        *out = IconType::None;
        return true;
      } else if (mode == "info") {
        *out = IconType::Info;
        return true;
      } else if (mode == "warning") {
        *out = IconType::Warning;
        return true;
      } else if (mode == "error") {
        *out = IconType::Error;
        return true;
      } else if (mode == "custom") {
        *out = IconType::Custom;
        return true;
      }
    }
    return false;
  }
};
}  
namespace electron {
namespace api {
Tray::Tray(gin::Handle<NativeImage> image, gin_helper::Arguments* args)