T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ショート動画等には非対応 | トップページ | 同期機能の特殊実装 »

ダークモードにも少し対応

今は、TiMediaServerの更新開発フェーズで、一応、完成したかなあ、という段階だ。なので、オンラインヘルプの更新を行おうか、と、思ったりもしているのだが、この際なので、ダークモードにも少し対応させておく事にした。

ダークモードというのをGoogleで検索すると、色々とヒットする。

具体的には、macOSだとか、iOS以外に、Androidにも、ダークモードというのはある様なので、それらに関する情報がヒットする。

と、言う事で、巷では、ダークモードが大流行りな訳なのだが、実際の所、作者的には、ダークモードは、出始めの頃に少し使ってみた事がある以外は、全く使っていないモードになる。

つまり、出始めの頃には、どんなモノだろう? という好奇心もあったので、使ってみた訳なのだが、その結果として、普通に見づらくなる事が判ったので、それ以降、全く使わなくなった訳だ。

にも関わらず、macOS用の作者製アプリは全てダークモードに対応している。

これは何故なのか、というと、macOS用ソフトの場合、Apple純正のライブラリをリンクしていれば、自動的に、ダークモードに対応する様になっているからだ。

つまり、作者的には、macOS環境では、Xcodeを使ってApple純正のライブラリが使われる格好で開発しているので、Appleがダークモードを提供する様になると、自動的に、作者製ソフトもダークモードをサポートする様になった訳だ。

上記の様な格好になっているのは、タマタマ、という訳ではない。

何故なら、作者製のmacOS向けソフトは、昔、Javaを使って開発していたからだ。

これは、Javaを使って開発していると、macOS以外に、Ubuntuでも、更には、Windowsでも、普通に動作するアプリが開発できたし、その内、Androidが出てきたのだが、そのAndroid用アプリの開発言語としても、Javaが採用されたので、Javaを使って開発していれば、開発効率が非常に高い! と、思ったりもしていたからだ。

しかし、その内、macOSでのApple純正Javaのサポートは中止され、純正Javaを使ってmacOS向けにソフトを開発しようとすると、作者製ソフトで多用しているOpenGLを使うのが困難になったりした。

また、macOSがフルスクリーン表示をサポートする様になっても、Javaアプリでは、当該機能を使う事は困難、というか、実質的に不可能っぽかったので、代替機能として、全画面表示を自前でサポートしたりもした訳だ。

しかし、上記以外にも、Apple純正ソフトが普通に使っているのに、Javaアプリでは使えない! みたいな機能が増えてきた、という事もあったし、Apple純正Javaとは異なり、純正Javaで開発したソフトはmacOS用に普通にインストールしたり実行したりする事が出来なくなった! みたいな事もあった。

なので、そんな苦労してまでJavaで開発するよりは、ネイティブアプリ化した方が楽! という事で、ある時期からJavaでの開発を取りやめて、ネイティブアプリ化した結果、前述の様な、ダークモードにも、何もしなくても、対応できた訳だ。

と、言う事で、作者製のmacOS向けソフトはmacOSのダークモードに対応しているのだが、Windows向けソフトは対応していない。

その理由は、作者製ソフトは、大昔から、Windowsネイティブアプリなのだが、Windows的には、macOSとは異なり、だからといって、自動的にダークモードに対応させたりしてくれないからだ。

そして、前述の様に、作者的には、ダークモードを使っていないし、実際の所、Windowsが10からHiDPI表示に力を入れ始めた頃、それにも対応していなかった作者製アプリを使っていたユーザーからは、対応してくれないと表示が小さくて読めない! みたいなクレームメールがいくつも来ていた訳だ。

なので、HiDPI対応については、作者的にも、Windows10の初期段階から、結構、積極的に行ったのだが、ダークモードについては、サポートしていないからといって、別に、クレームメールは一つも来ていない。

更に言えば、作者の手持ちソフトを色々と確認してみた所、Win32APIを使っていると思われる昔からあるソフトは、全て、ダークモードには対応していない! という事が判った。

つまり、Windowsのダークモードに付き合っているソフトは、未だに少ない! と、考えられるので、別に、作者製ソフトもダークモードに対応させる必要性は感じていないのだが、ネットで検索してみると、Win32アプリでも、ダークモードに対応できる! みたいなマイクロソフトのページが見つかった。

なので、それを見てみた所、タイトルバーの色だけは、簡単にダークモード用に変更する事は出来る感じだった。

もっとも、前述のマイクロソフトのページは、やらせる気がない感じの記述内容になっていた。

具体的には、使用するC++の言語バージョンを上げないと動作しないコードをインクルードしなければならず、かつ、それをやってみても、マトモにビルドできない様なサンプルコードが記載されていた訳だ。

と、言う事で、ダークモードについては、Appleとマイクロソフトではやる気の違いが大きすぎる感じで、その結果として、macOSでは殆ど全てのソフトがダークモードに対応しているにも関わらず、Windowsでは、対応しているソフトはマイクロソフト純正品だけ? みたいな状況になっている、と、思われる。

なので、作者的にも、HiDPI対応とは異なり、ダークモード対応については、まだまだ、真面目にする気にはならないのだが、前述の様に、タイトルバーの色については、ダークモード用にする事が可能の様だった。

ただし、ダークモードの判定は、マイクロソフトのページに記載されているサンプルコードを動作させる事が出来なかったので、純正の方式は使えないのだが、更にネットを検索してみると、レジストリを参照すれば判定可能! みたいな一般開発者のページがヒットした。

そのやり方だと、普通にWindows11での判定はできたので、作者製ソフトの中では、テストアプリ扱いになっているTiMediaServerについては、そんな感じのやり方で、ダークモード時には、タイトルバーの色だけは変わる様にしておこうか、と、思っている今日この頃だ。

« ショート動画等には非対応 | トップページ | 同期機能の特殊実装 »

2026年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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google