1cd39deccSStefano Ceccherini /* 2*0699a883SStephan Aßmus * Copyright 2001-2009 Haiku, Inc. All rights reserved. 3cd39deccSStefano Ceccherini * Distributed under the terms of the MIT License. 4cd39deccSStefano Ceccherini * 5cd39deccSStefano Ceccherini * Authors: 6cd39deccSStefano Ceccherini * Marc Flerackers (mflerackers@androme.be) 7cd39deccSStefano Ceccherini * Stephan Aßmus <superstippi@gmx.de> 8cd39deccSStefano Ceccherini */ 97ea7a892SMarc Flerackers #ifndef _BMC_PRIVATE_H 107ea7a892SMarc Flerackers #define _BMC_PRIVATE_H 117ea7a892SMarc Flerackers 12f6e4cbb9SAxel Dörfler 137ea7a892SMarc Flerackers #include <BeBuild.h> 147ea7a892SMarc Flerackers #include <MenuBar.h> 157ea7a892SMarc Flerackers #include <MenuItem.h> 16cd39deccSStefano Ceccherini #include <MessageFilter.h> 177ea7a892SMarc Flerackers 18f6e4cbb9SAxel Dörfler class BMessageRunner; 19f6e4cbb9SAxel Dörfler 20f6e4cbb9SAxel Dörfler 21cd39deccSStefano Ceccherini class _BMCFilter_ : public BMessageFilter { 22cd39deccSStefano Ceccherini public: 23cd39deccSStefano Ceccherini _BMCFilter_(BMenuField* menuField, uint32 what); 24f6e4cbb9SAxel Dörfler virtual ~_BMCFilter_(); 25*0699a883SStephan Aßmus 26*0699a883SStephan Aßmus virtual filter_result Filter(BMessage* message, BHandler** handler); 277ea7a892SMarc Flerackers 28cd39deccSStefano Ceccherini private: 29cd39deccSStefano Ceccherini _BMCFilter_& operator=(const _BMCFilter_&); 30*0699a883SStephan Aßmus 31cd39deccSStefano Ceccherini BMenuField* fMenuField; 32cd39deccSStefano Ceccherini }; 33cd39deccSStefano Ceccherini 347ea7a892SMarc Flerackers 357ea7a892SMarc Flerackers class _BMCMenuBar_ : public BMenuBar { 367ea7a892SMarc Flerackers public: 37*0699a883SStephan Aßmus _BMCMenuBar_(BRect frame, bool fixedSize, 38*0699a883SStephan Aßmus BMenuField* menuField); 39*0699a883SStephan Aßmus _BMCMenuBar_(bool fixedSize, 407ea7a892SMarc Flerackers BMenuField* menuField); 417ea7a892SMarc Flerackers _BMCMenuBar_(BMessage* data); 427ea7a892SMarc Flerackers virtual ~_BMCMenuBar_(); 437ea7a892SMarc Flerackers 447ea7a892SMarc Flerackers static BArchivable* Instantiate(BMessage* data); 457ea7a892SMarc Flerackers 467ea7a892SMarc Flerackers virtual void AttachedToWindow(); 472e6a5805SStephan Aßmus virtual void Draw(BRect updateRect); 487ea7a892SMarc Flerackers virtual void FrameResized(float width, float height); 497ea7a892SMarc Flerackers virtual void MessageReceived(BMessage* msg); 507ea7a892SMarc Flerackers virtual void MakeFocus(bool focused = true); 51cd39deccSStefano Ceccherini 52*0699a883SStephan Aßmus void TogglePopUpMarker(bool show) 53*0699a883SStephan Aßmus { fShowPopUpMarker = show; } 54*0699a883SStephan Aßmus bool IsPopUpMarkerShown() const 55*0699a883SStephan Aßmus { return fShowPopUpMarker; } 567ea7a892SMarc Flerackers 57ec592aa9SIngo Weinhold virtual BSize MaxSize(); 58ec592aa9SIngo Weinhold 597ea7a892SMarc Flerackers private: 607ea7a892SMarc Flerackers _BMCMenuBar_&operator=(const _BMCMenuBar_&); 617ea7a892SMarc Flerackers 62*0699a883SStephan Aßmus void _Init(bool setMaxContentWidth); 63*0699a883SStephan Aßmus 647ea7a892SMarc Flerackers BMenuField* fMenuField; 657ea7a892SMarc Flerackers bool fFixedSize; 667ea7a892SMarc Flerackers BMessageRunner* fRunner; 67cd39deccSStefano Ceccherini bool fShowPopUpMarker; 683a38a485SStephan Aßmus float fPreviousWidth; 697ea7a892SMarc Flerackers }; 707ea7a892SMarc Flerackers 717ea7a892SMarc Flerackers #endif // _BMC_PRIVATE_H 72