home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / cmndata.h < prev    next >
C/C++ Source or Header  |  2002-12-04  |  17KB  |  452 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        cmndata.h
  3. // Purpose:     Common GDI data classes
  4. // Author:      Julian Smart and others
  5. // Modified by:
  6. // Created:     01/02/97
  7. // RCS-ID:      $Id: cmndata.h,v 1.31.2.1 2002/12/03 14:39:32 SC Exp $
  8. // Copyright:   (c)
  9. // Licence:     wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_CMNDATA_H_BASE_
  13. #define _WX_CMNDATA_H_BASE_
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  16. #pragma interface "cmndata.h"
  17. #endif
  18.  
  19. #include "wx/window.h"
  20. #include "wx/font.h"
  21. #include "wx/colour.h"
  22. #include "wx/gdicmn.h"
  23.  
  24. class WXDLLEXPORT wxColourData: public wxObject
  25. {
  26. public:
  27.     wxColourData();
  28.     wxColourData(const wxColourData& data);
  29.     ~wxColourData();
  30.  
  31.     void SetChooseFull(bool flag) { chooseFull = flag; }
  32.     bool GetChooseFull() const { return chooseFull; }
  33.     void SetColour(const wxColour& colour) { dataColour = colour; }
  34.     const wxColour& GetColour() const { return dataColour; }
  35.     wxColour& GetColour() { return dataColour; }
  36.  
  37.     // Array of 16 custom colours
  38.     void SetCustomColour(int i, const wxColour& colour);
  39.     wxColour GetCustomColour(int i);
  40.  
  41.     void operator=(const wxColourData& data);
  42.  
  43. public:
  44.     wxColour        dataColour;
  45.     wxColour        custColours[16];
  46.     bool            chooseFull;
  47.     
  48. private:
  49.     DECLARE_DYNAMIC_CLASS(wxColourData)
  50. };
  51.  
  52. class WXDLLEXPORT wxFontData: public wxObject
  53. {
  54. public:
  55.     wxFontData();
  56.     ~wxFontData();
  57.  
  58.     wxFontData(const wxFontData& data)
  59.         : wxObject()
  60.         , fontColour(data.fontColour)
  61.         , showHelp(data.showHelp)
  62.         , allowSymbols(data.allowSymbols)
  63.         , enableEffects(data.enableEffects)
  64.         , initialFont(data.initialFont)
  65.         , chosenFont(data.chosenFont)
  66.         , minSize(data.minSize)
  67.         , maxSize(data.maxSize)
  68.         , m_encoding(data.m_encoding)
  69.         , m_encodingInfo(data.m_encodingInfo)
  70.     {
  71.     }
  72.  
  73.     wxFontData& operator=(const wxFontData& data)
  74.     {
  75.         wxObject::operator=(data);
  76.         fontColour     = data.fontColour;
  77.         showHelp       = data.showHelp;
  78.         allowSymbols   = data.allowSymbols;
  79.         enableEffects  = data.enableEffects;
  80.         initialFont    = data.initialFont;
  81.         chosenFont     = data.chosenFont;
  82.         minSize        = data.minSize;
  83.         maxSize        = data.maxSize;
  84.         m_encoding     = data.m_encoding;
  85.         m_encodingInfo = data.m_encodingInfo;
  86.         return *this;
  87.     }
  88.                           
  89.     void SetAllowSymbols(bool flag) { allowSymbols = flag; }
  90.     bool GetAllowSymbols() const { return allowSymbols; }
  91.  
  92.     void SetColour(const wxColour& colour) { fontColour = colour; }
  93.     wxColour &GetColour() { return fontColour; }
  94.  
  95.     void SetShowHelp(bool flag) { showHelp = flag; }
  96.     bool GetShowHelp() const { return showHelp; }
  97.  
  98.     void EnableEffects(bool flag) { enableEffects = flag; }
  99.     bool GetEnableEffects() const { return enableEffects; }
  100.  
  101.     void SetInitialFont(const wxFont& font) { initialFont = font; }
  102.     wxFont GetInitialFont() const { return initialFont; }
  103.  
  104.     void SetChosenFont(const wxFont& font) { chosenFont = font; }
  105.     wxFont GetChosenFont() const { return chosenFont; }
  106.  
  107.     void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; }
  108.  
  109.     // encoding info is split into 2 parts: the logical wxWin encoding
  110.     // (wxFontEncoding) and a structure containing the native parameters for
  111.     // it (wxNativeEncodingInfo)
  112.     wxFontEncoding GetEncoding() const { return m_encoding; }
  113.     void SetEncoding(wxFontEncoding encoding) { m_encoding = encoding; }
  114.  
  115.     wxNativeEncodingInfo& EncodingInfo() { return m_encodingInfo; }
  116.  
  117. public:
  118.     wxColour        fontColour;
  119.     bool            showHelp;
  120.     bool            allowSymbols;
  121.     bool            enableEffects;
  122.     wxFont          initialFont;
  123.     wxFont          chosenFont;
  124.     int             minSize;
  125.     int             maxSize;
  126.  
  127. private:
  128.     wxFontEncoding       m_encoding;
  129.     wxNativeEncodingInfo m_encodingInfo;
  130.     
  131. private:
  132.     DECLARE_DYNAMIC_CLASS(wxFontData)
  133. };
  134.  
  135. #if wxUSE_PRINTING_ARCHITECTURE
  136. /*
  137.  * wxPrintData
  138.  * Encapsulates printer information (not printer dialog information)
  139.  */
  140.  
  141. class WXDLLEXPORT wxPrintData: public wxObject
  142. {
  143. public:
  144.     wxPrintData();
  145.     wxPrintData(const wxPrintData& printData);
  146.     ~wxPrintData();
  147.  
  148.     int GetNoCopies() const { return m_printNoCopies; };
  149.     bool GetCollate() const { return m_printCollate; };
  150.     int  GetOrientation() const { return m_printOrientation; };
  151.  
  152.     // Is this data OK for showing the print dialog?
  153.     bool Ok() const ;
  154.  
  155.     const wxString& GetPrinterName() const { return m_printerName; }
  156.     bool GetColour() const { return m_colour; }
  157.     wxDuplexMode GetDuplex() const { return m_duplexMode; }
  158.     wxPaperSize GetPaperId() const { return m_paperId; }
  159.     const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size
  160.                                                                       // in wxPageSetupDialogData
  161.     wxPrintQuality GetQuality() const { return m_printQuality; }
  162.  
  163.     void SetNoCopies(int v) { m_printNoCopies = v; };
  164.     void SetCollate(bool flag) { m_printCollate = flag; };
  165.     void SetOrientation(int orient) { m_printOrientation = orient; };
  166.  
  167.     void SetPrinterName(const wxString& name) { m_printerName = name; }
  168.     void SetColour(bool colour) { m_colour = colour; }
  169.     void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; }
  170.     void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; }
  171.     void SetPaperSize(const wxSize& sz) { m_paperSize = sz; }
  172.     void SetQuality(wxPrintQuality quality) { m_printQuality = quality; }
  173.  
  174.     // PostScript-specific data
  175.     const wxString& GetPrinterCommand() const { return m_printerCommand; }
  176.     const wxString& GetPrinterOptions() const { return m_printerOptions; }
  177.     const wxString& GetPreviewCommand() const { return m_previewCommand; }
  178.     const wxString& GetFilename() const { return m_filename; }
  179.     const wxString& GetFontMetricPath() const { return m_afmPath; }
  180.     double GetPrinterScaleX() const { return m_printerScaleX; }
  181.     double GetPrinterScaleY() const { return m_printerScaleY; }
  182.     long GetPrinterTranslateX() const { return m_printerTranslateX; }
  183.     long GetPrinterTranslateY() const { return m_printerTranslateY; }
  184.     wxPrintMode GetPrintMode() const { return m_printMode; }
  185.  
  186.     void SetPrinterCommand(const wxString& command) { m_printerCommand = command; }
  187.     void SetPrinterOptions(const wxString& options) { m_printerOptions = options; }
  188.     void SetPreviewCommand(const wxString& command) { m_previewCommand = command; }
  189.     void SetFilename(const wxString& filename) { m_filename = filename; }
  190.     void SetFontMetricPath(const wxString& path) { m_afmPath = path; }
  191.     void SetPrinterScaleX(double x) { m_printerScaleX = x; }
  192.     void SetPrinterScaleY(double y) { m_printerScaleY = y; }
  193.     void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; }
  194.     void SetPrinterTranslateX(long x) { m_printerTranslateX = x; }
  195.     void SetPrinterTranslateY(long y) { m_printerTranslateY = y; }
  196.     void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; }
  197.     void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; }
  198.  
  199.     void operator=(const wxPrintData& data);
  200.  
  201. #if defined(__WXMSW__)
  202.     // Convert to/from the DEVMODE structure
  203.     void ConvertToNative();
  204.     void ConvertFromNative();
  205.     void* GetNativeData() const { return m_devMode; }
  206.     void SetNativeData(void* data) { m_devMode = data; }
  207.     void* GetNativeDataDevNames() const { return m_devNames; }
  208.     void SetNativeDataDevNames(void* data) { m_devNames = data; }
  209. #elif defined(__WXMAC__)
  210.   void ConvertToNative();
  211.   void ConvertFromNative();
  212. #endif
  213.  
  214. public:
  215. #if defined(__WXMSW__)
  216.     void*           m_devMode;
  217.     void*           m_devNames;
  218. #elif defined(__WXMAC__)
  219.     void*           m_macPageFormat ;
  220.     void*           m_macPrintSettings ;
  221.     void*            m_macPrintSession ;
  222. #endif
  223.  
  224. private:
  225.  
  226.     int             m_printNoCopies;
  227.     int             m_printOrientation;
  228.     bool            m_printCollate;
  229.  
  230.     // New members, 24/3/99
  231.     wxString        m_printerName;
  232.     bool            m_colour;
  233.     wxDuplexMode    m_duplexMode;
  234.     wxPrintQuality  m_printQuality;
  235.     wxPaperSize     m_paperId;
  236.     wxSize          m_paperSize;
  237.  
  238.     // PostScript-specific data
  239.     wxString        m_printerCommand;
  240.     wxString        m_previewCommand;
  241.     wxString        m_printerOptions;
  242.     wxString        m_filename;
  243.     wxString        m_afmPath;
  244.     double          m_printerScaleX;
  245.     double          m_printerScaleY;
  246.     long            m_printerTranslateX;
  247.     long            m_printerTranslateY;
  248.     wxPrintMode     m_printMode;
  249.     
  250. private:
  251.     DECLARE_DYNAMIC_CLASS(wxPrintData)
  252. };
  253.  
  254. /*
  255.  * wxPrintDialogData
  256.  * Encapsulates information displayed and edited in the printer dialog box.
  257.  * Contains a wxPrintData object which is filled in according to the values retrieved
  258.  * from the dialog.
  259.  */
  260.  
  261. class WXDLLEXPORT wxPrintDialogData: public wxObject
  262. {
  263. public:
  264.     wxPrintDialogData();
  265.     wxPrintDialogData(const wxPrintDialogData& dialogData);
  266.     wxPrintDialogData(const wxPrintData& printData);
  267.     ~wxPrintDialogData();
  268.  
  269.     int GetFromPage() const { return m_printFromPage; };
  270.     int GetToPage() const { return m_printToPage; };
  271.     int GetMinPage() const { return m_printMinPage; };
  272.     int GetMaxPage() const { return m_printMaxPage; };
  273.     int GetNoCopies() const { return m_printNoCopies; };
  274.     bool GetAllPages() const { return m_printAllPages; };
  275.     bool GetSelection() const { return m_printSelection; };
  276.     bool GetCollate() const { return m_printCollate; };
  277.     bool GetPrintToFile() const { return m_printToFile; };
  278.     bool GetSetupDialog() const { return m_printSetupDialog; };
  279.  
  280.     void SetFromPage(int v) { m_printFromPage = v; };
  281.     void SetToPage(int v) { m_printToPage = v; };
  282.     void SetMinPage(int v) { m_printMinPage = v; };
  283.     void SetMaxPage(int v) { m_printMaxPage = v; };
  284.     void SetNoCopies(int v) { m_printNoCopies = v; };
  285.     void SetAllPages(bool flag) { m_printAllPages = flag; };
  286.     void SetSelection(bool flag) { m_printSelection = flag; };
  287.     void SetCollate(bool flag) { m_printCollate = flag; };
  288.     void SetPrintToFile(bool flag) { m_printToFile = flag; };
  289.     void SetSetupDialog(bool flag) { m_printSetupDialog = flag; };
  290.  
  291.     void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; };
  292.     void EnableSelection(bool flag) { m_printEnableSelection = flag; };
  293.     void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; };
  294.     void EnableHelp(bool flag) { m_printEnableHelp = flag; };
  295.  
  296.     bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; };
  297.     bool GetEnableSelection() const { return m_printEnableSelection; };
  298.     bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; };
  299.     bool GetEnableHelp() const { return m_printEnableHelp; };
  300.  
  301.     // Is this data OK for showing the print dialog?
  302.     bool Ok() const { return m_printData.Ok() ; }
  303.  
  304.     wxPrintData& GetPrintData() { return m_printData; }
  305.     void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
  306.  
  307.     void operator=(const wxPrintDialogData& data);
  308.     void operator=(const wxPrintData& data); // Sets internal m_printData member
  309.  
  310. #ifdef __WXMSW__
  311.     // Convert to/from the PRINTDLG structure
  312.     void ConvertToNative();
  313.     void ConvertFromNative();
  314.     void SetOwnerWindow(wxWindow* win);
  315.     void* GetNativeData() const { return m_printDlgData; }
  316. #elif defined(__WXMAC__)
  317.     void ConvertToNative();
  318.     void ConvertFromNative();
  319. #endif
  320.  
  321. #ifdef __WXMSW__
  322.     void*           m_printDlgData;
  323. #endif
  324.  
  325. private:
  326.     int             m_printFromPage;
  327.     int             m_printToPage;
  328.     int             m_printMinPage;
  329.     int             m_printMaxPage;
  330.     int             m_printNoCopies;
  331.     bool            m_printAllPages;
  332.     bool            m_printCollate;
  333.     bool            m_printToFile;
  334.     bool            m_printSelection;
  335.     bool            m_printEnableSelection;
  336.     bool            m_printEnablePageNumbers;
  337.     bool            m_printEnableHelp;
  338.     bool            m_printEnablePrintToFile;
  339.     bool            m_printSetupDialog;
  340.     wxPrintData     m_printData;
  341.  
  342. private:    
  343.     DECLARE_DYNAMIC_CLASS(wxPrintDialogData)
  344. };
  345.  
  346. /*
  347. * This is the data used (and returned) by the wxPageSetupDialog.
  348. */
  349.  
  350. // Compatibility with old name
  351. #define wxPageSetupData wxPageSetupDialogData
  352.  
  353. class WXDLLEXPORT wxPageSetupDialogData: public wxObject
  354. {
  355. public:
  356.     wxPageSetupDialogData();
  357.     wxPageSetupDialogData(const wxPageSetupDialogData& dialogData);
  358.     wxPageSetupDialogData(const wxPrintData& printData);
  359.     ~wxPageSetupDialogData();
  360.  
  361.     wxSize GetPaperSize() const { return m_paperSize; };
  362.     wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); };
  363.     wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; };
  364.     wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; };
  365.     wxPoint GetMarginTopLeft() const { return m_marginTopLeft; };
  366.     wxPoint GetMarginBottomRight() const { return m_marginBottomRight; };
  367.  
  368.     bool GetDefaultMinMargins() const { return m_defaultMinMargins; };
  369.     bool GetEnableMargins() const { return m_enableMargins; };
  370.     bool GetEnableOrientation() const { return m_enableOrientation; };
  371.     bool GetEnablePaper() const { return m_enablePaper; };
  372.     bool GetEnablePrinter() const { return m_enablePrinter; };
  373.     bool GetDefaultInfo() const { return m_getDefaultInfo; };
  374.     bool GetEnableHelp() const { return m_enableHelp; };
  375.  
  376.     // Is this data OK for showing the page setup dialog?
  377.     bool Ok() const { return m_printData.Ok() ; }
  378.  
  379.     // If a corresponding paper type is found in the paper database, will set the m_printData
  380.     // paper size id member as well.
  381.     void SetPaperSize(const wxSize& sz);
  382.  
  383.     void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); };
  384.  
  385.     // Sets the wxPrintData id, plus the paper width/height if found in the paper database.
  386.     void SetPaperSize(wxPaperSize id);
  387.  
  388.     void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; };
  389.     void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; };
  390.     void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; };
  391.     void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; };
  392.     void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; };
  393.     void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; };
  394.  
  395.     void EnableMargins(bool flag) { m_enableMargins = flag; };
  396.     void EnableOrientation(bool flag) { m_enableOrientation = flag; };
  397.     void EnablePaper(bool flag) { m_enablePaper = flag; };
  398.     void EnablePrinter(bool flag) { m_enablePrinter = flag; };
  399.     void EnableHelp(bool flag) { m_enableHelp = flag; };
  400.  
  401. #if defined(__WIN95__)
  402.     // Convert to/from the PAGESETUPDLG structure
  403.     void ConvertToNative();
  404.     void ConvertFromNative();
  405.     void SetOwnerWindow(wxWindow* win);
  406.     void* GetNativeData() const { return m_pageSetupData; }
  407. #elif defined(__WXMAC__)
  408.     void ConvertToNative();
  409.     void ConvertFromNative();
  410. #endif
  411.  
  412.     // Use paper size defined in this object to set the wxPrintData
  413.     // paper id
  414.     void CalculateIdFromPaperSize();
  415.  
  416.     // Use paper id in wxPrintData to set this object's paper size
  417.     void CalculatePaperSizeFromId();
  418.  
  419.     wxPageSetupDialogData& operator=(const wxPageSetupData& data);
  420.     wxPageSetupDialogData& operator=(const wxPrintData& data);
  421.  
  422.     wxPrintData& GetPrintData() { return m_printData; }
  423.     void SetPrintData(const wxPrintData& printData) { m_printData = printData; }
  424.  
  425. #if defined(__WIN95__)
  426.     void*           m_pageSetupData;
  427. #endif
  428.  
  429. private:
  430.     wxSize          m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?)
  431.     wxPoint         m_minMarginTopLeft;
  432.     wxPoint         m_minMarginBottomRight;
  433.     wxPoint         m_marginTopLeft;
  434.     wxPoint         m_marginBottomRight;
  435.     bool            m_defaultMinMargins;
  436.     bool            m_enableMargins;
  437.     bool            m_enableOrientation;
  438.     bool            m_enablePaper;
  439.     bool            m_enablePrinter;
  440.     bool            m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT
  441.     bool            m_enableHelp;
  442.     wxPrintData     m_printData;
  443.     
  444. private:
  445.     DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData)
  446. };
  447.  
  448. #endif // wxUSE_PRINTING_ARCHITECTURE
  449.  
  450. #endif
  451. // _WX_CMNDATA_H_BASE_
  452.