git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        paper.h
 | |
| // Purpose:     Paper database types and classes
 | |
| // Author:      Julian Smart
 | |
| // Modified by:
 | |
| // Created:     01/02/97
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) Julian Smart
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_PAPERH__
 | |
| #define _WX_PAPERH__
 | |
| 
 | |
| #include "wx/defs.h"
 | |
| #include "wx/event.h"
 | |
| #include "wx/cmndata.h"
 | |
| #include "wx/intl.h"
 | |
| #include "wx/hashmap.h"
 | |
| 
 | |
| /*
 | |
|  * Paper type: see defs.h for wxPaperSize enum.
 | |
|  * A wxPrintPaperType can have an id and a name, or just a name and wxPAPER_NONE,
 | |
|  * so you can add further paper types without needing new ids.
 | |
|  */
 | |
| 
 | |
| #ifdef __WXMSW__
 | |
| #define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, platformId, name, w, h)
 | |
| #else
 | |
| #define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, 0, name, w, h)
 | |
| #endif
 | |
| 
 | |
| class WXDLLIMPEXP_CORE wxPrintPaperType: public wxObject
 | |
| {
 | |
| public:
 | |
|     wxPrintPaperType();
 | |
| 
 | |
|     // platformId is a platform-specific id, such as in Windows, DMPAPER_...
 | |
|     wxPrintPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h);
 | |
| 
 | |
|     inline wxString GetName() const { return wxGetTranslation(m_paperName); }
 | |
|     inline wxPaperSize GetId() const { return m_paperId; }
 | |
|     inline int GetPlatformId() const { return m_platformId; }
 | |
| 
 | |
|     // Get width and height in tenths of a millimetre
 | |
|     inline int GetWidth() const { return m_width; }
 | |
|     inline int GetHeight() const { return m_height; }
 | |
| 
 | |
|     // Get size in tenths of a millimetre
 | |
|     inline wxSize GetSize() const { return wxSize(m_width, m_height); }
 | |
| 
 | |
|     // Get size in a millimetres
 | |
|     inline wxSize GetSizeMM() const { return wxSize(m_width/10, m_height/10); }
 | |
| 
 | |
|     // Get width and height in device units (1/72th of an inch)
 | |
|     wxSize GetSizeDeviceUnits() const ;
 | |
| 
 | |
| public:
 | |
|     wxPaperSize m_paperId;
 | |
|     int         m_platformId;
 | |
|     int         m_width;  // In tenths of a millimetre
 | |
|     int         m_height; // In tenths of a millimetre
 | |
|     wxString    m_paperName;
 | |
| 
 | |
| private:
 | |
|     DECLARE_DYNAMIC_CLASS(wxPrintPaperType)
 | |
| };
 | |
| 
 | |
| WX_DECLARE_STRING_HASH_MAP(wxPrintPaperType*, wxStringToPrintPaperTypeHashMap);
 | |
| 
 | |
| class WXDLLIMPEXP_FWD_CORE wxPrintPaperTypeList;
 | |
| 
 | |
| class WXDLLIMPEXP_CORE wxPrintPaperDatabase
 | |
| {
 | |
| public:
 | |
|     wxPrintPaperDatabase();
 | |
|     ~wxPrintPaperDatabase();
 | |
| 
 | |
|     void CreateDatabase();
 | |
|     void ClearDatabase();
 | |
| 
 | |
|     void AddPaperType(wxPaperSize paperId, const wxString& name, int w, int h);
 | |
|     void AddPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h);
 | |
| 
 | |
|     // Find by name
 | |
|     wxPrintPaperType *FindPaperType(const wxString& name);
 | |
| 
 | |
|     // Find by size id
 | |
|     wxPrintPaperType *FindPaperType(wxPaperSize id);
 | |
| 
 | |
|     // Find by platform id
 | |
|     wxPrintPaperType *FindPaperTypeByPlatformId(int id);
 | |
| 
 | |
|     // Find by size
 | |
|     wxPrintPaperType *FindPaperType(const wxSize& size);
 | |
| 
 | |
|     // Convert name to size id
 | |
|     wxPaperSize ConvertNameToId(const wxString& name);
 | |
| 
 | |
|     // Convert size id to name
 | |
|     wxString ConvertIdToName(wxPaperSize paperId);
 | |
| 
 | |
|     // Get the paper size
 | |
|     wxSize GetSize(wxPaperSize paperId);
 | |
| 
 | |
|     // Get the paper size
 | |
|     wxPaperSize GetSize(const wxSize& size);
 | |
| 
 | |
|     //
 | |
|     wxPrintPaperType* Item(size_t index) const;
 | |
|     size_t GetCount() const;
 | |
| private:
 | |
|     wxStringToPrintPaperTypeHashMap* m_map;
 | |
|     wxPrintPaperTypeList* m_list;
 | |
|     // DECLARE_DYNAMIC_CLASS(wxPrintPaperDatabase)
 | |
| };
 | |
| 
 | |
| extern WXDLLIMPEXP_DATA_CORE(wxPrintPaperDatabase*) wxThePrintPaperDatabase;
 | |
| 
 | |
| 
 | |
| #endif
 | |
|     // _WX_PAPERH__
 |