2002-03-27 23:44:41 +00:00
|
|
|
/* XGInputServer - Keyboard input handling
|
|
|
|
|
|
|
|
Copyright (C) 2002 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
Author: Adam Fedor <fedor@gnu.org>
|
|
|
|
Date: January 2002
|
|
|
|
|
|
|
|
This file is part of the GNUstep GUI Library.
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or
|
2007-10-29 23:25:10 +00:00
|
|
|
modify it under the terms of the GNU Lesser General Public
|
2002-03-27 23:44:41 +00:00
|
|
|
License as published by the Free Software Foundation; either
|
2007-10-29 23:25:10 +00:00
|
|
|
version 3 of the License, or (at your option) any later version.
|
|
|
|
|
2002-03-27 23:44:41 +00:00
|
|
|
This library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2007-10-29 23:25:10 +00:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Lesser General Public License for more details.
|
2002-03-27 23:44:41 +00:00
|
|
|
|
2007-10-29 23:25:10 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2002-03-27 23:44:41 +00:00
|
|
|
License along with this library; see the file COPYING.LIB.
|
2007-10-29 23:25:10 +00:00
|
|
|
If not, see <http://www.gnu.org/licenses/> or write to the
|
|
|
|
Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
|
|
|
Boston, MA 02110-1301, USA.
|
2002-03-27 23:44:41 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _GNUstep_H_XGInputServer
|
|
|
|
#define _GNUstep_H_XGInputServer
|
|
|
|
|
|
|
|
#include <AppKit/NSInputServer.h>
|
|
|
|
#include <x11/XGServerWindow.h>
|
|
|
|
|
|
|
|
@protocol XInputFiltering
|
|
|
|
- (BOOL) filterEvent: (XEvent *)event;
|
|
|
|
- (NSString *) lookupStringForEvent: (XKeyEvent *)event
|
|
|
|
window: (gswindow_device_t *)window
|
|
|
|
keysym: (KeySym *)keysymptr;
|
|
|
|
@end
|
|
|
|
|
|
|
|
|
|
|
|
@interface XIMInputServer: NSInputServer <XInputFiltering>
|
|
|
|
{
|
|
|
|
id delegate;
|
|
|
|
NSString *server_name;
|
|
|
|
XIM xim;
|
|
|
|
XIMStyle xim_style;
|
|
|
|
NSMutableData *dbuf;
|
|
|
|
NSStringEncoding encoding;
|
2002-09-18 22:34:44 +00:00
|
|
|
|
|
|
|
/* Track the XIC:s and destroy them explicitly to work around an XFree86
|
|
|
|
bug:
|
|
|
|
http://www.xfree86.org/pipermail/xpert/2002-June/018370.html
|
|
|
|
*/
|
|
|
|
XIC *xics;
|
|
|
|
int num_xics;
|
2002-03-27 23:44:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (id) initWithDelegate: (id)aDelegate
|
|
|
|
display: (Display *)dpy
|
|
|
|
name: (NSString *)name;
|
|
|
|
- (void) ximFocusICWindow: (gswindow_device_t *)windev;
|
|
|
|
- (void) ximCloseIC: (XIC)xic;
|
2003-07-22 04:28:43 +00:00
|
|
|
|
2002-03-27 23:44:41 +00:00
|
|
|
@end
|
|
|
|
|
2003-07-22 04:28:43 +00:00
|
|
|
// Public interface for the input methods
|
|
|
|
@interface XIMInputServer (InputMethod)
|
|
|
|
- (NSString *) inputMethodStyle;
|
|
|
|
- (NSString *) fontSize: (int *)size;
|
|
|
|
- (BOOL) clientWindowRect: (NSRect *)rect;
|
|
|
|
|
|
|
|
- (BOOL) statusArea: (NSRect *)rect;
|
|
|
|
- (BOOL) preeditArea: (NSRect *)rect;
|
|
|
|
- (BOOL) preeditSpot: (NSPoint *)p;
|
|
|
|
|
|
|
|
- (BOOL) setStatusArea: (NSRect *)rect;
|
|
|
|
- (BOOL) setPreeditArea: (NSRect *)rect;
|
|
|
|
- (BOOL) setPreeditSpot: (NSPoint *)p;
|
|
|
|
@end // XIMInputServer (InputMethod)
|
|
|
|
|
2002-03-27 23:44:41 +00:00
|
|
|
#endif
|