由 blc_ » 週五 3月 21, 2008 10:55 am
時隔半年,自己回答…
因為很不習慣新的交談視窗,抓了source回來研究,找到了改的地方。
如果把標籤設在左或右邊,標籤長度會用g_utf8_strlen()來決定,但中文會被判定成一個字元,所以長度不夠就被縮掉;原本想用C內建的strlen(),但中文字會判定成三個字元…所以修改方式就變成下面這個又長又醜的…
$PIDGIN_SRC/pidgin/gtkconv.c
MIN(g_utf8_strlen(gtk_label_get_text(GTK_LABEL(gtkconv->tab_label)), -1), 12)
改成
MIN((strlen(gtk_label_get_text(GTK_LABEL(gtkconv->tab_label))) - g_utf8_strlen(gtk_label_get_text(GTK_LABEL(gtkconv->tab_label)),-1) )/2 + g_utf8_strlen(gtk_label_get_text(GTK_LABEL(gtkconv->tab_label)),-1) ,12)
不知道有沒有更好的方法?