弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

» 2012-03-03の日記

その名は「H2Viewer」

Windowsで動作するインタプリタ型プログラム言語「HSP(Hot Soup Processor)」のヘルプファイルを参照するのに、Windowsのアプリケーションを動かすことのできるエミュレーター「Wine」上でも動作し、強力な検索機能を備えたヘルプビューワ、名付けて「H2Viewer」を開発しているところです。仕事で使うアプリ開発がネットブックに入れたUbuntuや自宅のMacでもできたら便利だなぁ…というのか開発に至った動機です。純正のヘルプビューア「HSP Document Library」は、IEこと「Internet Explorer(インターネット・エクスプローラー)」を描画エンジンに用いているので「Wine」上ではエラーを出して動かないのです(単に動かす方法が別にあるのに私にそれができないだけかもしれませんが…)。そこでブラウザに依存せずに動作するヘルプビューワを自分で作るしかない…そう考えたのでした。また、せっかくなので検索機能を強化してより軽快で使い勝手のよいものにする方向で開発を進めております。今日はそんなお話。

すでに何度も説明しているのだけれど…膨大な量のテキストファイルから検索するために簡易データベースを作成した経緯があるので、その仕様を改良して新しい簡易データベース作成アプリを先に開発しました。このアプリは簡易データベースの管理・更新も受け持っており、当初はサブアプリケーションとしてヘルプビューワの起動前に立ち上げるつもりでしたが、思ったよりソースがコンパクトに仕上がったため、ヘルプビューワのソースに組み込み、ひとつのアプリケーションとして開発することにしました。

現在取り組んでいるのは、簡易データベースの内容を取り出して表示する部分の処理です。HSファイル毎に格納されている命令の解説を自由に取り出し閲覧することができるところまではできました。あとは大きなものとして検索機能の実装があります。そのほか命令の解説文の整形(できれば色分け表示ができるようリッチテキスト仕様にしたいところですが…)、関連項目へのリンク方法の模索、閲覧履歴をもとにしての「戻る」「進む」機能の実装などがあります。

やはり、どうせ作るなら純正の「HSP Document Library」とは違うベクトルで開発していきたいものですからね。「HSP Document Library」は前述の通りブラウザベースのため、リンクを使って次々に関連項目に飛べるなど、よく考えられた作りになっています。しかし、私の低スペック環境が原因かもしれませんがアプリケーションの起動が遅く、検索結果が表示されるまでにかなりの時間がかかる点が残念です。また、これも上記にありますが想定外の使用だから仕方のないことにしろ「Wine」での起動ができないのは私にとっては致命的です。そこで、ブラウザから離れてテキストベースのヘルプビューワを作成するのです。また、検索機能を大幅に強化し、AND検索やOR検索を可能にします。これは冒頭でも書いた簡易データベースによる検索アプリのエンジンを利用して、HSファイルを簡易データベース化することで実現するものです。

20120305-074222.jpg写真の画面が開発中の「H2Viewer」のものです。アプリケーションの左側上部に検索窓を備えております。右側のコンボボックスは、検索時にHSファイルの絞り込みオプションとなるほか、通常の閲覧時にはHSファイル毎の命令を呼び出すきっかけにもなります。写真ではちょうど私が自作したモジュール命令「kurage_mod」のHSファイルが選択され、左側のリストビューには「kurage_mod」の命令26個が表示されておりますね。ここで各命令を選択しますと、ウィンドウ右側に命令の解説が表示される仕組みです。次々と命令の解説を閲覧できるので、命令と仕様をただ眺めるのも楽しいはず(笑)。

で、開発途中に気付いたこと…。「H2Viewer」のウィンドウはリサイズ可能にしているのだけれど、現状では左側と右側の比率を変更することができません。リストビューの中で命令の簡単な説明文がはみ出しているのに、それを調整する手段が現在のところないのです。以前、私が開発したアプリケーションの中に、オブジェクトをクリックしたら左右の比率を変えるという機能を付加したものがありました。その原理を応用すればとりあえず問題は解決するのだけれど…オブジェクトのサイズがクリックするたびに変わるのはちょっと気持ち悪かったりもするので…今回は別な方法を模索したいと思います。


固定ページ

最近の投稿

カテゴリー





カレンダー

2012年3月
 1234
567891011
12131415161718
19202122232425
262728293031  

過去の日記はこちら

キーワードで検索