1 /*                                                    -*-objc-*-
2    NSInputServer.h
3 
4    Copyright (C) 2001 Free Software Foundation, Inc.
5 
6    Author: Fred Kiefer <FredKiefer@gmx.de>
7    Date: August 2001
8 
9    This file is part of the GNUstep GUI Library.
10 
11    This library is free software; you can redistribute it and/or
12    modify it under the terms of the GNU Lesser General Public
13    License as published by the Free Software Foundation; either
14    version 2 of the License, or (at your option) any later version.
15 
16    This library is distributed in the hope that it will be useful,
17    but WITHOUT ANY WARRANTY; without even the implied warranty of
18    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
19    Lesser General Public License for more details.
20 
21    You should have received a copy of the GNU Lesser General Public
22    License along with this library; see the file COPYING.LIB.
23    If not, see <http://www.gnu.org/licenses/> or write to the
24    Free Software Foundation, 51 Franklin Street, Fifth Floor,
25    Boston, MA 02110-1301, USA.
26 */
27 
28 #ifndef _GNUstep_H_NSInputServer
29 #define _GNUstep_H_NSInputServer
30 #import <GNUstepBase/GSVersionMacros.h>
31 
32 #import <Foundation/NSGeometry.h>
33 #import <Foundation/NSObject.h>
34 
35 @class NSString;
36 
37 @protocol NSInputServerMouseTracker
38 - (BOOL) mouseDownOnCharacterIndex: (unsigned)index
39 		      atCoordinate: (NSPoint)point
40 		      withModifier: (unsigned int)flags
41 			    client: (id)sender;
42 - (BOOL) mouseDraggedOnCharacterIndex: (unsigned)index
43 			 atCoordinate: (NSPoint)point
44 			 withModifier: (unsigned int)flags
45 			       client: (id)sender;
46 - (void) mouseUpOnCharacterIndex: (unsigned)index
47 		    atCoordinate: (NSPoint)point
48 		    withModifier: (unsigned int)flags
49 			  client: (id)sender;
50 @end
51 
52 @protocol NSInputServiceProvider
53 - (void) activeConversationChanged: (id)sender
54 		 toNewConversation: (long)newConversation;
55 - (void) activeConversationWillChange: (id)sender
56 		  fromOldConversation: (long)oldConversation;
57 - (BOOL) canBeDisabled;
58 - (void) doCommandBySelector: (SEL)aSelector
59 		      client: (id)sender;
60 - (void) inputClientBecomeActive: (id)sender;
61 - (void) inputClientDisabled: (id)sender;
62 - (void) inputClientEnabled: (id)sender;
63 - (void) inputClientResignActive: (id)sender;
64 - (void) insertText: (id)aString
65 	     client: (id)sender;
66 - (void) markedTextAbandoned: (id)sender;
67 - (void) markedTextSelectionChanged: (NSRange)newSelection
68 			     client: (id)sender;
69 - (void) terminate: (id)sender;
70 - (BOOL) wantsToDelayTextChangeNotifications;
71 - (BOOL) wantsToHandleMouseEvents;
72 - (BOOL) wantsToInterpretAllKeystrokes;
73 @end
74 
75 @interface NSInputServer: NSObject <NSInputServerMouseTracker, NSInputServiceProvider>
76 
77 - (id) initWithDelegate: (id)aDelegate
78 		   name: (NSString *)name;
79 @end
80 
81 #endif //_GNUstep_H_NSInputServer
82