summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2004-11-08 23:59:37 +0000
committerSergey Udaltsov <svu@gnome.org>2004-11-08 23:59:37 +0000
commit0d66928c31fd63ecc04e34f66c2507568fb937c4 (patch)
tree6ad919a4cd45e44040bb611f87b56f454af15885
parent461375345a7efe3c8c8122f4a0788b04264fcfbb (diff)
downloadlibxklavier-0d66928c31fd63ecc04e34f66c2507568fb937c4.tar.gz
function are declared for xmm
-rw-r--r--ChangeLog11
-rw-r--r--libxklavier/Makefile.am9
-rw-r--r--libxklavier/xklavier.c5
-rw-r--r--libxklavier/xklavier_config_xkb.c3
-rw-r--r--libxklavier/xklavier_config_xmm.c47
-rw-r--r--libxklavier/xklavier_evt_xmm.c21
-rw-r--r--libxklavier/xklavier_private.h9
-rw-r--r--libxklavier/xklavier_private_xkb.h6
-rw-r--r--libxklavier/xklavier_private_xmm.h38
-rw-r--r--libxklavier/xklavier_xkb.c1
-rwxr-xr-xlibxklavier/xklavier_xmm.c71
11 files changed, 210 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 7d29916..9215dd0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2004-11-04 19:00 svu
+ * libxklavier/Makefile.am,
+ libxklavier/xklavier.c,
+ libxklavier/xklavier_config_xkb.c,
+ libxklavier/xklavier_config_xmm.c,
+ libxklavier/xklavier_evt_xmm.c,
+ libxklavier/xklavier_private_xkb.h,
+ libxklavier/xklavier_private_xmm.h,
+ libxklavier/xklavier_xmm.c: going xmodmappy
+
+2004-11-04 19:00 svu
+
* libxklavier/xklavier_config_i18n.c,
tests/Makefile.am,
tests/test_config.c,
diff --git a/libxklavier/Makefile.am b/libxklavier/Makefile.am
index 8834675..2525209 100644
--- a/libxklavier/Makefile.am
+++ b/libxklavier/Makefile.am
@@ -5,13 +5,16 @@ endif
AM_CFLAGS = -Wall -Werror -DDATA_DIR=\"$(datadir)/$(PACKAGE)\" -I. -I$(includedir) $(XML_CFLAGS) -I$(x_includes) -I$(top_srcdir) $(XKB_HEADERS_PRESENT_CFLAG)
lib_LTLIBRARIES = libxklavier.la
-noinst_HEADERS = xklavier_private.h xklavier_private_xkb.h
+noinst_HEADERS = xklavier_private.h xklavier_private_xkb.h xklavier_private_xmm.h
xklavierincdir = $(includedir)/libxklavier
xklavierinc_HEADERS = xklavier.h xklavier_config.h
-libxklavier_la_SOURCES = xklavier.c xklavier_xkb.c xklavier_evt.c xklavier_evt_xkb.c xklavier_util.c xklavier_config.c xklavier_config_xkb.c xklavier_config_i18n.c xklavier_props.c xklavier_dump.c \
- $(noinst_HEADERS) $(xklavierinc_HEADERS)
+libxklavier_la_SOURCES = xklavier.c xklavier_evt.c xklavier_config.c \
+ xklavier_xkb.c xklavier_evt_xkb.c xklavier_config_xkb.c \
+ xklavier_xmm.c xklavier_evt_xmm.c xklavier_config_xmm.c \
+ xklavier_util.c xklavier_config_i18n.c xklavier_props.c xklavier_dump.c \
+ $(noinst_HEADERS) $(xklavierinc_HEADERS)
libxklavier_la_LDFLAGS = -version-info @VERSION_INFO@ $(XML_LIBS) -lxkbfile -L$(x_libraries) $(LIBICONV)
diff --git a/libxklavier/xklavier.c b/libxklavier/xklavier.c
index 2c1f7b6..1a70046 100644
--- a/libxklavier/xklavier.c
+++ b/libxklavier/xklavier.c
@@ -750,8 +750,3 @@ void _XklFreeAllInfo( void )
_XklEnsureVTableInited();
(*xklVTable->xklFreeAllInfoHandler)();
}
-
-int _XklXmmInit( void )
-{
- return -1;
-}
diff --git a/libxklavier/xklavier_config_xkb.c b/libxklavier/xklavier_config_xkb.c
index 71a3b79..9306f36 100644
--- a/libxklavier/xklavier_config_xkb.c
+++ b/libxklavier/xklavier_config_xkb.c
@@ -14,7 +14,6 @@
#include "config.h"
#include "xklavier_private.h"
-
#include "xklavier_private_xkb.h"
#ifdef XKB_HEADERS_PRESENT
@@ -107,7 +106,7 @@ void _XklXkbConfigInit( void )
#endif
}
-Bool XklConfigLoadRegistry( void )
+Bool _XklXkbConfigLoadRegistry( void )
{
struct stat statBuf;
char fileName[MAXPATHLEN] = "";
diff --git a/libxklavier/xklavier_config_xmm.c b/libxklavier/xklavier_config_xmm.c
new file mode 100644
index 0000000..b8b696f
--- /dev/null
+++ b/libxklavier/xklavier_config_xmm.c
@@ -0,0 +1,47 @@
+#include <errno.h>
+#include <string.h>
+#include <locale.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include <libxml/xpath.h>
+
+#include "config.h"
+
+#include "xklavier_private.h"
+#include "xklavier_private_xmm.h"
+
+#define XK_XKB_KEYS
+#include <X11/keysymdef.h>
+
+void _XklXmmConfigInit( void )
+{
+}
+
+Bool _XklXmmConfigLoadRegistry( void )
+{
+ return False;
+}
+
+// check only client side support
+Bool _XklXmmConfigMultipleLayoutsSupported( void )
+{
+ return False;
+}
+
+Bool _XklXmmConfigActivate( const XklConfigRecPtr data )
+{
+ return False;
+}
+
+Bool _XklXmmConfigWriteFile( const char *fileName,
+ const XklConfigRecPtr data,
+ const Bool binary )
+{
+ return False;
+}
diff --git a/libxklavier/xklavier_evt_xmm.c b/libxklavier/xklavier_evt_xmm.c
new file mode 100644
index 0000000..4a30e79
--- /dev/null
+++ b/libxklavier/xklavier_evt_xmm.c
@@ -0,0 +1,21 @@
+#include <time.h>
+
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xlibint.h>
+
+#include "xklavier_private.h"
+#include "xklavier_private_xmm.h"
+
+/**
+ * XKB event handler
+ */
+int _XklXmmEventHandler( XEvent *xev )
+{
+ return 0;
+}
+
+void _XklXmmSetIndicators( const XklState *windowState )
+{
+}
diff --git a/libxklavier/xklavier_private.h b/libxklavier/xklavier_private.h
index dae7de2..a0af474 100644
--- a/libxklavier/xklavier_private.h
+++ b/libxklavier/xklavier_private.h
@@ -9,6 +9,8 @@ typedef Bool ( *XklConfigActivateHandler )( const XklConfigRecPtr data );
typedef void ( *XklConfigInitHandler )( void );
+typedef Bool ( *XklConfigLoadRegistryHandler )( void );
+
typedef Bool ( *XklConfigMultipleLayoutsSupportedHandler )( void );
typedef Bool ( *XklConfigWriteFileHandler )( const char *fileName,
@@ -46,6 +48,13 @@ typedef struct
*/
XklConfigInitHandler xklConfigInitHandler; /* private */
/**
+ * Loads the registry tree into DOM (using whatever path(s))
+ * The XklConfigFreeRegistry is static - no virtualization necessary.
+ * xkb: loads xml from XKB_BASE+"/rules/"+ruleset+".xml"
+ * TODO: xmodmap
+ */
+ XklConfigLoadRegistryHandler xklConfigLoadRegistryHandler;
+ /**
* Can the system combine layouts in one configuration - or not?
* xkb: checks the simple rule with 2 layouts
* xmodmap: return true
diff --git a/libxklavier/xklavier_private_xkb.h b/libxklavier/xklavier_private_xkb.h
index e4daa3a..3906881 100644
--- a/libxklavier/xklavier_private_xkb.h
+++ b/libxklavier/xklavier_private_xkb.h
@@ -24,6 +24,8 @@ extern Bool _XklXkbConfigActivate( const XklConfigRecPtr data );
extern void _XklXkbConfigInit( void );
+extern Bool _XklXkbConfigLoadRegistry( void );
+
extern Bool _XklXkbConfigMultipleLayoutsSupported( void );
extern Bool _XklXkbConfigWriteFile( const char *fileName,
@@ -42,7 +44,9 @@ extern Bool _XklXkbLoadAllInfo( void );
extern void _XklXkbLockGroup( int group );
-extern int _XklXkbPauseResumeListen( void );
+extern int _XklXkbPauseListen( void );
+
+extern int _XklXkbResumeListen( void );
extern void _XklXkbSetIndicators( const XklState *windowState );
diff --git a/libxklavier/xklavier_private_xmm.h b/libxklavier/xklavier_private_xmm.h
new file mode 100644
index 0000000..0824f29
--- /dev/null
+++ b/libxklavier/xklavier_private_xmm.h
@@ -0,0 +1,38 @@
+#ifndef __XKLAVIER_PRIVATE_XMM_H__
+#define __XKLAVIER_PRIVATE_XMM_H__
+
+/* Start VTable methods */
+
+extern Bool _XklXmmConfigActivate( const XklConfigRecPtr data );
+
+extern void _XklXmmConfigInit( void );
+
+extern Bool _XklXmmConfigLoadRegistry( void );
+
+extern Bool _XklXmmConfigMultipleLayoutsSupported( void );
+
+extern Bool _XklXmmConfigWriteFile( const char *fileName,
+ const XklConfigRecPtr data,
+ const Bool binary );
+
+extern int _XklXmmEventHandler( XEvent * kev );
+
+extern void _XklXmmFreeAllInfo( void );
+
+extern const char **_XklXmmGetGroupNames( void );
+
+extern unsigned _XklXmmGetNumGroups( void );
+
+extern Bool _XklXmmLoadAllInfo( void );
+
+extern void _XklXmmLockGroup( int group );
+
+extern int _XklXmmPauseListen( void );
+
+extern int _XklXmmResumeListen( void );
+
+extern void _XklXmmSetIndicators( const XklState *windowState );
+
+/* End of VTable methods */
+
+#endif
diff --git a/libxklavier/xklavier_xkb.c b/libxklavier/xklavier_xkb.c
index 26a76a4..6e78936 100644
--- a/libxklavier/xklavier_xkb.c
+++ b/libxklavier/xklavier_xkb.c
@@ -366,6 +366,7 @@ int _XklXkbInit( void )
{
_XklXkbConfigActivate,
_XklXkbConfigInit,
+ _XklXkbConfigLoadRegistry,
_XklXkbConfigMultipleLayoutsSupported,
_XklXkbConfigWriteFile,
_XklXkbEventHandler,
diff --git a/libxklavier/xklavier_xmm.c b/libxklavier/xklavier_xmm.c
new file mode 100755
index 0000000..d565732
--- /dev/null
+++ b/libxklavier/xklavier_xmm.c
@@ -0,0 +1,71 @@
+#include <time.h>
+#include <stdlib.h>
+
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xlibint.h>
+
+#include "xklavier_private.h"
+#include "xklavier_private_xmm.h"
+
+const char **_XklXmmGetGroupNames( void )
+{
+ return ( const char ** ) NULL;
+}
+
+int _XklXmmPauseListen( )
+{
+ return 0;
+}
+
+int _XklXmmResumeListen( )
+{
+ return 0;
+}
+
+unsigned _XklXmmGetNumGroups( void )
+{
+ return 0;
+}
+
+void _XklXmmFreeAllInfo( )
+{
+}
+
+Bool _XklXmmLoadAllInfo( )
+{
+ return False;
+}
+
+void _XklXmmLockGroup( int group )
+{
+}
+
+int _XklXmmInit( void )
+{
+ static XklVTable xklXmmVTable =
+ {
+ _XklXmmConfigActivate,
+ _XklXmmConfigInit,
+ _XklXmmConfigLoadRegistry,
+ _XklXmmConfigMultipleLayoutsSupported,
+ _XklXmmConfigWriteFile,
+ _XklXmmEventHandler,
+ _XklXmmFreeAllInfo,
+ _XklXmmGetGroupNames,
+ _XklXmmGetNumGroups,
+ _XklXmmLoadAllInfo,
+ _XklXmmLockGroup,
+ _XklXmmPauseListen,
+ _XklXmmResumeListen,
+ _XklXmmSetIndicators,
+ };
+
+ xklVTable = &xklXmmVTable;
+
+ XklDebug( 160,
+ "Xmodmap support activated, display: %p, root: " WINID_FORMAT
+ "\n", _xklDpy, _xklRootWindow );
+ return -1;
+}