Great Circle Associates

XCIN Mail-list
(December 2000)


Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: [Fwd: XIM application frozen on gtk+1.3.*]
From: thhsieh@linux.org.tw
Date: Tue, 12 Dec 2000 13:11:51 +0800
To: xcin@linux.org.tw
Reply-To: xcin@linux.org.tw

: There are a few other reasons that make over-the-spot input
: hard with GTK+-2.0 other than simply spot location:
: 
:  - Rendering style may not match at all since rendering isn't
:    happening through Xlib's XOM code.
: 
:    (As an extreme case, imagine a vector illustration program
:    that is wrapping text rendered with postscript outlines
:    around a curve.)
: 
:  - GTK+ has no good way to get a fontset to provide the input
:    method.
: 
: 簡言之,Owen 認為要在 GTK+ 2.0 中支援 OverTheSpot
: 的話不是僅僅提供 spot location 而已。

所以我可能沒猜錯,gtk+ 希望可以掌控一些東東 :-))
不過我可以理解他的理由與顧慮,就如莊明哲兄所說的,XIM 在
某些複雜的應用下的確有不足或死板之處。以下我就以 OverTheSpot
為例稍微解釋一下。

: 第一點理由我看不是很懂...:p
: 不過既然 OverTheSpot 還是由 XIM server 來處理畫字
: 那麼 rendering style 又有何關係呢?
: (這裡的 rendering style 指的應是使用 gtk+ 2.0 的 client 吧?)
: 
: 至於第二點理由是否多慮呢?
: 因為 XIM server 也可以自行決定 fontset
: 而不由 client 端提供,不是嗎?
: 目前 xcin 2.5.2 的設計就可以做到了嘛...
   
我們先看「官方」版對 OverTheSpot 的定義 (即 X11R5/6 的定義):

1. XIM server 要在 client 的輸入游標附近,顯示組字訊息 (只有組字訊息
   喔! 其他訊息呢?沒有說)

2. XIM client 要隨時提供 spot location 給 server。

3. XIM client 要提供其游標所在的視窗區域給 server, 讓 server 換算游標
   的位置。

4. XIM client 要提供適當的前景與背景色,讓 server 畫 OverTheSpot 視窗。

5. XIM client 要提供適當的 fontset, 讓 server 顯示字型。

6. 其他 .... (可能包含 Xresources .... etc)

但各位可以看到,事實上 xcin 只有部分遵守 1, 3 與遵守 2 而已。如果 client
統統都照規矩來玩的話,xcin 當然都可以接受,然後也跟著照規矩來玩。如果
client 不照規矩,例如不提供 fontset, 前景背景色, 視窗區域 .... 等,xcin
也一樣可以接受,只要 client 提供 spot location 就好了。換句話說,現在
xcin 已經盡可能做到「容錯」了。而且,在預設情況下 xcin 也不希望完全照
規矩來玩,例如 xcin 喜歡用自己的 fontset 來畫自,有自己的前景背景,甚
至其他的顏色顯示 .... 等等,除非去修改 xcinrc 檔,否則 xcin 就不完全照
規矩來玩。

因此,這裡的重點是,我們是否要全部照規矩玩?還是只取最重要的精神即可。
在我看來,OverTheSpot 的精神只有兩個:

1. 輸入法資訊顯示視窗隨著輸入游標跑。
2. 輸入法資訊由 XIM server 來畫。

至於 XIM server 愛怎麼話,我覺得可以自由一點,不需要讓 client 限制得死
死的,而 client 也不必傷腦筋該怎麼跟 server 說,才能將視窗畫得好看。

我猜 Owen 目前傷腦筋的地方是,他不曉得該怎麼向 server 描述,才能畫出好
看的 OverTheSpot 視窗。例如,只有前景與背景色怎麼夠?gtk 視窗還有背景
紋理、還有漸層、還有陰影效果 .... fontset 也不知道該怎麼講?gtk 說不定
都走 Unicode 了,有自己的 font randering 方式,而且還要直書、橫書、由
右顯示到左,字串從中間往兩邊長 .... whatever ....

我猜這就是為什麼 Owen 要猜用 OnTheSpot 的原因,因為這麼一來,這些畫圖
的鎖事都交給 gtk, 他認為 gtk 可以處理得很好。

然而,我個人的觀點是,如果不支援 OverTheSpot, 對一個 general 的 widget
set 而言是說不過去、而且滿遺憾的。因為按照 X11R6 的講法,Root, OverTheSpot
OnTheSpot, OffTheSpot 都很重要,最好都支援。XIM server 沒話說,一定都要
支援,而 client 可以選擇性支援?但 widget set 呢?

除非,世界上任何角落都找不到使用 OverTheSpot 的族群 ....

: 所以咧... 我還是不很懂問題在那裡。
: 東翰要不要去跟他 argue 一下? :)

Hmmm .... 我再想一下措詞 ....

: 這麼說來 OnTheSpot 的使用者界面也可以做到
: 和 OverTheSpot 相似囉?
: 是不是從 user 的角度來看這兩種 style
: 其實可能沒有差別?

如果不要太過拘膩「官方」的標準,實際上可以做到沒什麼差別。
就怕大家太過拘膩了。

另一方面,我覺得也不可能所有的東西都交給 XIM client 去畫就
可以了事了。如果那一天我們要畫一個可以隨著游標移動的鍵盤,
用 OnTheSpot?? .... :-))

: 另外,我從 mozilla 網站上找到對四種 input styles
: 的解說。不過從這個解說中我還是無法分辨
: OverTheSpot 和 OnTheSpot 有何不同...? :p
: (從使用者的角度來看)

所以,我建議從 server 與 client 之間的互動關係來區分 :-))


T.H.Hsieh

To Unsubscribe: send mail to majordomo@linux.org.tw
with "unsubscribe xcin" in the body of the message

Indexed By Date Previous: Re: [Fwd: XIM application frozen on gtk+1.3.*]
From: Isaac Kar-Keung To <kkto@csis.hku.hk>
Next: Re: 兒化韻的注音
From: thhsieh@linux.org.tw
Indexed By Thread Previous: [Fwd: XIM application frozen on gtk+1.3.*]
From: Chih-Wei Huang <cwhuang@linux.org.tw>
Next: [認領注音]9001-9500
From: lachesis.bbs@openbazaar.net (拉克西絲)