GtkSourceView 是GTK+中对GtkTextView 构件的一个扩展,但并不是GTK+标准库的一部分,它的主要用途是用来开发代码编辑器(Source Code Editor)。GtkSourceView 可实现以下功能:
※ 代码行数显示(Line Numbering)
※ 对包含语法高亮(Syntax Highlighting)的文档的打印支持
※ 自动缩进(Indentation)
※ 括弧(Bracket)配对
※ 撤销(Undo)/重做(Redo)支持
※ 当前行高亮显示
GtkSourceView 可为多种编程语言(C, C++, Java, C#, Fortran, etc.),脚本语言(sh, Python, Perl, Ruby, PHP, TCL, etc.)和标记语言XML, HTML, DocBook, LaTeX, etc.)提供支持。下面以C语言为例,我们首先创建几个对象:GtkSourceBuffer *source_buffer; GtkWidget *source_view;
GtkSourceLanguage *language; GtkSourceLanguageManager *lan_manger;
GtkSouceView 与GtkTextView 类似,GtkSourceBuffer 与 GtkTextBuffer类似。
对lan_manager 初始化 lan_manager = gtk_source_language_manager_get_default ();
lan_manager = gtk_source_language_manager_get_language (lan_manager,"C");
source_buffer = gtk_source_buffer_new_with_language(language);
source_view = gtk_source_view_new_with_buffer(buffer);
gtk_source_view_set_auto_indent(GTK_SOURCE_VIEW(source_view),TRUE); /自动缩进/
gtk_source_buffer_set_highlight_matching_brackets(source_buffer,TRUE); /括弧配对/
gtk_source_view_set_show_line_numbers(GTK_SOURCE_VIEW(source_view),TRUE); / 显示行数/
在Linux下编译时需加上`pkg-donfig --cflags --libs gtksourceview-2.0`,(此时使用的是gtksourceview-2.0版本),在windows下需在包含文件中加上gtksourceview的路径,同时也需要在连接器上添加命令 -lgtksourceview-2.0.