web-dev-qa-db-ja.com

オートコンプリートドロップボックスのフォントサイズを変更する方法

スクリーンショット:

Screenshot

テーマgtkrcファイルの何かを変更する必要があるかもしれませんが、フォントサイズを1単位小さくするために何を変更する必要があるのか​​わかりません。

参考までに、私はSO(Ubuntu 11.10についてですが)で同様の質問を見つけました): Eclipseのオートコンプリートボックスのハイライト色を変更する方法 Eclipseはこれをシステム設定から使用していますが、フォントをより混乱させるために小さくしました(私がそうしたいように)

2
zetah

Gtkrcの変更でそれが可能であるとは思わない。

このコードをgtkrcの最後に追加しても、次のようになります。

style "fontchangetest" {
    font_name = "Sans 20"
}

class "GtkWidget" style "fontchangetest"

Geany(または任意のGTK2アプリケーション)を再起動すると、多くのUIウィジェットがこのプロパティを使用しますが、実際のコードエディターとオートコンプリートリストはGeanyによって指定されたフォントを保持します。

しかし、ソースコードをチェックしてみましょう:

apt-get source geany
cd geany-0.20

オートコンプリートボックスのフォントは、scintilla/ScintillaBase.cxxの264行目で定義されています。

ac.lb->SetFont(vs.styles[STYLE_DEFAULT].font);

SetFont関数はオートコンプリートリストボックス( ' ack SetFont'で検証済み)にのみ使用されるため、変更しても問題ありません。

Scintilla/PlatGTK.cxxを開き、2029行に移動します。次のコードが表示されます。

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        gtk_widget_modify_font(PWidget(list), PFont(scint_font)->pfd);
    }
}

それを次のものに置き換えます。

void ListBoxX::SetFont(Font &scint_font) {
    // Only do for Pango font as there have been crashes for GDK fonts
    if (Created() && PFont(scint_font)->pfd) {
        // Current font is Pango font
        PangoFontDescription* pf = pango_font_description_from_string("Sans 6");
        gtk_widget_modify_font(PWidget(list), pf);
    }
}

もちろん、「Sans 6」を好きなフォントとサイズに変更できます。これは非常にハックな解決策ですが、C/C++を知らないので、おそらくよりエレガントな方法があるでしょう。

次に、次のいずれかを実行できます。

./configure && make && Sudo make install

簡単なコンパイルとインストールを行うには(ただし、既存のgeanyパッケージを最初に削除することを真剣にアドバイスします)

またはより正しい方法:

Sudo aptitude install build-essential devscripts ubuntu-dev-tools \
debhelper dh-make diff patch cdbs quilt gnupg fakeroot lintian \
pbuilder piuparts intltool chrpath

debuild
cd ..
Sudo dpkg -i geany_0.20-1.1ubuntu1_AMD64.deb

変更を含む新しいパッケージをビルドしてインストールします。

6
benwh