haiku/headers/private/interface/MenuWindow.h

62 lines
1.2 KiB
C++

/*
* Copyright 2001-2009, Haiku, Inc.
* Distributed under the terms of the MIT License.
*
* Authors:
* Marc Flerackers (mflerackers@androme.be)
* Stefano Ceccherini (burton666@libero.it)
*/
#ifndef MENU_WINDOW_H
#define MENU_WINDOW_H
#include <Window.h>
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();
void SetSmallStep(float step);
void GetSteps(float* _smallStep, float* _largeStep) const;
bool HasScrollers() const;
bool CheckForScrolling(const BPoint& cursor);
bool TryScrollBy(const float& step);
bool TryScrollTo(const float& where);
private:
bool _Scroll(const BPoint& cursor);
void _ScrollBy(const float& step);
BMenu* fMenu;
BMenuFrame* fMenuFrame;
BMenuScroller* fUpperScroller;
BMenuScroller* fLowerScroller;
float fScrollStep;
float fValue;
float fLimit;
};
} // namespace BPrivate
#endif // MENU_WINDOW_H