问题标签 [motif]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
138 浏览

motif - 禁用 Motif 拖放功能

我在 X/Motif 中开发了一个应用程序,该应用程序存在与工具包提供的标准拖放功能相关的性能问题。我已经通过设置 XmDRAG_NONE 资源在用户界面级别禁用了拖放协议:

  • dragInitiatorProtocolStyle:XmDRAG_NONE
  • dragReceiverProtocolStyle:XmDRAG_NONE

这有效地禁用了 Drag&Drop HMI 标准功能,但与此功能相关的属性/原子(在 _MOTIF_DRAG_WINDOW 中)会在每次应用程序实例化诸如 XmText(或其他具有拖放功能的小部件)之类的小部件时继续在根窗口中创建。

  • 有没有办法强制完全禁用拖放?

  • 如果没有,有没有办法安全地删除根窗口中的拖放属性/原子?

提前致谢。

0 投票
3 回答
1252 浏览

c++ - 如何在 Motif 中使用颜色

我是 C 和 Linux 中 GUI 编程的新手,我很难用它。这似乎是一件相当简单/直接的事情,但我在谷歌上找不到任何答案。我想为小部件添加背景颜色。XmNbackground 似乎是我想要使用的,但我不明白我将它设置为什么,比如简单的蓝色,我如何获得“蓝色”来设置 XmNbackground 颜色?

0 投票
3 回答
3125 浏览

tk - 如何将 DDD 和 Insight 中的 Motif 主题更改为更愉快的内容?

我安装了 Tk 版本 8.5.3,从 8.5 开始添加主题引擎支持。不过,我不知道如何使用主题,默认的 Motif 很丑:

截屏

0 投票
1 回答
467 浏览

c++ - 如何将我的一个应用程序窗口保持在同一应用程序的其他窗口之上?

我有一个基于 Motif 的类似记事本的遗留应用程序。

我希望无模式的“查找/替换”对话框(它是一个 Motif TopLevelShell)始终位于我的应用程序的其他窗口之上,但不在其他应用程序之上。

我没有看到任何特定于 Motif 的设置来执行此操作。
KDE 允许我设置特定于窗口的行为,但我只能让“查找/替换”窗口停留在所有窗口的顶部,这是不对的。

强制我的一个应用程序窗口保持在同一应用程序的其他窗口之上的正确方法是什么?有可能吗?有没有办法在 Motif 中做到这一点?KDE?我必须放下 X 电话吗?

0 投票
2 回答
292 浏览

linux - 从 OSF/Motif & Xt 迁移到 GTK+

我有一个用 Xt(X Tools Intrinsic 库)编写的名为 XClient 的类来设置多套接字连接。这个 XClient 类旨在让 OSF/Motif GUI 扩展 XClient(因此 GUI 可以在套接字上进行通信)。

我正在尝试迁移到一个 GTK+ 环境,该环境出于可移植性的原因不使用 Xt 库。是否仍然可以创建一个包装器以允许 GTK+ 使用 Xt 库调用,或者是否可以?

0 投票
1 回答
773 浏览

crash - 调用 XtDestroyWidget 时主题应用程序崩溃

我们有一个 32 位 Motif Gui 应用程序。现在我们将应用程序从 Solaris 移植到 Linux,系统经常崩溃。根据我们的分析,我们可以发现这个问题是在我们关闭应用程序中的表单时发生的。当表单关闭时,我们将删除表单并调用函数 XtDestroyWidget() 来删除小部件。我们为应用程序运行了一次净化,我们可以发现当我们关闭表单时发生了堆栈数组边界读取 (SBR)。

我从互联网上下载了一个示例主题程序,它使用 XtDestroyWidget() 来销毁对象。当我也为这个示例程序运行 purify 时,我可以找到相同的 SBR。

SBR:堆栈数组边界读取(54 次):* 这发生在:XtDispatchEvent [libXt.so.4] RemoveAllPMgr [libXm.so.3] XtCallCallbackList [libXt.so.4] XtPhase2Destroy [libXt.so.4] _XtDoPhase2Destroy [libXt.so.4] XtDispatchEvent [libXt.so.4] XtAppMainLoop [libXt.so.4] main [popup.cc:49] _start [crt1.o] * 从 0xffbfe4f0 读取 4 个字节。* 帧指针 0xffbfe4d0 * 地址 0xffbfe4f0 比函数 XtCallCallbackList 中的堆栈指针高 32 个字节。

这个 SBR 发生在 XtAppMainLoop() 中。根据这些事实,我假设这个 SBR 是一种常见的 SBR,并且与主题相关,而不是与我们的应用程序相关。

您能否为以下问题添加一些想法。1) 为什么当我们使用 XtDestroyWidget() 时会发生 SBR。这个 SBR 是不是很严重。

