1/*
2 * Copyright 2009, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _INPUTSERVERMETHOD_H
6#define _INPUTSERVERMETHOD_H
7
8
9#include <InputServerFilter.h>
10
11
12class _BMethodAddOn_;
13class AddOnManager;
14class BMenu;
15class InputServer;
16
17
18class BInputServerMethod : public BInputServerFilter {
19public:
20								BInputServerMethod(const char* name,
21									const uchar* icon);
22	virtual						~BInputServerMethod();
23
24	virtual	status_t			MethodActivated(bool active);
25
26			status_t			EnqueueMessage(BMessage* message);
27
28			status_t			SetName(const char* name);
29			status_t			SetIcon(const uchar* icon);
30			status_t			SetMenu(const BMenu* menu,
31									const BMessenger target);
32
33private:
34	// FBC padding
35	virtual	void				_ReservedInputServerMethod1();
36	virtual	void				_ReservedInputServerMethod2();
37	virtual	void				_ReservedInputServerMethod3();
38	virtual	void				_ReservedInputServerMethod4();
39
40			uint32				_reserved[4];
41
42private:
43			friend class AddOnManager;
44			friend class InputServer;
45
46private:
47			_BMethodAddOn_*		fOwner;
48};
49
50#endif // _INPUTSERVERMETHOD_H
51