xref: /haiku/headers/private/interface/BMCPrivate.h (revision f6e4cbb95290a74b33d012600438b84742b0e572)
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