xref: /haiku/headers/os/add-ons/input_server/InputServerMethod.h (revision a69c16fec5c2d9ec184ec41f7738a3dc52c36863)
1*a69c16feSStephan Aßmus /*
2*a69c16feSStephan Aßmus  * Copyright 2009, Haiku, Inc. All rights reserved.
3*a69c16feSStephan Aßmus  * Distributed under the terms of the MIT License.
4*a69c16feSStephan Aßmus  */
552a38012Sejakowatz #ifndef _INPUTSERVERMETHOD_H
652a38012Sejakowatz #define _INPUTSERVERMETHOD_H
752a38012Sejakowatz 
8*a69c16feSStephan Aßmus 
952a38012Sejakowatz #include <InputServerFilter.h>
1052a38012Sejakowatz 
1152a38012Sejakowatz 
1252a38012Sejakowatz class _BMethodAddOn_;
13123a5980SJérôme Duval class AddOnManager;
14f6e4cbb9SAxel Dörfler class BMenu;
15123a5980SJérôme Duval class InputServer;
1652a38012Sejakowatz 
17*a69c16feSStephan Aßmus 
1852a38012Sejakowatz class BInputServerMethod : public BInputServerFilter {
1952a38012Sejakowatz public:
2052a38012Sejakowatz 								BInputServerMethod(const char* name,
2152a38012Sejakowatz 									const uchar* icon);
2252a38012Sejakowatz 	virtual						~BInputServerMethod();
2352a38012Sejakowatz 
2452a38012Sejakowatz 	virtual	status_t			MethodActivated(bool active);
2552a38012Sejakowatz 
2652a38012Sejakowatz 			status_t			EnqueueMessage(BMessage* message);
2752a38012Sejakowatz 
2852a38012Sejakowatz 			status_t			SetName(const char* name);
2952a38012Sejakowatz 			status_t			SetIcon(const uchar* icon);
30*a69c16feSStephan Aßmus 			status_t			SetMenu(const BMenu* menu,
31*a69c16feSStephan Aßmus 									const BMessenger target);
3252a38012Sejakowatz 
3353b29c4bSJérôme Duval private:
34*a69c16feSStephan Aßmus 	// FBC padding
3552a38012Sejakowatz 	virtual	void				_ReservedInputServerMethod1();
3652a38012Sejakowatz 	virtual	void				_ReservedInputServerMethod2();
3752a38012Sejakowatz 	virtual	void				_ReservedInputServerMethod3();
3852a38012Sejakowatz 	virtual	void				_ReservedInputServerMethod4();
39*a69c16feSStephan Aßmus 
4052a38012Sejakowatz 			uint32				_reserved[4];
41*a69c16feSStephan Aßmus 
42*a69c16feSStephan Aßmus private:
43*a69c16feSStephan Aßmus 			friend class AddOnManager;
44*a69c16feSStephan Aßmus 			friend class InputServer;
45*a69c16feSStephan Aßmus 
46*a69c16feSStephan Aßmus private:
47*a69c16feSStephan Aßmus 			_BMethodAddOn_*		fOwner;
4852a38012Sejakowatz };
4952a38012Sejakowatz 
50*a69c16feSStephan Aßmus #endif // _INPUTSERVERMETHOD_H
51