/* * Copyright 2001-2006, Haiku, Inc. * Distributed under the terms of the MIT License. * * Authors: * Marc Flerackers (mflerackers@androme.be) * Stefano Ceccherini (burton666@libero.it) */ #ifndef __MENUWINDOW_H #define __MENUWINDOW_H #include class BMenu; namespace BPrivate { class BMenuFrame; class BMenuScroller; class BMenuWindow : public BWindow { public: BMenuWindow(const char *name); virtual ~BMenuWindow(); virtual void DispatchMessage(BMessage *message, BHandler *handler); void AttachMenu(BMenu *menu); void DetachMenu(); void AttachScrollers(); void DetachScrollers(); bool CheckForScrolling(const BPoint &cursor); bool TryScrollBy(const float &step); private: BMenu *fMenu; BMenuFrame *fMenuFrame; BMenuScroller *fUpperScroller; BMenuScroller *fLowerScroller; float fValue; float fLimit; bool _Scroll(const BPoint &cursor); void _ScrollBy(const float &step); }; } // namespace BPrivate #endif // __MENUWINDOW_H