Skip to content
Snippets Groups Projects
FXPrintDialog.h 5.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • /********************************************************************************
    *                                                                               *
    *                        P r i n t   J o b   D i a l o g                        *
    *                                                                               *
    *********************************************************************************
    * Copyright (C) 1999,2002 by Jeroen van der Zijp.   All Rights Reserved.        *
    *********************************************************************************
    * This library is free software; you can redistribute it and/or                 *
    * modify it under the terms of the GNU Lesser General Public                    *
    * License as published by the Free Software Foundation; either                  *
    * version 2.1 of the License, or (at your option) any later version.            *
    *                                                                               *
    * This library is distributed in the hope that it will be useful,               *
    * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *
    * Lesser General Public License for more details.                               *
    *                                                                               *
    * You should have received a copy of the GNU Lesser General Public              *
    * License along with this library; if not, write to the Free Software           *
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.    *
    *********************************************************************************
    * $Id: FXPrintDialog.h 809 2002-07-11 17:28:15Z lyle $                     *
    ********************************************************************************/
    #ifndef FXPRINTDIALOG_H
    #define FXPRINTDIALOG_H
    
    #ifndef FXDIALOGBOX_H
    #include "FXDialogBox.h"
    #endif
    
    namespace FX {
    
    
    class FXRadioButton;
    class FXComboBox;
    class FXListBox;
    class FXTextField;
    class FXSpinner;
    class FXIcon;
    
    
    /// Printer selection dialog
    class FXAPI FXPrintDialog : public FXDialogBox {
      FXDECLARE(FXPrintDialog)
    protected:
      FXRadioButton *sendtoprinter;
      FXComboBox    *printername;
      FXRadioButton *sendtofile;
      FXTextField   *filename;
      FXRadioButton *printall;
      FXRadioButton *printeven;
      FXRadioButton *printodd;
      FXRadioButton *printrange;
      FXRadioButton *firstpagefirst;
      FXRadioButton *lastpagefirst;
      FXRadioButton *printincolor;
      FXRadioButton *printinblacknwhite;
      FXRadioButton *orientportrait;
      FXRadioButton *orientlanscape;
      FXListBox     *media;
      FXSpinner     *firstpage;
      FXSpinner     *lastpage;
      FXSpinner     *numberofcopies;
      FXIcon        *landscapeIcon;
      FXIcon        *portraitIcon;
      FXPrinter      printer;
    protected:
      FXPrintDialog(){}
    private:
      FXPrintDialog(const FXPrintDialog&);
      FXPrintDialog &operator=(const FXPrintDialog&);
    public:
      long onCmdToPrinter(FXObject*,FXSelector,void*);
      long onUpdToPrinter(FXObject*,FXSelector,void*);
      long onCmdToFile(FXObject*,FXSelector,void*);
      long onUpdToFile(FXObject*,FXSelector,void*);
      long onCmdBrowse(FXObject*,FXSelector,void*);
      long onUpdBrowse(FXObject*,FXSelector,void*);
      long onCmdProps(FXObject*,FXSelector,void*);
      long onUpdProps(FXObject*,FXSelector,void*);
      long onCmdPortrait(FXObject*,FXSelector,void*);
      long onUpdPortrait(FXObject*,FXSelector,void*);
      long onCmdLandscape(FXObject*,FXSelector,void*);
      long onUpdLandscape(FXObject*,FXSelector,void*);
      long onCmdPages(FXObject*,FXSelector,void*);
      long onUpdPages(FXObject*,FXSelector,void*);
      long onCmdColor(FXObject*,FXSelector,void*);
      long onUpdColor(FXObject*,FXSelector,void*);
      long onCmdGray(FXObject*,FXSelector,void*);
      long onUpdGray(FXObject*,FXSelector,void*);
      long onCmdNumCopies(FXObject*,FXSelector,void*);
      long onUpdNumCopies(FXObject*,FXSelector,void*);
      long onCmdFirstPage(FXObject*,FXSelector,void*);
      long onUpdFirstPage(FXObject*,FXSelector,void*);
      long onCmdLastPage(FXObject*,FXSelector,void*);
      long onUpdLastPage(FXObject*,FXSelector,void*);
      long onCmdCollateNormal(FXObject*,FXSelector,void*);
      long onUpdCollateNormal(FXObject*,FXSelector,void*);
      long onCmdCollateReversed(FXObject*,FXSelector,void*);
      long onUpdCollateReversed(FXObject*,FXSelector,void*);
      long onCmdFileName(FXObject*,FXSelector,void*);
      long onUpdFileName(FXObject*,FXSelector,void*);
      long onCmdPrinterName(FXObject*,FXSelector,void*);
      long onUpdPrinterName(FXObject*,FXSelector,void*);
      long onCmdAccept(FXObject*,FXSelector,void*);
      long onCmdMedia(FXObject*,FXSelector,void*);
      long onUpdMedia(FXObject*,FXSelector,void*);
    public:
      enum{
        ID_TO_PRINTER=FXDialogBox::ID_LAST,
        ID_TO_FILE,
        ID_PRINTER_NAME,
        ID_FILE_NAME,
        ID_LANDSCAPE,
        ID_PORTRAIT,
        ID_MEDIA,
        ID_COLLATE_NORMAL,
        ID_COLLATE_REVERSED,
        ID_PAGES_ALL,
        ID_PAGES_EVEN,
        ID_PAGES_ODD,
        ID_PAGES_RANGE,
        ID_PAGES_FIRST,
        ID_PAGES_LAST,
        ID_BROWSE_FILE,
        ID_PROPERTIES,
        ID_COLOR_PRINTER,
        ID_GRAY_PRINTER,
        ID_NUM_COPIES
        };
    public:
    
      /// Construct print dialog
      FXPrintDialog(FXWindow* owner,const FXString& name,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
    
      /// Create dialog
      virtual void create();
    
      /// Set printer info
      void setPrinter(const FXPrinter& pr);
    
      /// Get printer info
      void getPrinter(FXPrinter& pr);
    
      /// Save dialog to a stream
      virtual void save(FXStream& store) const;
    
      /// Load dialog from a stream
      virtual void load(FXStream& store);
    
      /// Destructor
      virtual ~FXPrintDialog();
      };
    
    }
    
    #endif