MOTIF 技术及其开发应用

来源:互联网 发布:mac可设置定时关机吗? 编辑:程序博客网 时间:2024/06/10 01:32
What is the Motif?
 Motif® is the industry standard graphical user interface, (as defined by the IEEE 1295 pecification), used on more than 200 hardware and software platforms. It provides application developers, end users, and system vendors with the industry's most widely used environment for standardizing application presentation on a wide range of platforms. Motif is the leading user interface for the UNIX® based operating system. The Motif graphical user interface (GUI) toolkit facilitates the development of applications for heterogeneous, networked computing environments. By providing application portability across a variety of platforms, the Motif environment helps protect valuable investments in software and user training. Motif is also the base graphical user interface toolkit for the Common Desktop Environment (CDE).

MOTIF 技术及其开发应用

1、引言

、引言

Motif 最初是由 OSF(开放基金协会)开发的一个工业标准的 GUI(图形用户接口)。1996年,OSF 与 X/Open 合并为 Open Group,1997年初,X 联盟结束,并将其归属的项目移交给 Open Group。Open Group 继续开发和支持X窗口系统,Motif,CDE,和其他技术。2000年5月15日,Open Group 使用公共许可证向开放原代码团体发布了 Motif 的原代码。在开放系统(如 Linux)上,可以使用免费的 Motif。

Motif 最先实现并运行于支持X窗口系统上,它是UNIX系统的主要用户接口。目前已经应用于超过200种硬件和软件平台。Motif GUI Toolkit推动了异种机和网络环境下的应用开发,各种机器包括便携机、PC、工作站、超级计算机都得益于 Motif 环境下的应用程序一致的行为和视感。用 Motif GUI 开发的应用软件具有高度的可移植性、可交互性、以及可伸缩性。

2、Motif技术简介

Motif技术的核心部分包含三个部分:可扩充用户接口工具箱,用户接口语言(UIL),窗口管理器(MWM)

技术的核心部分包含三个部分:可扩充用户接口工具箱,用户接口语言(UIL),窗口管理器(MWM)

2.1、用户接口工具箱

开发Motif应用软件主要使用三个库:Xlib, Toolkit Intrinsics(Xt),和Motif Toolkit。

Xlib是在X协议上为用户提供的C语言客户接口。尽管Xlib提供了与X Server交互的基本工具,仅使用Xlib来开发复杂的应用软件是一件非常艰苦的工作,为了简化开发工作,X提供了一些高级的接口,即X Toolkit Intrinsics,简称Xt。Xt的三个最重要的贡献是:对象,即所谓Widget的引入;Widget 布局管理;以及事件的分发和处理。

Xt提供的是一组低层的Widget,是一个特定的用户接口层;Motif Toolkit则是建立在Xt Toolkits之上的Widget对象类集合。Motif使用低层的Widget同时建立了基本的类和各种子类。Motif提供的Widget加入了一些应用所通用的特性:可视风格、选择和拖放等。其设计利用了Xt Intrinsics的机制,同样也采用面向对象的程序设计方法。

Motif主要有三组Widget:XmPrimitivs和XmGadgets、XmManager、以及Shell。

XmPrimitivs是没有子Widget的Widget。它是公共的输入输出的基本单位,通常是建立复合Widget的部件。XmPrimitivs是Core的子类。XmPrimitivs有基本的颜色资源和键盘游历行为。XmPrimitivs仅用作特定行为类的超类。

XmGadgets 是从 XmPrimitive 派生,没有窗口,有布局资源。 Gadgets 从其父Widget继承颜色资源并依具其父Widget分发事件。XmGadget是RectObj的子类。

XmManager类是所有管理器的超类,是Core的子类。目的之一是定位和形成其子Widget,另一个目的是确定其子Gadget是否要处理一个输入事件,如果是,就把事件发到子Gadget。XmManager 类是一个不能实例化的类,仅能作为其他Widget的子类。

Xt Motif 都定义了一组Widget,主要目的是封装其他Widget,并和窗口管理器进行通信,这些WidgetShell. 每个有顶极窗口的Widget都放在一个Shell中。Motif的许多便利函数在生成Widget时也自动生成ShellMotif提供了三种类型的ShellVendorShellDialogShelland MenuShell

