![](/img/trans.png)
[英]Drawing any rectangle to a GTK+ DrawingArea fills the whole DrawingArea
[英]GTK+ with any programs
我最近知道了一个乳胶编辑器“ gummi”,请参阅http://gummi.midnightcoding.org/ ,它是由GTK +图形界面工具包编写的。 有两个面板,一个在左侧是编辑器(使用gtksourceview库),在右侧是一个查看器(使用poppler库)。 我很好奇我们是否可以为每个程序做类似的事情。 例如,将编辑器替换为“ terminal”,“ emacs”,“ vim”,“ terminator(多窗口终端)”等。 并用其他查看器替换该查看器,我认为这是Adobe Reader。 在与作者讨论时,他提到:
查看器组件也是可替换的,但是使用Adobe Reader做到这一点并不容易,甚至不可能。 原因是Adobe Reader是一个完整的程序,而不是一个库,并且是封闭源
所以我有一些问题:
a)我们只能将“库”嵌入为面板,但是对于(任何)程序我们不能这样做?
b)我们可以用emacs代替编辑器吗? 与终端?
c)我们可以用Adobe Reader替换查看器吗? 如果没有,为什么? 是因为它是程序还是封闭源代码?
我知道这个线程中的问题不是很精确,很抱歉。
a)如果程序具有足够的API,则可以对任何程序执行此操作,但这很少见。 它们自身的库提供了工具包无法提供的功能(此处为gtk +)。 因此,最后,您必须将一个类替换为另一个使用源库(或提供跨进程功能)的类(在源代码内)。
b)终端:是的(请参阅anjuta),对于emacs来说可能是这样,但是从我对emacs的了解有限的角度来看,要实现这一目标还需要做很多工作
c)它既没有足够的跨进程API,也没有直接使用其类的源代码。 您可以改用evince(或类似的开源pdf查看器)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.