新しいウィンドウタイプでアプリの外観をカスタマイズ

4D 20 R5 では、 2つのウィンドウタイプが追加されました。新たに提供される、タイトルバーのないフレキシブルなモーダルまたは非モーダルのウィンドウは、アプリケーションのカスタマイズ性に新たな可能性をもたらします。これにより、アプリケーションの外観を完全に自由にカスタマイズできるので、仕様に正確に沿うよう、または好みどおりにタイトルバーを設計し、カスタマイズされた検索ボックスなどの機能をシームレスに統合することができます。

それだけではありません! 開発プロセスを合理化するために設計されたいくつかの新しいコマンドも導入しました:

  • ウィンドウを最小化するコマンド
  • ウィンドウが最小化されているかどうかを確認するためのコマンド
  • ウィンドウが最大化されているかどうかを確認するためのコマンド

HDI: 新しいウィンドウタイプで外観をカスタマイズ

新しいウィンドウの種類

2つの新しい定数が Open form windowコマンドで使用できます。

$winRef1:=Open form window("myForm1"; Plain form window no title)
$winRef2:=Open form window("myForm2"; Movable form dialog box no title)

Form without title bar, with a "Hello World!" static text and a "OK" button

カスタムタイトルバーを持つウィンドウの例題を見てみましょう:

  • 自動背景色の矩形。macOSでは、ライトモードで白く、ダークモードで黒く表示されます。
  • 矩形の上に非表示のボタン。クリックすると DRAG WINDOWコマンドをトリガーし、ウィンドウが移動できます。
  • 閉じる、最大化、最小化の 3つのボタン。それぞれに関連するコマンド MAXIMIZE WINDOW, MINIMIZE WINDOWREDUCE RESTORE WINDOW が紐づいています。ボタンの見た目については、macOS では少し手間をかけて、3つのボタン同時のロールオーバー表示もおこないます。これには、On Mouse EnterOn Mouse Leave イベントで、OBJECT SET FORMATコマンドでボタンのアイコンを変更します。

 

macOS:

Plain form window no title

Plain form window with a custom title bar that contains "close", "minimize" maximize" buttons and a search area.

Movable form dialog box no title

Modal dialog with a custom title bar that contains "close", "minimize", "maximize" and "help"buttons

WindowS:

Plain form window no title

blank

Movable form dialog box no title

blank

 

この例題が動いているところを見てみましょう:

新しいコマンド

これらの新しいウィンドウタイプに加えて、開発プロセスを簡素化する便利なコマンドも導入しました:

  • 新しいコマンド REDUCE RESTORE WINDOWを使うと、最前面のウィンドウや指定のウィンドウを最小化することができます。ウィンドウがすでに最小化されている場合、このコマンドはそのウィンドウをもとの状態に戻します。

REDUCE RESTORE WINDOW($winRef)

  • Is window reducedコマンドは、ウィンドウが現在最小化状態にあるかどうかを判定するのに役立ちます。これにより、ウィンドウの状態に応じて特定のアクションを実行することができます。

If(Is window reduced($winRef))
  // なんらかの処理
End if

  • Is window maximizedコマンドはウィンドウが最大化状態にあるかどうかを確認します。これにより、最大化状態と元の状態を簡単に切り替えることができます。

If(Is window maximized($winRef))
  MINIMUM WINDOW($winRef)
Else
  MAXIMIZE WINDOW($winRef)
End if

そして…

各ウィンドウタイプの詳細については、こちらのドキュメントページを参照ください。この機能を使って作成した素晴らしいインターフェースを、遠慮なく4D Forum で共有してください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。