スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 文字列で少し苦労する | トップページ | ファイル操作は可能に »

ポップアップメニューとか

今は、macOS用ネイティブ版AGMPlayerの開発フェーズで、進捗状況としては、あまり芳しくは無いものの、毎日、少しずつは進展している。今日は、ライブラリビューにポップアップメニューを実装したのだが、これだけでも、少しは大変だ。

macOS用のネイティブ版ソフトとしては、既に、Mirror-DTC / Nostalgic UFO Battler / TiExtender / AG-ムービーカッターをリリースしてきている。

なので、今更、ポップアップメニューの実装のやり方が判らない、という事はないのだが、そのやり方を覚えているのか、というと、そんな事もない訳だ。

つまり、単純なポップアップメニューを実装するだけでも、既存ソフトのコードを参照しながらの作業になるので、少し大変になる訳だ。

もっとも、その程度の作業が大変だ、なんて事を言っていたら、開発なんて出来ないぞ、なんて事を言う人は多いかもしれない。

何故なら、メニューというのもGUIになる訳だし、実際の所、gtkmmで開発しているUbuntu版と比べれば、Cocoaで開発しているmacOS版の方がメニューの作成は、大体においては、楽な訳だ。

しかし、Windows版のポップアップメニューはVisualStudioで視覚的に定義可能で、コードからの扱いも楽になっている訳だ。

と、言う事で、ポップアップメニューの実装一つとっても、Windows / macOS / Ubuntuでは、その方法が結構異なるのは困り者な訳だ。

つまり、ポップアップメニューに関しては、macOS版ではWindows版のコードは使えないのだが、機能的には同等にする必要があるので、前述のmacOS用既存ソフトと同時に、Windows版も参照しつつ、同等の機能を実現する必要がある。

しかし、そうやって苦労してmacOS用にポップアップメニューを作成できたとしても、そのコードは、後で開発する事になる筈のUbuntu版では利用できない訳だ。

と、言う事なので、汎用的に利用できないコードを書くのは気持ち的に疲れるので、ポップアップメニューの実装ですら、作者的には、少し大変になる訳だ。

ちなみに、ポップアップメニューの実装の何が大変なのか、というと、ポップアップメニューというのは、普通は、状況に応じてその内容を変化させなければならない、という所だ。

つまり、ライブラリビューのポップアップメニューの場合、選択されているオプジェクトに従ってメニューの項目は変化するし、チェックボックスがある様な項目については、そのチェックを毎回更新しなければならないし、状況に応じて表示するテキストを変化させたり、利用不可状態なら、グレー表示に切り替えたりする必要もある訳だ。

まあ、だからどうした、という声も聞こえてきそうではあるのだが、ポップアップメニューが選択された場合に実行される処理コードについては、大体は、Windows版からコピーして持ってこれるのに対して、ポップアップメニューの実装については、macOSオリジナルになってしまうので、作者的には、なんだかなあ、という気になってしまう訳だ。

« 文字列で少し苦労する | トップページ | ファイル操作は可能に »

トラックバック

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

この記事へのトラックバック一覧です: ポップアップメニューとか:

« 文字列で少し苦労する | トップページ | ファイル操作は可能に »

2017年10月
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 31        

広告

プライバシーポリシー

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

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

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

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