1cd39deccSStefano Ceccherini /* 2cd39deccSStefano Ceccherini * Copyright 2001-2006, Haiku, Inc. 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 12*f6e4cbb9SAxel Dörfler 137ea7a892SMarc Flerackers #include <BeBuild.h> 147ea7a892SMarc Flerackers #include <MenuBar.h> 157ea7a892SMarc Flerackers #include <MenuItem.h> 16cd39deccSStefano Ceccherini #include <MessageFilter.h> 177ea7a892SMarc Flerackers 18*f6e4cbb9SAxel Dörfler class BMessageRunner; 19*f6e4cbb9SAxel Dörfler 20*f6e4cbb9SAxel Dörfler 21cd39deccSStefano Ceccherini class _BMCFilter_ : public BMessageFilter { 22cd39deccSStefano Ceccherini public: 23cd39deccSStefano Ceccherini _BMCFilter_(BMenuField *menuField, uint32 what); 24*f6e4cbb9SAxel Dörfler virtual ~_BMCFilter_(); 25cd39deccSStefano Ceccherini filter_result Filter(BMessage *message, BHandler **handler); 267ea7a892SMarc Flerackers 27cd39deccSStefano Ceccherini private: 28cd39deccSStefano Ceccherini _BMCFilter_ &operator=(const _BMCFilter_ &); 29cd39deccSStefano Ceccherini BMenuField *fMenuField; 30cd39deccSStefano Ceccherini }; 31cd39deccSStefano Ceccherini 327ea7a892SMarc Flerackers 337ea7a892SMarc Flerackers class _BMCMenuBar_ : public BMenuBar { 347ea7a892SMarc Flerackers public: 357ea7a892SMarc Flerackers _BMCMenuBar_(BRect frame, bool fixed_size, 367ea7a892SMarc Flerackers BMenuField *menuField); 377ea7a892SMarc Flerackers _BMCMenuBar_(BMessage *data); 387ea7a892SMarc Flerackers virtual ~_BMCMenuBar_(); 397ea7a892SMarc Flerackers 407ea7a892SMarc Flerackers static BArchivable *Instantiate(BMessage *data); 417ea7a892SMarc Flerackers 427ea7a892SMarc Flerackers virtual void AttachedToWindow(); 432e6a5805SStephan Aßmus virtual void Draw(BRect updateRect); 447ea7a892SMarc Flerackers virtual void FrameResized(float width, float height); 457ea7a892SMarc Flerackers virtual void MessageReceived(BMessage* msg); 467ea7a892SMarc Flerackers virtual void MakeFocus(bool focused = true); 47cd39deccSStefano Ceccherini 48cd39deccSStefano Ceccherini void TogglePopUpMarker(bool show) { fShowPopUpMarker = show; } 49cd39deccSStefano Ceccherini bool IsPopUpMarkerShown() const { return fShowPopUpMarker; } 507ea7a892SMarc Flerackers 51ec592aa9SIngo Weinhold virtual BSize MaxSize(); 52ec592aa9SIngo Weinhold 537ea7a892SMarc Flerackers private: 547ea7a892SMarc Flerackers _BMCMenuBar_&operator=(const _BMCMenuBar_ &); 557ea7a892SMarc Flerackers 567ea7a892SMarc Flerackers BMenuField *fMenuField; 577ea7a892SMarc Flerackers bool fFixedSize; 587ea7a892SMarc Flerackers BMessageRunner *fRunner; 59cd39deccSStefano Ceccherini bool fShowPopUpMarker; 603a38a485SStephan Aßmus float fPreviousWidth; 617ea7a892SMarc Flerackers }; 627ea7a892SMarc Flerackers 637ea7a892SMarc Flerackers #endif // _BMC_PRIVATE_H 64