xref: /haiku/src/tests/kits/interface/menu/menuworld/PostDispatchInvoker.h (revision 21258e2674226d6aa732321b6f8494841895af5f)
1 //--------------------------------------------------------------------
2 //
3 //	PostDispatchInvoker.h
4 //
5 //	Written by: Owen Smith
6 //
7 //--------------------------------------------------------------------
8 
9 /*
10 	Copyright 1999, Be Incorporated.   All Rights Reserved.
11 	This file may be used under the terms of the Be Sample Code License.
12 */
13 
14 #ifndef _PostDispatchInvoker_h
15 #define _PostDispatchInvoker_h
16 
17 #include <MessageFilter.h>
18 #include <Invoker.h>
19 
20 //====================================================================
21 //	CLASS: PostDispatchInvoker
22 // ---------------------------
23 // A simple kind of message filter which, when it receives a
24 // message of the target type, dispatches it directly to the
25 // looper, then posts a message to a specified handler when
26 // the dispatch is completed. Two fields are appended to the
27 // message before it is delivered:
28 // Dispatched Message	B_MESSAGE_TYPE
29 // Dispatch Target		B_POINTER_TYPE (BHandler*)
30 //
31 // Most message filters are designed to intercept messages
32 // before they're delievered; this one allows you to do some
33 // handling after they've been delivered.
34 
35 class PostDispatchInvoker : public BMessageFilter, public BInvoker
36 {
37 	//----------------------------------------------------------------
38 	//	Constructors, destructors, operators
39 
40 public:
41 					PostDispatchInvoker(uint32 cmdFilter,
42 						BMessage* invokeMsg, BHandler* invokeHandler,
43 						BLooper* invokeLooper = NULL);
44 
45 
46 	//----------------------------------------------------------------
47 	//	Virtual member function overrides
48 
49 public:
50 	filter_result	Filter(BMessage* message, BHandler** target);
51 };
52 
53 #endif /* _PostDispatchInvoker_h */