首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剪贴板是由xlib实现的还是由单个应用程序实现的?

剪贴板是由xlib实现的还是由单个应用程序实现的?
EN

Stack Overflow用户
提问于 2013-11-04 13:44:02
回答 2查看 1.6K关注 0票数 4

ICCCM定义了三个选项1)主要2)次要3)剪贴板。但是在xlib中,xatom.h只定义了XA_PRIMARY和XA_SECONDARY,但是剪贴板没有这样的原子。所以我的疑问是,剪贴板是由xlib实现的,还是必须由主应用程序和辅助应用程序实现的?

如果它必须由单独的应用程序实现,那么不同的应用程序如何与剪贴板进行交互,例如从一个应用程序的窗口复制并粘贴到另一个应用程序的窗口。不同的应用程序如何共享一个公共缓冲区?有没有人能帮助我们在linux中实现剪贴板?我已经经历了这个 link 。但我找不到太多关于实现的信息。

EN

回答 2

Stack Overflow用户

发布于 2013-11-04 16:37:29

代码语言:javascript
复制
bash $ xlsatoms | fgrep CLIPBOARD
231     CLIPBOARD
bash $ fgrep -r XA_CLIPBOARD /usr/include/X11
/usr/include/X11/Xmu/Atoms.h:    _XA_CLIPBOARD,
/usr/include/X11/Xmu/Atoms.h:#define XA_CLIPBOARD(d)            XmuInternAtom(d, _XA_CLIPBOARD)

所以我们有一个原子,没有问题。你也可以直接按名字来实习生。

剪贴板选择的实现方式与其他选择完全相同。唯一的区别是断言选择所有权的时刻。对于PRIMARY,它在用户选择某些内容时被断言;对于CLIPBOARD,它在用户剪切或复制时被断言。

票数 4
EN

Stack Overflow用户

发布于 2013-11-04 14:01:03

剪贴板必须在X11 server中实现(工具包中有许多支持代码),因为它是由所有X11客户端共享的数据。

它由ICCCMEWMH约定定义,并与desktop environment相关。它可以使用一些非预定义但按惯例命名的X11原子(有许多这样的常规原子在xatom.h中没有预定义)。

您最好使用一些现有的工具包,如Qt或Gtk (或FOX或FLTK)。它们是自由软件,如果你真的想看的话,你可以看看里面。对于Qt,查看QClipboard,对于GTK,查看GtkClipboard。所以您并不真正关心使用哪个原子和X11协议来实现它们。

freedesktop.org有很多资源,比如thiswm-spec等等等等……

另请参阅X Windows selectionX Windows System protocol and architectureXDND上的wikipages并阅读X11 protocol规范。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19762302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档