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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
{*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
Author: Olivier GUILBAUD
Abstract:
Common component dialogs for select or setup printers
------------------------------------------------------------------------------}
unit PrintersDlgs;
{$mode objfpc}
{$IFDEF LCLCocoa}
{$modeswitch objectivec1}
{$ENDIF}
{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Dialogs, LResources, Printers, OsPrinters;
type
TMeasureUnits = (unMM,unInch);
{ Type for compatibility with delphi }
{ TPageSetupDialog }
TPageSetupDialog = class(TCustomPrinterSetupDialog)
private
fMargins : TRect;
fUnits : TMeasureUnits;
protected
function DoExecute: Boolean; override;
public
constructor Create(TheOwner: TComponent); override;
property Margins : TRect read fMargins write fMargins;
property Units : TMeasureUnits read fUnits;
end;
{ TPrinterDialog }
TPrinterSetupDialog = class(TCustomPrinterSetupDialog)
protected
function DoExecute: Boolean; override;
end;
{ TPrintDialog }
TPrintDialog = class(TCustomPrintDialog)
protected
function DoExecute: Boolean; override;
published
property Collate;
property Copies;
property FromPage;
property MinPage;
property MaxPage;
property Options;
property PrintToFile;
property PrintRange;
property ToPage;
end;
procedure Register;
implementation
{$R printersdlgs.res}
{$IFDEF UNIX}
{$IFDEF DARWIN}
{$IFDEF LCLCarbon}
{$IFNDEF NativePrint}
// add units as needed for carbon, for the moment use cups ones.
uses udlgSelectPrinter, udlgPropertiesPrinter, udlgPageSetup, FileUtil;
{$I cupsprndialogs.inc}
{$ELSE}
uses Math, CarbonProc, MacOSAll, LCLProc;
{$I carbonprndialogs.inc}
{$ENDIF}
{$ENDIF}
{$IFDEF LCLCocoa}
uses Math, CocoaAll, MacOSAll, LCLProc;
{$I cocoaprndialogs.inc}
{$ENDIF}
{$IFDEF LCLQt}
uses qtobjects, qt4, qtint;
{$I qtprndialogs.inc}
{$ENDIF}
{$IFDEF LCLGtk2}
uses udlgSelectPrinter, udlgPropertiesPrinter, udlgPageSetup;
{$I cupsprndialogs.inc}
{$ENDIF}
{$ELSE}
{$IFDEF LCLQt}
uses qtobjects, qt4, qtint;
{$I qtprndialogs.inc}
{$ELSE}
uses udlgSelectPrinter, udlgPropertiesPrinter, udlgPageSetup;
{$I cupsprndialogs.inc}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$IFDEF MSWindows}
{$IFDEF LCLQt}
uses Windows,
qtobjects, qtwidgets, qt4, LCLIntf, LCLType;
{$I qtprndialogs.inc}
{$ELSE}
uses Windows, WinUtilPrn, InterfaceBase, LCLIntf, LCLType, WinVer;
{$I winprndialogs.inc}
{$ENDIF}
{$ENDIF}
constructor TPageSetupDialog.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
fMargins.Bottom := 0;
fMargins.Left := 0;
fMargins.Right := 0;
fMargins.Top := 0;
end;
procedure Register;
begin
RegisterComponents('Dialogs',[TPrinterSetupDialog,TPrintDialog,TPageSetupDialog]);
end;
end.
|