次に、CDE デスクトップ用のアプリケーションを作成するためのヒントについて説明します。
アプリケーションが CDE デスクトップ上で正常に機能することを保証するには、一部のプルダウンメニューにもフローティングメニューに組み込んだ機能を持たせる必要があります。こうすると、アプリケーションは 2 ボタンマウスデバイスと 3 ボタンマウスデバイスのどちらでも機能するようになります。
CDE 上では、カラーマップのインストールが OpenWindows 環境とは異なる方法で処理されます。この違いは、デフォルト以外のカラーマップを使用するサブウィンドウを指定するアプリケーションで識別できます。このサブウィンドウは、WM_COLORMAP_WINDOWS 属性で指定されます。
OpenWindows 環境では、アプリケーションはこの属性内でサブウィンドウを指定するだけですみます。ユーザが画面内でポインタを移動すると、OpenWindows のウィンドウマネージャ (olwm) は、ポインタが置かれているウィンドウ用に適切なカラーマップをインストールします。
CDE のウィンドウマネージャである dtwm は、この動作を行いません。olwm のポインタベースのカラーマップインストール機能に依存するアプリケーションを CDE 上で実行する場合は、正しい色が表示されないことがあります。この問題を回避するために、次のいくつかの対処方法があります。
WM_COLORMAP_WINDOWS 属性をまったく使用せずに、適切なカラーマップを持つトップレベルウィンドウ (シェルウィジェットのウィンドウ) のカラーマップ属性を更新します。ウィンドウに入力フォーカスが与えられているときは、いつでもこのカラーマップがインストールされます。
WM_COLORMAP_WINDOWS 属性はウィンドウの並び順のリストであり、通常はこのリスト内の最初のウィンドウにのみカラーマップがインストールされ、正しい色で表示されます。ほとんどの場合、他のサブウィンドウは正しい色で表示されません。特定のサブウィンドウを正しい色で表示することが重要な場合は、リストの最初に配置する必要があります。
トップレベルウィンドウの ID がリストに表示されない場合は、最初に表示されるものと見なされます。サブウィンドウを正しい色で表示するには、リスト内でそのサブウィンドウの ID の後にトップレベルウィンドウの ID を配置する必要があります。
アプリケーションは、いつでも WM_COLORMAP_WINDOWS 属性を更新できます。別のサブウィンドウにそのカラーマップがインストールされるなど、アプリケーションの状態が変化する場合は、新しいサブウィンドウが最初に表示されるようにアプリケーションは属性を更新する必要があります。
また、dtwm のキーの割り当てを変更して、キーボードのキーに f.next_cmap() 関数と f.prev_cmap() 関数を設定できます。該当するキーを押すたびに、これらの関数は WM_COLORMAP_WINDOWS リスト内を前後に移動して別のカラーマップをインストールします。