Permalink
Browse files

import ibus

  • Loading branch information...
0 parents commit c25a24ae2e40a39db61fcd6f80d76469daa49a28 @phuang phuang committed May 12, 2008
@@ -0,0 +1 @@
+Huang Peng <shawn.p.huang@gmail.com>
340 COPYING

Large diffs are not rendered by default.

Oops, something went wrong.
No changes.
@@ -0,0 +1,42 @@
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
+#
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
+#
+# $Id: $
+#
+SUBDIRS = \
+ gtk2 \
+ m4 \
+ po \
+ $(NULL)
+
+ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST = \
+ $(NULL)
+
+noinst_DIST = \
+ $(NULL)
+
+
+DISTCLEANFILES = \
+ po/stamp-it
+
0 NEWS
No changes.
0 README
No changes.
@@ -0,0 +1,12 @@
+#!/bin/sh
+set -e
+set -x
+
+autopoint
+libtoolize --automake --copy
+aclocal -I m4
+autoheader
+gtkdocize --copy
+automake --add-missing --copy
+autoconf
+./configure $*
@@ -0,0 +1,116 @@
+# vim:set noet ts=4:
+#
+# ibus - The Input Bus
+#
+# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
+#
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
+#
+# $Id: $
+#
+AC_INIT([ibus],[0.0.1],[https://bugs.launchpad.net/ibus],[ibus])
+
+AM_INIT_AUTOMAKE([1.10])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
+AC_GNU_SOURCE
+
+# define PACKAGE_VERSION_* variables
+AS_VERSION
+AS_NANO
+AM_SANITY_CHECK
+AM_MAINTAINER_MODE
+AM_DISABLE_STATIC
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_PROG_CXX
+AC_ISC_POSIX
+AC_HEADER_STDC
+AM_PROG_LIBTOOL
+
+
+
+# check glib2
+AM_PATH_GLIB_2_0
+PKG_CHECK_MODULES(GLIB2, [
+ glib-2.0
+])
+PKG_CHECK_MODULES(GOBJECT2, [
+ gobject-2.0
+])
+PKG_CHECK_MODULES(PYGOBJECT2, [
+ pygobject-2.0
+])
+
+
+# check gtk & pygtk
+PKG_CHECK_MODULES(GTK2, [
+ gtk+-2.0
+])
+
+PKG_CHECK_MODULES(PYGTK2, [
+ pygtk-2.0
+])
+
+# check dbus-glib
+PKG_CHECK_MODULES(DBUS, [
+ dbus-glib-1
+])
+
+
+AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
+
+# check python
+AM_PATH_PYTHON([2.5])
+PYTHON_CONFIG=`type -p python$PYTHON_VERSION-config`
+if test "$PYTHON_CONFIG" != ""; then
+ PYTHON_CFLAGS=`$PYTHON_CONFIG --includes`
+ PYTHON_LIBS=`$PYTHON_CONFIG --libs`
+else
+ PYTHON_CFLAGS=`$PYTHON $srcdir/python-config.py --includes`
+ PYTHON_LIBS=`$PYTHON $srcdir/python-config.py --libs`
+fi
+AC_SUBST(PYTHON_CFLAGS)
+AC_SUBST(PYTHON_LIBS)
+
+# Checks for gtk-doc
+GTK_DOC_CHECK([1.6])
+
+AC_CHECK_PROG(DB2HTML, db2html, true, false)
+AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
+
+
+# define GETTEXT_* variables
+GETTEXT_PACKAGE=ibus
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Package name for gettext])
+
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION(0.16.1)
+
+# Args for make distcheck
+DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc"
+AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
+
+# OUTPUT files
+AC_CONFIG_FILES([ po/Makefile.in
+Makefile
+gtk2/Makefile
+m4/Makefile
+])
+
+AC_OUTPUT
@@ -0,0 +1,63 @@
+
+Type Name: ObjectID
+Desc: It is a String to identify a dbus object. Like: "object_path@bus_name"
+
+Bus Name: org.freedesktop.IM
+Name: IDirectory
+Path: /org/freedesktop/IM/Directory
+ It is responeible for maintain all object in the virtual objects tree.
+Methods:
+ void register_object (String object_path)
+ void register_objects (String *object_path_array)
+ void deregister_object (String object_path)
+ void deregister_object (String object_path)
+ void deregisters_object (String *object_path_array)
+ ObjectID *list_objects (String dirname)
+ Return Object_ids in a folder specified by argument dirname
+
+Signals:
+ directory_changed (String dirname)
+
+Name: IManager
+Path: /org/freedesktop/IM/Manager
+ Manager is responsible for managering all engines & im clients.
+Methods:
+ void register_client (String client_name)
+ register the client (the caller) to the Manager, the client_name is a readable name of client. It do not specify it, manager will use caller's bus_name.
+ void deregister_client ()
+ deregister the client (the caller) in the Manager. The manager should release resources hold by the client.
+ void set_client_name ()
+ Set a associated name for the client (the caller). Like: gedit-pid
+ String *get_hotkeys ()
+ Retrun a String array. Each string in the array is a hotkey. When user press the hotkeys, client should send the hotket's index in this array to the manager.
+ void focus_in ()
+ Tell the manager the client (the caller) request focus in. The current focused client will be focus out.
+ void focus_out ()
+ Tell the manager the client (the caller) request focus out.
+ String get_focused_client ()
+
+Signals:
+ focus_changed (String client_name, String engine_path)
+
+Name: IFactory
+Name: IEngineFactory
+Name: IEngine
+Methods:
+ boolean filter_keypress (unsigned int state, unsigned int keyval, boolean is_press)
+ void focus_in ()
+ void focus_out ()
+ void reset ()
+??void set_set_client_window
+ (int window_id)
+ void set_cursor_position (int x, int y)
+ void set_use_preedit (boolean use_preedit)
+ void set_surrounding (String text, int cursor_index)
+Signal:
+ commit (String commit_string)
+ preedit_start ()
+ preedit_end ()
+ preedit_changed (String preedit_string, Attribute *attrs)
+ retrieve_surrounding ()
+ delete_surrounding (int offset, int n_chars)
+
+
@@ -0,0 +1,19 @@
+IM Specification
+
+ Huang Peng <phuang@redhat.com>
+
+1. Introducation
+ About
+ Architecture
+
+
+Chapter 1 Introducation
+
+About
+
+This document contain the specification of IM which is a software that managers all input services in the system.
+
+Architecture
+
+IM manager provides a directory service. All IM services will register themself in this directory service. All clients can enumerate serivces in a specified directoy folder and get a nodification when a specified folder's contain be changed.
+
@@ -0,0 +1,56 @@
+# vim:set noet ts=4:
+#
+# gik - The G Input Toolkit
+#
+# Copyright (c) 2007-2008 Huang Peng <shawn.p.huang@gmail.com>
+#
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
+#
+# $Id: $
+#
+INCLUDES = \
+ -I$(top_srcdir)/src
+
+im_gik_sources = \
+ gikim.c \
+ gikimclient.c \
+ gikimcontext.c \
+ $(NULL)
+
+im_gik_private_headers = \
+ gikimcontext.h \
+ gikimclient.h \
+ $(NULL)
+
+immoduledir = $(libdir)/gtk-2.0/immodules
+immodule_LTLIBRARIES = im-gik.la
+
+im_gik_la_SOURCES = $(im_gik_sources) $(im_gik_private_headers)
+im_gik_la_CFLAGS = \
+ @GTK2_CFLAGS@ \
+ @DBUS_CFLAGS@ \
+ -DG_LOG_DOMAIN=\"GIK\" \
+ $(NULL)
+
+im_gik_la_LDFLAGS = \
+ @GTK2_LIBS@ \
+ @DBUS_LIBS@ \
+ -avoid-version \
+ -module \
+ $(NULL)
+
+EXTRA_DIST =
@@ -0,0 +1,68 @@
+/* vim:set et ts=4: */
+/* GIK - The G Input Toolkit
+ * Copyright (C) 2008-2009 Huang Peng
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#include <gtk/gtk.h>
+#include <gtk/gtkimmodule.h>
+#include <string.h>
+#include <stdio.h>
+#include "gikimclient.h"
+#include "gikimcontext.h"
+
+#define GIK_LOCALDIR ""
+
+static const GtkIMContextInfo gik_im_info = {
+ "gik",
+ "The G Input Toolkit",
+ "gik",
+ GIK_LOCALDIR,
+ ""
+};
+
+static const GtkIMContextInfo * info_list[] = {
+ &gik_im_info
+};
+
+void
+im_module_init (GTypeModule *type_module)
+{
+ gik_im_client_register_type(type_module);
+ gik_im_context_register_type(type_module);
+}
+
+void
+im_module_exit (void)
+{
+}
+
+GtkIMContext *
+im_module_create (const gchar *context_id)
+{
+ if (strcmp (context_id, "gik") == 0)
+ return gik_im_context_new ();
+ return NULL;
+}
+
+void
+im_module_list (const GtkIMContextInfo ***contexts,
+ int *n_contexts)
+{
+ *contexts = info_list;
+ *n_contexts = G_N_ELEMENTS (info_list);
+}
+
Oops, something went wrong.

0 comments on commit c25a24a

Please sign in to comment.