1

いくつかのボタンやツールバーなどを作成したい小さなアプリケーションがありますが、既存のGTKアイコンテーマを使用したくないので、独自のテーマを作成したいと思います。それで私はチュートリアルなどを探しましたが、結局のところ、それはオンラインであまりよく議論されていませんでした。だから私は自分で何かをしようとしました:

ヘッダーファイル:

#include <gtkmm.h>
#include <string>
#include <iostream>
#include <errno.h>

class IconFactoryBuilder
{
public:
    IconFactoryBuilder();

    ~IconFactoryBuilder();

    void RegisterNewIcons(std::string pPath);

private:

    Glib::RefPtr<Gtk::IconFactory> mCustomFactory;
};

Cppファイル:

#include <IconFactoryBuilder.h>

IconFactoryBuilder::IconFactoryBuilder() {
    mCustomFactory = Gtk::IconFactory::create();
}

IconFactoryBuilder::~IconFactoryBuilder() {
}

void IconFactoryBuilder::RegisterNewIcons(std::string pPath) {

    Glib::RefPtr<Gtk::IconSet> iconSet = Gtk::IconSet::create();
    Gtk::IconSource someSource;
    try{
        Gtk::Image  *someImage=Gtk::manage(new Gtk::Image(pPath+"appbar.at.png"));
        someImage->set_pixel_size(Gtk::IconSize(48));
        someSource.set_pixbuf(someImage->get_pixbuf());
        someSource.set_size(Gtk::ICON_SIZE_DIALOG);
        someSource.set_size_wildcarded();
    }
    catch(const Glib::Exception &ex) {
        std::cerr << "An error occurred while opening the icon file!" << strerror(errno) << std::endl;
    }
    catch(...) {
        std::cerr << "Unknown Error!" << std::endl;
    }
    iconSet->add_source(someSource);
    const Gtk::StockID somestock("MyNewIcon");
    Gtk::Stock::add(Gtk::StockItem(somestock, "somelabel"));
    mCustomFactory->add(somestock, iconSet);
    mCustomFactory->add_default();
}

しかし、私が作成したこの新しいアイコンの呼び方がよくわからないため、今はかなり行き詰まっています。また、上記のコードが実際にアイコンを見つけるのに十分かどうかもわかりません。

4

1 に答える 1

2

アイコンファクトリを作成しました...ファクトリ

;-)

あなたの質問に対する真剣な答えは、あなたが必要としないということですGtk::IconFactory。残念ながら、GTK2のドキュメントにはそれが不要であるとは書かれていません。必要なのは、freedesktop.orgの標準アイコン命名仕様です。アイコンを作成し、簡単な名前を付け、そこに記載されているディレクトリ構造に従って整理し、適切な場所にインストールします。アイコンは、関数を作成PixbufまたはImage使用するときに「正しく機能」します...from_icon_name()。(Gtk::Image::set_from_icon_name():)

独自のアイコンを提供する方法に関するGnome開発者ウィキのページは次のとおりです。http: //developer.gnome.org/integration-guide/stable/icons.html.en

カスタムアイコンのインストールについて書いたチュートリアルのページは次のとおりです。http://ptomato.name/advanced-gtk-techniques/html/desktop-file.html

于 2012-10-19T13:25:13.713 に答える