カスタム SWT PrintDialog を作成したいと思います。しかし、それは不可能のようです。
SWT PrintDialog では、「設定」をクリックして、ネイティブのプリンター ドライバーの設定ダイアログを開くことができます。org.eclipse.swt.printing.PrintDialog を使用せずに「ネイティブ プリンター ドライバーの設定ダイアログ」を開き、ドライバーの設定 (PrinterData) を読み取ることは可能ですか?
カスタム SWT PrintDialog を作成したいと思います。しかし、それは不可能のようです。
SWT PrintDialog では、「設定」をクリックして、ネイティブのプリンター ドライバーの設定ダイアログを開くことができます。org.eclipse.swt.printing.PrintDialog を使用せずに「ネイティブ プリンター ドライバーの設定ダイアログ」を開き、ドライバーの設定 (PrinterData) を読み取ることは可能ですか?
PrintDialog
非常にプラットフォーム固有です。たとえば、Mac バージョンには環境設定オプションがありません。このクラスには、特定のプラットフォームに接続するドキュメント化されていない低レベル コードが多数含まれています。独自のクラスで低レベル コードを使用することは可能ですが、これはサポートされておらず、プラットフォーム API の経験が必要です。
open
違いを説明するために、 Windows でのメソッドの最初の数行を次に示します。
public PrinterData open() {
/* Get the owner HWND for the dialog */
Control parent = getParent();
int style = getStyle();
long /*int*/ hwndOwner = parent.handle;
long /*int*/ hwndParent = parent.handle;
および Mac OS X コード:
public PrinterData open() {
PrinterData data = null;
NSPrintPanel panel = NSPrintPanel.printPanel();
NSPrintInfo printInfo = new NSPrintInfo(NSPrintInfo.sharedPrintInfo().copy());
if (printerData.duplex != SWT.DEFAULT) {
long /*int*/ settings = printInfo.PMPrintSettings();
および Linux:
public PrinterData open() {
if (OS.GTK_VERSION < OS.VERSION (2, 10, 0)) {
return Printer.getDefaultPrinterData();
} else {
byte [] titleBytes = Converter.wcsToMbcs (null, getText(), true);
long /*int*/ topHandle = getParent().handle;
while (topHandle != 0 && !OS.GTK_IS_WINDOW(topHandle)) {
topHandle = OS.gtk_widget_get_parent(topHandle);
}