/* * Copyright 2001-2013 Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Stephan Aßmus, superstippi@gmx.de * Marc Flerackers, mflerackers@androme.be * John Scipione, jscipione@gmail.com */ #ifndef _BMC_PRIVATE_H #define _BMC_PRIVATE_H #include #include #include static const float kVMargin = 2.0f; class _BMCFilter_ : public BMessageFilter { public: _BMCFilter_(BMenuField* menuField, uint32 what); virtual ~_BMCFilter_(); virtual filter_result Filter(BMessage* message, BHandler** handler); private: _BMCFilter_& operator=(const _BMCFilter_&); BMenuField* fMenuField; }; class _BMCMenuBar_ : public BMenuBar { public: _BMCMenuBar_(BRect frame, bool fixedSize, BMenuField* menuField); _BMCMenuBar_(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 MakeFocus(bool focused = true); virtual void MessageReceived(BMessage* message); virtual void SetMaxContentWidth(float width); virtual void SetEnabled(bool enabled); void TogglePopUpMarker(bool show) { fShowPopUpMarker = show; } bool IsPopUpMarkerShown() const { return fShowPopUpMarker; } virtual BSize MinSize(); virtual BSize MaxSize(); private: _BMCMenuBar_&operator=(const _BMCMenuBar_&); void _Init(); BMenuField* fMenuField; bool fFixedSize; bool fShowPopUpMarker; float fPreviousWidth; }; #endif // _BMC_PRIVATE_H