将应用程序嵌入到窗口中

发布于 2024-10-25 05:39:51 字数 160 浏览 1 评论 0原文

FvwmButtons(fvwm窗口管理器的一个模块)具有Swallow功能,嵌入 将应用程序的窗口转换为面板。

我必须用 Motif 和 Xlib 做这样的事情。我想将 Xclock 嵌入到我的应用程序中。我想我必须更改嵌入式应用程序的窗口 ID。

我怎样才能做到这一点?

FvwmButtons (a module of fvwm window manager) has the Swallow function, that embeds
the window of an application into a panel.

I have to do something like this with Motif and Xlib. I want to embed an Xclock into my application. I guess I have to change the Window ID of the embedded app.

How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

檐上三寸雪 2024-11-01 05:39:51

唯一受支持且可靠的机制是 XEmbed,但它需要嵌入式应用程序配合。如果没有合作的应用程序,您就会陷入可怕的黑客世界。

您需要做的基本事情是 XReparentWindow() 但问题是您正在与窗口管理器进行斗争,它也想要重新设置窗口的父级。您还可能会混淆应用程序,该应用程序将期望 ICCCM 和 EWMH 行为,并期望父窗口是 WM 框架。

真正旧的 GNOME 1.x 版本的 gnome 面板有一个吞咽功能,你可以尝试从中窃取黑客攻击。

如果没有相当广泛的 X 知识,这将是痛苦的,甚至
不一定能够做到 100% 可靠。

the only supported and reliable mechanism is XEmbed, but it requires the embedded app to cooperate. Without a cooperating app, you're in a world of scary hacks.

The basic thing you need to do is XReparentWindow() but the problem is that you're fighting the window manager which will also want to reparent the window. You're also potentially confusing the app, which will be expecting ICCCM and EWMH behavior, and expecting the parent window to be a WM frame.

Really old GNOME 1.x versions of gnome panel had a swallow feature you could try to steal hacks from maybe.

Without pretty extensive X knowledge this will be painful, and even
with it's not necessarily possible to make 100% reliable.

沉默的熊 2024-11-01 05:39:51

看起来您正在寻找 XEmbed 协议,记录在此处

It looks like you are looking for the XEmbed protocol, documented here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文