⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paper.h

📁 A*算法 A*算法 A*算法 A*算法A*算法A*算法
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////
// Name:        paper.h
// Purpose:     Paper database types and classes
// Author:      Julian Smart
// Modified by:
// Created:     01/02/97
// RCS-ID:      $Id: paper.h,v 1.11.2.2 2006/01/18 16:32:39 JS Exp $
// Copyright:   (c) Julian Smart
// Licence:     wxWindows licence
/////////////////////////////////////////////////////////////////////////////

#ifndef _WX_PAPERH__
#define _WX_PAPERH__

#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "paper.h"
#endif

#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 WXDLLEXPORT 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 WXDLLEXPORT wxPrintPaperTypeList;

class WXDLLEXPORT 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 WXDLLEXPORT_DATA(wxPrintPaperDatabase*) wxThePrintPaperDatabase;


#endif
    // _WX_PAPERH__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -