分类:
2008-10-13 16:11:39
SDL-IM: IM(输入法) 支援 in SDL
(本页不保证最新,新讯息以英文网页为主 )
哪里我可取得需要的档案?
您可取得 SDL-1.2.8 从:
您可取得 SDL_im for SDL-1.2.8 从:
还有其它的吗?是的!这里有一些使用了该修补的范例或程式库:
-- 一个提供更多 IM 支援的 Option Pack.
1. by (感谢 harpy!)
2. for paraGUI-1.1.8
3. for aedGUI-0.1.8a
4.
5. for OGRE(> 1.0.3),使其支援 i18n (可显示及输入中文、日文、韩文及多种语言)。
一些快照:
1. showfont.c(included in ) example for . .
2. : simple tests for SDL-IM. (update: 2005/08/28)
以SDL_im修补过的二进位元套件( 开发程式库 ):
SDL-devel-1.2.8-VC6.zip (Visual C++ 5,6,7)
SDL-devel-1.2.8-mingw32.tar.gz (Mingw32)
如何使用这份修补呢?
1. 下载 SDL-1.2.8 并解压缩它(ex. $tar zxvf SDL-1.2.8.tar.gz).
2. 下载修补,放到 SDL-1.2.8 方才解压的目录里,并解压缩它(ex. $gzip -d SDL_im-1.2.8-20050828.diff.gz).
3. 在 SDL-1.2.8 目录里 patch 这份 diff file(ex. $patch -p1 < SDL_im-1.2.8-20050211.diff).
4. 确定预先处理的巨集符号已定义(ENABLE_IM_EVENT).
5. 接下来,建造 SDL 并好好享用吧! :-)
注意: 如果你在 Win32 环境下使用 Visual C++ ,加上 ENABLE_IM_EVENT 定义到你的 Makefile 或 Project file. 如果你在 Linux 环境下使用 automake ,当你下 “./configure” 指命时,只要检查 “--enable-im-event” 符号是否开启(default=yes).
There are the project files for VC6 and VC7.1: ,
There is the DirectX devel source for MinGW to build SDL:
支援哪些平台?
这份修补支援 Win32 上的 IME(Input Method Editor)和 Linux(X11) 上的 XIM(X Input Method). 它也支援在 全萤幕 下显示 IME/XIM 视窗。
如何使用这些新的函式?
首先,确定您的输入法至少支援三种模式中的其中一种: Root, OverTheSpot, OnTheSpot.
然后,阅读以下的手册:
如果您有任何建议,问题或麻烦,请写信给小弟(请用英语或正体中文,谢谢). < >
我为何要使用这份 patch 呢?
小弟有两个理由来做这件事:
1. 如果您想开发一款线上游戏并且想要发布至全世界,特别是亚洲地区,那么 IM(输入法) 的支援是必要的。
2. 目前已有需多根植於 SDL 的优良 GUI 程式库。假若 SDL 支援 IM(输入法) ,那便表示我们不仅只可选择 MFC、 Qt 或 GTK+ 来写您的应用程式,而且还有许多其它的 GUI 程式库可用。没有什么比「能够自由自在地选择自己想要且需要的东西」还要更棒的了!
我自己有能力来 patch 吗?
当然罗!修补并不难。因为 SDL 的结构非常明析而且物件导向。您所需要知道的技术,只要知道如何在您的平台上,建立一个视窗并且让这个主视窗能够接收系统事件(event)。您若有兴趣来使得 SDL 得以支援 IM(输入法),小弟会非常高兴。
除此之外,小弟希望有人愿意帮忙小弟来维护这专案,直到这份 patch 整合进 SDL 的官方释出版本。
你需要帮忙吗?
是的!我需要您的帮忙:
1. 在 Win32 DirectDraw 环境下,虽然小弟已成功地在全萤幕下显示 IME 视窗,但状态视窗仍然无法翻转出来。小弟不知道如何解决这个问题,如果您知道,请告诉小弟。(此问题已解决)
2. 这份修补还没有经过许多的测试。如果您可以用日文、韩文或任何其它使用多位元字组的语言来帮忙测试,小弟会很感激您的帮助。
3. 假若您有一些麦金塔、FreeBSD或其它平台的视窗程式设计经验,请加入小弟一同来实做IM(输入法)的支援! :-)
修补的重点在哪?
(略)本页的修改纪录:
Copyright 2004-2005 L.Y.C., Taiwan(Formosa).