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.h
}
namespace electron {
class TrayIcon;
namespace api {
class Menu;
class NativeImage;
class Tray : public gin_helper::TrackableObject<Tray>, public TrayIconObserver {
 public:
  static gin_helper::WrappableBase* New(gin_helper::ErrorThrower thrower,
                                        gin::Handle<NativeImage> image,
                                        gin_helper::Arguments* args);
  static void BuildPrototype(v8::Isolate* isolate,
                             v8::Local<v8::FunctionTemplate> prototype);
 protected:
  Tray(gin::Handle<NativeImage> image, gin_helper::Arguments* args);
  ~Tray() override;
  
  void OnClicked(const gfx::Rect& bounds,
                 const gfx::Point& location,
                 int modifiers) override;
  void OnDoubleClicked(const gfx::Rect& bounds, int modifiers) override;
  void OnRightClicked(const gfx::Rect& bounds, int modifiers) override;
  void OnBalloonShow() override;
  void OnBalloonClicked() override;
  void OnBalloonClosed() override;
  void OnDrop() override;
  void OnDropFiles(const std::vector<std::string>& files) override;
  void OnDropText(const std::string& text) override;
  void OnDragEntered() override;
  void OnDragExited() override;