SolarisのCDE環境に付属する謎(?)のツール、アプリケーションビルダ
遅ればせながら岩手県立大学 Advent Calendar 2020 第9日目の記事です。
今日はデスクトップ環境CDEに含まれている謎(?)のツール、「アプリケーションビルダ」の話をしようと思います。
(例によって我々の世界とは時間軸が完全に一致していない可能性があります...)
GUIアプリケーションビルダ?
ソフトウェア演習で利用しているSolarisには、「アプリケーションビルダ」という謎のツールが付属しています。謎、というのは、このツールの使い方がイマイチ良く分からないのに加え、マニュアルを見てもどうGUIを構築するのかがやはり見えてこない点にあります。
man dtbuilder
によると、どうやらCDE向けのGUI管理機能を備えたアプリケーション構築ツールのようです。
$ man dtbuilder User Commands dtbuilder(1) Name dtbuilder - the CDE Application Builder SYNOPSIS dtbuilder [projectfile] DESCRIPTION The dtbuilder utility is an interactive application develop- ment tool and user interface management system for CDE. Known more fully as the CDE Application Builder, dtbuilder is designed to make it easier for developers to construct applications that integrate well into the CDE. It provides two basic services - aid in assembling Motif objects into the desired application user interface and generation of appropriate calls to the routines that support CDE desktop services (e.g. ToolTalk, sessioning, Help).
debuilder
コマンドでアプリケーションビルダを起動できます。
$ which dtbuilder /usr/dt/bin/dtbuilder $ dtbuilder &
なにやらそっけない感じのウインドウが表示されます。
アプリケーションビルダでGUIを構築してみる
試しに簡単なGUIを作ってみます。左側の「ウインドウ」のアイコンをドラッグすると、「モジュール名」というダイアログが表示されます。どうやらこのようにしてアプリケーションウインドウを作ってゆくようです。
さらに「コントロール」ペインからボタンやラベルといったよく見かけるGUI部品をウインドウに配置してみます。
とりあえずビルドしてみる
ビルドはどうすれば良いのだろうと思っていたのですが、どうやらアプリケーションビルダのメニューから「ファイル(F)」-「コードジェネレータ(G)...」で表示されるダイアログでコードの生成とmakeの実行まで行えることが分かりました。
が、何やら make
の実行でビルドエラーが出ます...。
落ち着いてエラーメッセージを読むと、 DTHELP_WARNING_DISABLED
マクロを定義してビルドすると良いよ!的なことが書いてあります。 #define
で指定する方法とCFLAGSに -DDTHELP_WARNING_DISABLED
を追加するいずれかの方法で対応できそうだったので、今回はCFLAGSでマクロを定義する方法にしました。
$ diff -u Makefile.ORIG Makefile --- Makefile.ORIG Mon Dec 14 07:41:50 2020 +++ Makefile Mon Dec 14 07:42:30 2020 @@ -30,7 +30,7 @@ ALLX_LDFLAGS = -L$(ALLX_LIBPATH) -R$(ALLX_LIBPATH) LOCAL_LIBRARIES = -lDtWidget -lDtHelp -lDtSvc -lXm -lXt -lXext -lX11 - CFLAGS = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(ANSI_DEFINES) + CFLAGS = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(ANSI_DEFINES) -DDTHELP_WARNING_DISABLED CCFLAGS = $(CFLAGS) LDLIBS = $(SYS_LIBRARIES) LDOPTIONS = $(CDE_LDFLAGS) $(ALLX_LDFLAGS)
無事にビルドが通りました!
文字化けとの闘い
ビルドが通ったのは良いのですが、アプリケーションを実行してみるとボタンやラベルが文字化けしています...。
おそらくどこかに多言語向けのコード生成を行わせるようにする設定があるのでしょう。アプリケーションビルダのメニューを見ると、「エディタ(d)」-「アプリケーション・フレームワーク(A)」というメニューがあります。
そこには「国際化」という項目があり、デフォルト設定では「使用する:」のチェックが外れていました。このチェックを入れて再ビルドしてみます。
今度は無事に文字化けせずに表示できました!
まとめ
デスクトップ環境CDEに含まれているツール、アプリケーションビルダを簡単に触ってみました。実はこのツールはMotif)というGUIライブラリを利用してアプリケーションを構築するためのもので、どうやら9日目の記事で紹介したJava Swingよりもちょっと古いお作法でのGUIアプリケーション開発になるようなイメージです。
機会があれば、このアプリケーションビルダを利用してちょっとしたサンプルを作ってみたいと思います。