スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 外堀は埋まった感じ | トップページ | ここで、また一週間休む »

ダイアログの見た目だけ

今はmacOS用AGMPlayerの開発フェーズで、まずは、その準備も兼ねて、macOS用AG-ムービーカッターを開発しているのだが、厄介そうなGUI絡みの実装が終わったので、今日からダイアログの作成を始めた。しかし、今日の所は、見た目の作成だけで時間切れだ。

作者が最初に公開した一般向けソフトはMasterReversiになるのだが、このMasterReversiを使ってみた事がある人なら、そのダイアログの多さに驚いたかもしれない。

少なくとも、何故、MasterReversiがmacOSに移植されないのか、というと、ダイアログを含めたGUI要素の移植が大変だからだ。

つまり、MasterReversiの思考エンジンをmacOS用に移植するのは容易なので、例えば、MasterReversiに付属させているコマンドラインツールである所の、MRSolverなら、macOS用に移植しようと思えば、1週間もあれば移植可能な筈だ。

しかし、MasterReversi本体を移植しようとすると、膨大な数のダイアログを作成する必要があるので、その利用者数を鑑みれば、労多くして益少なしになってしまう訳だ。

と、いう事で、ダイアログの作成は大変なのだが、何が大変なのか、というと、まず、画面上に、必要な部品を配置しなければならない。

もっとも、部品の配置は、WindowsではVisualStudio、MacではXcodeに内蔵されたGUIツールで行えるので、そういうのが好きな人にしてみれば、遊び感覚で行える。

ただし、一つや二つなら兎も角、AG-ムービーカッターには16種類のダイアログがあるので、これだけの数のダイアログを作っていると、途中で疲れてきても可笑しくは無い筈だ。

そして、より問題なのは、そうやってGUIツールで部品を配置したとしても、それだけでは、そのダイアログは利用可能にはならない、という事だ。

つまり、ダイアログが表示されたタイミングで、全ての部品を正しい値に初期化する必要があるし、ダイアログが閉じられたタイミングで、その時点の値を取り込む必要がある。

更に、ユーザーがダイアログを操作している最中に、色々と、処理が必要になる場合もあるので、そういったコードを記述する必要がある訳だ。

しかし、それ以前の問題として、前述のGUIツールで作成できるのはダイアログの配置情報でしかないので、その配置情報とコード上で作成するダイアログ部品とを結びつける必要もある訳だ。

と、いう事で、ダイアログの作成作業は、作者的には、三段階に別れるのだが、今日の所は、その第一段階目について、全ダイアログ分を一度に行った。

なので、メインメニュー等から、ダイアログを表示するコマンドを実行すると、全コマンドで、それっぽい見た目をしたダイアログが表示される様になっている。

もっとも、今日の所は、殆どのダイアログについては、配置と部品との接続も行っていないので、意味のある処理は行えない状況だ。

しかしまあ、第二段階目、第三段階目の実装についても、難しい作業ではないので、時間をかければ、特に問題なく終了する筈ではある。

問題は、その時間が、もったいない気がする、という事なのだが、作者的には、こういう作業は真面目には行わないので、今日は作業をしながらHuluの映画を何本か見れた。

なので、こういう作業が続けば、Huluについては、元を取れそうな気がしないでもない。

« 外堀は埋まった感じ | トップページ | ここで、また一週間休む »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/64936288

この記事へのトラックバック一覧です: ダイアログの見た目だけ:

« 外堀は埋まった感じ | トップページ | ここで、また一週間休む »

2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google