我创建一个文本编辑器越来越熟悉C和GTK +的一种方式。 我使用GTK + -2.0&gtksourceview-2.0,和gtk_scrolled_window。 作为在创建一个goto功能浏览器的第一尝试我想我只是简单地创建的文档,并在其上它们发生线的对应阵列中找到的功能的阵列。 我有多少事。 我很惊讶地发现,有没有goto线的能力,我可以在devhelp很容易找到。 这听起来像gtk_text_view_scroll_to_mark()是我想要的东西(创建标记之后),但所有的* scroll_to功能需要一个within_margin,这是说实话,我真的不明白:
从devhelp:
此功能的目的,有效的屏幕被尺寸within_margin的余量降低。
这意味着什么?
我是差得远了? 如何创建这样滚动行号的功能?
谢谢。
UPDATE:以下三个功能被用来滚动到缓冲液中的线:
gtk_text_iter_set_line (&start, lineNums[9]);
gtk_text_buffer_add_mark (tbuffer, scroll2mark, &start);
gtk_text_view_scroll_to_mark (text_view, scroll2mark, 0.0, TRUE, 0.0, 0.17);
gtk_text_view_scroll_to_mark的最后一个参数是用来获取目标行号与在缓冲区中的最上面一行来排队。 我想这个参数将无法在所有的屏幕尺寸工作,但我没有测试它。
该gtk_text_view_scroll_mark_onscreen功能让我靠近行号,但它只是一对夫妇超出文本区域的底部线。