Motif 都定义了一组Widget,主要目的是封装其他Widget,并和窗口管理器进行通信,这些WidgetShell. 每个有顶极窗口的Widget都放在一个Shell中。Motif的许多便利函数在生成Widget时也自动生成ShellMotif提供了三种类型的ShellVendorShellDialogShelland MenuShell

2.2、用户接口语言

用户接口语言是在Motif Tollkit的基础上开发的用户界面描述性语言。开发人员可使用用户接口语言描述用户界面组件的属性和回调函数,及组件间的层次关系,并将其存为以 .uil 为后缀的文本文件。应用程序调用Motif资源管理器MRM的函数读取和解释界面定义文件创建界面。使用Motif结合用户接口语言可以方便、快速地开发用户界面。

2.3、窗口管理器

X 窗口系统应用的用户一般要使用一个窗口管理器。Motif也提供了自己的窗口管理器MWM。Motif的窗口管理器是一个独立的应用。它可以管理应用的窗口而不管应用是否以Motif建立。并可以有效地管理多个显示器。

24、Motif风格指南

2.4、Motif风格指南

Motif 提供了风格指南,它以文档的形式描述了用Motif用户接口实现的应用软件应遵循的规范。目的是为了维护Motif应用软件行为和视感的一致性。Motif规范存在于两个文档:Motif风格指南,定义应用程序应该遵循的外观;应用环境规范,定义应用程序接口。Motif规范在IEEE 1295规范中定义。Motif规范并不是强制性的规定,而是建议性的规范。

3、Motif 编程模式

Motif应用编程接口是用C语言实现的。它是面向ANSI C 的编程接口,Motif的从第二版增加了对C++ 的支持。Motif用户接口的设计一般需要完成下列工作:

包含需要的头文件:除了C 的一般头文件外,还需要包含X 和 Motif 的头文件。

初始化 Xt Intrinsics:初始化建立应用程序现场,打开 X 服务器的显示,建立资源数据库,然后创建 ApplicationShell Widget,它是应用程序中其他Widget的父Widget。初始化 Xt 一般使用 XtAppInitialize() 函数。

建立构成应用界面的 Widgets 层次结构。

注册回调函数: Widget 注册自己的事件处理过程或动作函数。

使 Widget 显示在屏幕上:即建立与该 Widget 相应的窗口。Widgets 在生成时。Motif并没有自动实现 Widget,必须调用 XtRealizeWidget(parent) 来实现 Widget。

进入事件循环:使用 XtAppMainLoop()函数。设计者也可以通过 Xt Intrinsics 提供的两个专门的事件分发函数 XtAppNextEvent 和 XtDispatchEvent 建立事件循环,对事件进行过滤处理。

4、结束语

Motif本身仅提供了最基本的应用编程组件,有大量的第三方软件供应商和非商业组织提供的专用Widget类库,如Sitraka公司的用于绘制图形图表的XRT;可在Motif Widget窗口显示HTML格式文本的XmHTML库;支持多煤体的EuroBridge Widgets(Xew) ;LiteClue Widgets; Xmt 等。结合这些专用的Widget类库使得用Motif开发相应的软件非常容易。另外,还有一些建立在Xt / Xm基础上的可视化的快速开发工具,如ICS的BX Pro、LOOX SOFTWARE的BX/LOOX等。

 

参考文献

Motif Programming Manual for OSF/Motif By Dan Heller & Paula M. Ferguson OReilly & Associates, Inc.

Motif 与图形用户界面开发工具 张倪 莫斌等编著 清华大学出版社

http://www.opengroup.org/motif/motif.data.sheet.htm

http://www.rahul.net/kenton/MotifWidgets.html

Motif 与图形用户界面开发工具 张倪 莫斌等编著 清华大学出版社

http://www.opengroup.org/motif/motif.data.sheet.htm

http://www.rahul.net/kenton/MotifWidgets.html

Reilly & Associates, Inc.

Motif 与图形用户界面开发工具 张倪 莫斌等编著 清华大学出版社

http://www.opengroup.org/motif/motif.data.sheet.htm

http://www.rahul.net/kenton/MotifWidgets.html