Так что я пытаюсь использовать GtkSourceView в C ++, используя GtkSourceViewmm , чья документация и уровень поддержки дают мне впечатление, что он не очень внимательно рассматривался в течение длительного времени. Но я всегда оптимист :)
Я пытаюсь добавить SourceView , используя некоторый код, подобный следующему:
Glib::RefPtr<gtksourceview::SourceLanguageManager> source_language_manager = gtksourceview::SourceLanguageManager::create();
Glib::RefPtr<gtksourceview::SourceLanguage> source_language = Glib::wrap(gtk_source_language_manager_guess_language(source_language_manager->gobj(), file, NULL));
Glib::RefPtr<gtksourceview::SourceBuffer> source_buffer = gtksourceview::SourceBuffer::create(source_language);
gtksourceview::SourceView* = m_source_view = new gtksourceview::SourceView(source_buffer);
m_vbox.pack_start(*m_source_view);
К сожалению, выдает предупреждение
(algoviz: 4992): glibmm-WARNING **:
Не удалось обернуть объект типа
'GtkSourceLanguage. Подсказка: эта ошибка
обычно вызывается неспособностью позвонить
функция библиотеки init ().
и когда я смотрю на это в отладчике, действительно, вторая строка выше (строка с Glib::wrap()
) возвращает NULL
. Я понятия не имею, почему это так, но я попытался прислушаться к предупреждению, добавив Glib::init()
в начало программы, но это тоже не помогло.
Я пробовал гуглить, но безуспешно. Кто-нибудь знает, что Глиб хочет, чтобы я инициировал, чтобы я мог сделать этот вызов? Или, что еще лучше, кто-нибудь знает какой-нибудь рабочий пример кода, который использует GtkSourceViewmm (а не только обычный GtkSourceView)? Мне не удалось найти пример кода, даже в Google Code Search.
Спасибо!