高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

GXPD41 - GX の一般設定プリント・パネルの交替

(96 年 10 月 25 日)

Q: 現在、書類の各ページに対する EPS ファイルを作成するプリンタ・ドライバを書こうとしています。これを行うには、一般設定プリント・パネルをカスタマイズする必要があります。“条件を詳しく”ボタンをクリックしたときに表示される項目 (給紙方法や出力先など) を基本的には少なくしようと考えています。また、“プリント”ボタンを“保存”ボタンに変え、ユーザが作成した EPS ファイルの保存場所を選択できるようにしようと思います。プリンタ・ドライバからジョブ・コレクションを修正して、必要のないコントロールを省くことができるのでしょうか。もしそれが可能なら、どのようにしてコレクション・アイテムを修正して、必要のないコントロールを非表示にすればいいのですか。また、どのメッセージを無効にしてコントロールを修正すればいいのですか。このアプローチが不可能な場合は、何か別の対処方法はあるのでしょうか (独自の一般設定パネルをデフォルトに変更するなどの方法)。

A: 現在の GX には、標準のプリント・パネルから大部分のパネル項目を削除するためのメカニズムは用意されていません。ユーザ・インタフェースの観点から、あらゆるユーザが同一のユーザ経験を得られるように、パネルはさまざまなドライバに対して同じインタフェースを維持する必要がある、というのがこの理由です。ただし、パネル内の特定の項目をグレイアウトして無効にしたり、必要に応じて、“出力先”ポップアップや“OK”ボタンをカスタマイズすることは可能です。

プリント・パネルの項目を無効にするには、対象となるコレクション・アイテムを取得し、SetCollectionItemInfo() 関数を呼び出して、locked 属性を設定する必要があります。これにより、パネルの項目はグレイ表示になります (注意: すべての項目がグレイ表示にできるわけではありません)。コレクション・アイテムは、『Inside Macintosh: QuickDraw GX Environments and Utilities』で詳しく説明されています。Quality アイテムは、グレイ表示/省略ルールの例外です。GXPrinting.h で定義された構造体を持つ Quality コレクション・アイテム (gxQualityTag = 'qual') には、disableQuality という名前の論理値フィールドがあります。ドライバによって、このフィールドに True が設定されると、Quality アイテムはすべて非表示になります。

“出力先”ポップアップを変更し、“OK”ボタンを修正するには (両方の処理をいっしょに行う必要があります)、GXHandleAltDestination メッセージを無効にし、ドライバに Alternate Destination ('dsta') リソースを追加する必要があります。詳細は、Technote 1028 にまとめられています。

以上のようなカスタマイズが目的に合わない場合は、パネル全体を無効にして (GXJobPrintDialog により)、独自のパネルを作成することもできます。統一されたユーザ・インタフェースの観点からすると、この方法はお勧めできるものではありませんが、完璧に目的に合ったパネルを得ることができます。


[ Technical Q&A's : Graphic & Media : QuickDraw GX : GX Printing : GXPD41 ]