已經把 border 設定成 0 了,我想,這些是當初不直接用 button 的原因。
|
經過整晚的測試, 那個小灰是 GtkWidget *event_box_gtab = gtk_event_box_new(); 引起的, 改成 GtkWidget *event_box_gtab = gtk_vbox_new(FALSE, 0); 就沒問題了, 但問題是對滑鼠鍵擊就沒反應了 XD
|
好了,patch 來了。(for GCIN 2.3.0)。
請 winlin 試一下。
|
Tetralet |
好了,patch 來了。(for GCIN 2.3.0)。
請 winlin 試一下。
|
感謝T大: 經過測試,發現的確不會出現被切掉的情形,也是怎麼試都試不出來, 而且滑鼠左或右鍵均能正常使用,辛苦了~
|
所以你們覺得是要用 button 還是 event_box,button 比較漂亮,但是比較佔空間。
感謝 Tetralet 鍥而不捨的追查,gcin 還有很多地方用 event_box,只能說 GTK 的 default value 太爛了。
|
event_box++
button 說真的醜到爆,醜到我連 deb 都不想包... XDDDD
另外可能要請 eliu 在所有 gtk_event_box_new() 後面都加上那一行 patch, 那小灰應該不會再出現了。
|
eliu |
所以你們覺得是要用 button 還是 event_box,button 比較漂亮,但是比較佔空間。
感謝 Tetralet 鍥而不捨的追查,gcin 還有很多地方用 event_box,只能說 GTK 的 default value 太爛了。
|
小弟投「button」一票 XD (不知會否破壞小弟和T大的關係... ) 小弟有一票的理由,晚一點再提,不然這一篇會寫得太長~
小弟發現button還有一個inner-border的屬性可以設, 不知道這個是否可以改善button太佔空間的問題, 不論最後gtab有沒有採用button,至少對詞音可能有幫助~
The "inner-border" style property
"inner-border" GtkBorder* : Read
Sets the border between the button edges and child.
參考資料:http://developer.gnome.org/gtk/2.24/GtkButton.html
Tetralet |
button 說真的醜到爆,醜到我連 deb 都不想包... XDDDD
|
醜到不想包!!!??? 請陛下三思呀~ 多少ubuntu和Debian user就靠您來得到最新gcin~
button好看與否,和gtk主題的button設計有關
T大如果覺得太醜,可以考慮為gcin指定額外的gtk theme看看
下載一個button好看的gtk theme,然後....
pkill gcin; export GTK2_RC_FILES=/放置路徑/gtk-2.0/gtkrc; gcin &
|
個人是覺得真的醜斃了。
因為 button 會佔用一定的大小, 為了讓整體比例好看, 只好把字給加大, 結果整個輸入框就大得不像話, 給人感覺很噁爛:
而原本使用 event_box 整個畫面就乾淨多了: (反正小灰的問題也解決了,沒理由反對用 event_box)
當然了,如果真得覺得很難取捨, 不如做成選項, 想用 button 或是 event_box 給使用者自己選好了。
|
eliu兄:
在gcin source code裡指定button的inner border應該是可行的
我在~/.gtkrc-2.0加入下面這段陳述並重新啟動gcin之後,發現button的inner border的確有縮小一些, 所以這個設定值應該是有效的:
style "button" { GtkButton::inner-border = {0,0,0,0} } class "GtkButton" style "button"
這張圖是套用這個設定值之前:
這張圖是套用這個設定值之後:
小弟個人還是比較希望用button, gtab輸入法的界面少了button的綴飾,比起詞音實在遜色多了!
如果可以克服border的問題,不但比較沒有T大在意的版面問題,又可以兼顧美感,算是一舉兩得。
感謝~
edited: 2
|
啊...上一篇發文已經來不及了...... gtab輸入法最後還是與button綴飾無緣....真遺憾~
|
winlin | 我在~/.gtkrc-2.0加入下面這段陳述並重新啟動gcin之後,發現button的inner border的確有縮小一些, |
查了 gtk2 API, button 的 inner-border 似乎只能 read,也就是無法在程式內部指定,只能用 gtkrc* 設定。
gtk3 才可以在程式內部指定。
|
caleb | 查了 gtk2 API, button 的 inner-border 似乎只能 read,也就是無法在程式內部指定,只能用 gtkrc* 設定。
gtk3 才可以在程式內部指定。 |
唔,查了查有個 gtk_widget_modify_style(button, rcstyle); 可以設定 rcstyle->xthickness = 0;
不確定是不是和設定 inner-border 一樣…
|
caleb | 查了 gtk2 API, button 的 inner-border 似乎只能 read,也就是無法在程式內部指定,只能用 gtkrc* 設定。
gtk3 才可以在程式內部指定。
|
不知道能否換個方式,讓gcin內帶一個gtkrc呢?theme的內容就只寫:
style "button" { GtkButton::inner-border = {0,0,0,0} } class "GtkButton" style "button"
不過,如果只有這4行陳述,gcin會跟隨使用者的gtk佈景主題,只針對button inner border作調整? 還是會是長得像下面這樣?
這要試試看才知道
|
|
caleb |
唔,查了查有個 gtk_widget_modify_style(button, rcstyle); 可以設定 rcstyle->xthickness = 0;
不確定是不是和設定 inner-border 一樣…
|
感謝caleb兄提示!!!小弟終於找到button border的2個相關參數所在! eliu兄可以考慮在source code裡指定這幾個相關參數的值試試~
- inner-border
- xthickness和ythickness
上述2個參數設成0之後,button也可以和event_box完全一樣的大小,不多佔任何空間!!!
在主題中的gtkrc中設好下列參數即可測試:
style "button" { GtkButton::inner-border = {0,0,0,0}
xthickness = 0 ythickness = 0
} class "GtkButton" style "button"
以下是小弟各種組合的測試結果圖示,可以看到詞音和用button的gtab可以設成和event_box完全一樣的比例。
|
inner-border 沒辦法在 gcin 中設定
|
找到方法可以設定了
2.4.2
- gtab window 現在內定改成 button 了,而且找到設定 inner border 的方法,所以 button 比較小了。詞音的注音輸入區字型可以 +4 點,否則 Window 的高度會變成忽大忽小。
|
連 gcb 的 window 也變矮了,不錯 XD
|
eliu |
找到方法可以設定了
2.4.2
- gtab window 現在內定改成 button 了,而且找到設定 inner border 的方法,所以 button 比較小了。詞音的注音輸入區字型可以 +4 點,否則 Window 的高度會變成忽大忽小。
|
eliu兄辛苦了,為了button的事讓您一改再改真不好意思~ 現在button已經沒有比較佔空間,不知道T大是否願意重新試用button看看?
|
先送上 patch。之前的修改沒考慮到『沒有隱藏第二列』的狀況。
另外,這是我的 GCIN 使用 echo 1 > ~/.gcin/config/gtab-in-area-button 後的貼圖: (全數採用預設值,除了設定為使用【編輯區顯示 GCIN 視窗之外】)
以下是調整成個人的使用習慣:
而以下是不使用 button 的狀況:
何謂美醜雖然是一種主觀看法, 但要說 button 會比較好看,個人真的深深不以為然。
|
以下為一些後續的修正。
gcin_1.diff: 修正之前敝人的 patch, 要在 gcin-tools 中設定【顯示輸入法名稱】,才會顯示 [輸入法]。 [輸入法] 的顏色使用【選擇鍵顏色】。未設定則由 theme 決定,一般為黑色。 問題點:eng_full_str、cht_full_str、eng_color_full_str、cht_color_full_str 變成全域變數了。 (不然 gcin-tools 好像讀不到這些變數。)
gcin_2.diff: 修正 PANGO < 1.22 時,在 <span> 中是不能指定 <font> 標籤的。
gcin_3.diff: 應當在 check_button_gcin_on_the_spot_key 建立後, 再設定 g_signal_connect(G_OBJECT(opt_gcin_edit_display), "changed", G_CALLBACK(combo_selected), (gpointer) NULL);。
gcin_4.diff: 讓 gcin-tools 的【確定】【取消】按鈕一樣大。
gcin_5.diff: check_button_gtab_capslock_in_eng 應該是冗碼。
gcin_6.diff: 要考慮到 $UTF8ED 為空值時的情況。
請劉老大考慮套用這些 patch。謝謝!
|
另外回報一個問題,好像沒辨法把【五四三】倉頡取消掉? 不管怎麼設定,它都會在 <Ctrl><Shift> 循環裡出現。
|
你是用 cj5?cj5 & 五四三倉頡是共用 同一個 key,五四三倉頡不要勾選「使用」,就不會 load 進來,也就不可能在循環裏面?
|
eliu |
你是用 cj5?cj5 & 五四三倉頡是共用 同一個 key,五四三倉頡不要勾選「使用」,就不會 load 進來,也就不可能在循環裏面?
|
個人是建議分開啦。 如果 cj5 和 cj543 如此相似,我看不出是否有讓兩者都在 <Ctrl><Shift> 裡循環的必要。
|
edited: 1
|
不是,是勾了倉五,沒勾倉五四三, 但倉五四三還是會跑出來。
|
|
一些小問題的修正。
若無意外,這應該會是最後一個 patch 了, 請笑納!
|