我最近认识一个乳胶编辑“gummi”,见http://gummi.midnightcoding.org/ ,这是由GTK +图形界面工具包编写的。有两个面板,一个在左边,一个是编辑器(使用库gtksourceview),在右边是一个查看器(使用库poppler)。我很好奇,如果我们可以为每个程序做类似的事情。 例如,用“终端”,“emacs”,“vim”,“终结者(多窗口终端)”等替换编辑器。并将查看器替换为其他查看器,在我看来是Adobe Reader。 通过与作者的讨论,他提到:
查看器组件也可以替换,但使用Adobe Reader进行操作并不容易,甚至不可能。这是因为Adobe Reader是一个完整的程序而不是库,也是闭源的
所以我有一些问题:
a)我们只能将“库”作为面板嵌入,但我们不能为(任何)程序执行此操作?
b)我们可以用emacs替换编辑器吗?与终端?
c)我们可以用Adobe Reader取代观众吗?如果没有,为什么?因为它是一个程序还是它的封闭源?
我知道这个帖子中的问题不是很精确,对不起。
答案 0 :(得分:0)
a)如果有足够的API可以为任何程序执行此操作,但这种情况相当罕见。他们自己的库提供了超出工具包手段的功能(这里:gtk +)。因此,最后您必须将另一个类(在源代码中)替换为使用另一个库(或提供跨进程功能)的类。
b)终端:是(请参阅anjuta),对于emacs,可能是的,但从我的观点来看,对emacs的了解有限,我会说要做到这一点还有很多工作
c)它没有足够的跨进程API,也没有直接使用其类的源代码。您可以使用evince(或类似的opensource pdf查看器)。