2) 我删除了 XtDestroyWidget 并使用了 XtUnrealizeWidget()。这将帮助我移除 SBR,因此不会发生崩溃。所有正常形式也将正常删除。但是我在这种方法中面临的问题是 POP_UP 表单在这种方法中没有被删除。除了 HIDE 选项之外,任何人都可以建议一种解决方法来删除 POP_UP 表单。

如果有人能回答这个问题或添加一些想法,这对我很有帮助。

提前致谢, Sanush Chacko

-----添加示例程序.. 嗨,请从我获得 SBR 的地方找到示例程序。

包括 X11/StringDefs.h 包括 Xm/Xm.h 包括 Xm/PushB.h

小部件顶层;

void close_window(Widget w, XtPointer client_data, XtPointer event_data) { Widget popup = (Widget)client_data; XtDestroyWidget(弹出);}

void pop(Widget w, XtPointer client_data, XtPointer event_data) { Widget a, button, popup;

}

main(int argc, char *argv[]) { 小部件按钮;XtAppContext 应用程序;XmString 标签;

}

0 投票
1 回答
175 浏览

c - 如何使用 Motif 编译 '97 C 代码?

您好我正在尝试编译大约 30 个 1997 年编写的 C 源代码。基于所需的头文件(例如 XmAll.h 和 Xlib.h)以及“Widget”语法的使用,我发现这些源代码依赖于 Motif 编程工具包,所以看起来它们应该在 Linux 或 Unix 系统中编译。

我对 X Windows 编程和 Motif 编程没有任何经验,但我必须编译它们。我真的尝试在 Mac OSX 或 Windows 中编译它们,但它当然没有用。

我是否必须先将 Linux 安装为虚拟操作系统并在其中安装 Open Motif 才能编译它们?能不能给点别的建议?

太感谢了!

0 投票
1 回答
453 浏览

unix - 将 IRIS GL 移植到 Open GL?

嗨,我对 IRIX、IRIS GL 和 Motif 真的很陌生。

我必须编译 1997 年编写的 30 多个 C 代码。因为这些源需要 XmAll.h、Xlib.h 等头文件,我以为我只需要 Unix 和 Open Motif 来编译它们。我在我的 Mac OSX 上安装了 FreeBSD 作为客户操作系统,所以几乎所有丢失的头文件都被找到了。(“device.h”、“sphere.h”和“image,h”除外)

但是由于“device.h”和使用大量未声明的常量调用 qdevice 函数,会发生大约 1000 个错误。我刚刚发现“device.h”、qdevice 函数调用和未声明的常量适用于我从未听说过的 Irix 操作系统。

总之,这些源文件 1) 依赖于 Motif Programming toolkit for X Windows 2) 使用 Iris GL 进行 3D 图形 3) 运行并且必须在 Irix 操作系统中编译(不确定,因为结果是 *.exe 文件)

当我用谷歌搜索它们时,我发现有一种方法可以从 Iris GL 移植到 Open GL。

如果我成功地将这些源代码从 Iris GL 移植到 Open GL,我是否可以在任何平台上运行该程序,例如最新版本的 Mac OSX 和 Windows?

你能给出任何建议来在我的 Mac OSX 或 Windows 上编译和运行这些源代码吗?

非常感谢!

0 投票
2 回答
372 浏览

c++ - Old-school C stumper - 大多数键盘输入被古老的 XWindows/Motif 应用程序忽略

我正在恢复一个多年未开发的旧 Xt/Motif 应用程序的源代码构建,最后在 32 位 Red Hat 4 上成功构建。我主要在 64 位 Red Hat 5 上构建和运行它。有只是应用程序的一个重大问题......它不会响应它应该响应的大多数键盘输入。菜单加速器都不起作用,许多其他应该支持特定功能的修改和未修改的按键也不起作用。该应用程序识别的唯一击键是进入文本输入字段和箭头键导航跨小部件的行/列数据。

我虽然这可能只是由于错误的应用程序代码,但后来发生了一些奇怪的事情......所有的键都开始工作了!我不知道我做了什么导致这种情况发生。我只是通过在调试器中运行代码来研究代码,然后应用程序开始响应键盘输入。此时,我尝试在没有调试器的情况下运行,并且按键仍然有效。然后,我尝试运行一个也出现问题的旧版本,并且该版本也能正常工作。

我将这些相同的可执行文件复制到另一台 Centos 5 机器上,在那里,密钥仍然不起作用。我花了很多时间研究这两种环境,但无法弄清楚两者之间有什么不同。然后我重新启动了我的机器(应用程序在其上神奇地工作的机器),现在密钥也不再在该机器上工作。我能想到的任何事情都不会导致按键再次被识别。

所以很明显,这个问题至少在某种程度上是环境问题。谁能提供关于这里发生了什么的任何线索?我的环境发生了什么变化导致应用程序暂时开始正常运行?我希望那里有一些 Xt/Motif 大师可能知道这里发生了什么。

0 投票
2 回答
2355 浏览

linux - 将应用程序嵌入到窗口中

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

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

我怎样才能做到这一点?