haiku/headers/private/interface/BMCPrivate.h

64 lines
1.4 KiB
C++

/*
* Copyright 2001-2006, Haiku, Inc.
* Distributed under the terms of the MIT License.
*
* Authors:
* Marc Flerackers (mflerackers@androme.be)
* Stephan Aßmus <superstippi@gmx.de>
*/
#ifndef _BMC_PRIVATE_H
#define _BMC_PRIVATE_H
#include <BeBuild.h>
#include <MenuBar.h>
#include <MenuItem.h>
#include <MessageFilter.h>
class BMessageRunner;
class _BMCFilter_ : public BMessageFilter {
public:
_BMCFilter_(BMenuField *menuField, uint32 what);
virtual ~_BMCFilter_();
filter_result Filter(BMessage *message, BHandler **handler);
private:
_BMCFilter_ &operator=(const _BMCFilter_ &);
BMenuField *fMenuField;
};
class _BMCMenuBar_ : public BMenuBar {
public:
_BMCMenuBar_(BRect frame, bool fixed_size,
BMenuField *menuField);
_BMCMenuBar_(BMessage *data);
virtual ~_BMCMenuBar_();
static BArchivable *Instantiate(BMessage *data);
virtual void AttachedToWindow();
virtual void Draw(BRect updateRect);
virtual void FrameResized(float width, float height);
virtual void MessageReceived(BMessage* msg);
virtual void MakeFocus(bool focused = true);
void TogglePopUpMarker(bool show) { fShowPopUpMarker = show; }
bool IsPopUpMarkerShown() const { return fShowPopUpMarker; }
virtual BSize MaxSize();
private:
_BMCMenuBar_&operator=(const _BMCMenuBar_ &);
BMenuField *fMenuField;
bool fFixedSize;
BMessageRunner *fRunner;
bool fShowPopUpMarker;
float fPreviousWidth;
};
#endif // _BMC_PRIVATE_H