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

📄 paper.cpp

📁 A*算法 A*算法 A*算法 A*算法A*算法A*算法
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    WXADDPAPER(wxPAPER_12X11,               90,                         wxTRANSLATE("12 x 11 in"), 3048, 2794);
    WXADDPAPER(wxPAPER_JENV_YOU4,           91,                         wxTRANSLATE("Japanese Envelope You #4"), 2350, 1050);
    WXADDPAPER(wxPAPER_JENV_YOU4_ROTATED,   92,                         wxTRANSLATE("Japanese Envelope You #4 Rotated"), 1050, 2350);
    WXADDPAPER(wxPAPER_P16K,                93,                         wxTRANSLATE("PRC 16K 146 x 215 mm"), 1460, 2150);
    WXADDPAPER(wxPAPER_P32K,                94,                         wxTRANSLATE("PRC 32K 97 x 151 mm"), 970, 1510);
    WXADDPAPER(wxPAPER_P32KBIG,             95,                         wxTRANSLATE("PRC 32K(Big) 97 x 151 mm"), 970, 1510);
    WXADDPAPER(wxPAPER_PENV_1,              96,                         wxTRANSLATE("PRC Envelope #1 102 x 165 mm"), 1020, 1650);
    WXADDPAPER(wxPAPER_PENV_2,              97,                         wxTRANSLATE("PRC Envelope #2 102 x 176 mm"), 1020, 1760);
    WXADDPAPER(wxPAPER_PENV_3,              98,                         wxTRANSLATE("PRC Envelope #3 125 x 176 mm"), 1250, 1760);
    WXADDPAPER(wxPAPER_PENV_4,              99,                         wxTRANSLATE("PRC Envelope #4 110 x 208 mm"), 1100, 2080);
    WXADDPAPER(wxPAPER_PENV_5,              100,                        wxTRANSLATE("PRC Envelope #5 110 x 220 mm"), 1100, 2200);
    WXADDPAPER(wxPAPER_PENV_6,              101,                        wxTRANSLATE("PRC Envelope #6 120 x 230 mm"), 1200, 2300);
    WXADDPAPER(wxPAPER_PENV_7,              102,                        wxTRANSLATE("PRC Envelope #7 160 x 230 mm"), 1600, 2300);
    WXADDPAPER(wxPAPER_PENV_8,              103,                        wxTRANSLATE("PRC Envelope #8 120 x 309 mm"), 1200, 3090);
    WXADDPAPER(wxPAPER_PENV_9,              104,                        wxTRANSLATE("PRC Envelope #9 229 x 324 mm"), 2290, 3240);
    WXADDPAPER(wxPAPER_PENV_10,             105,                        wxTRANSLATE("PRC Envelope #10 324 x 458 mm"), 3240, 4580);
    WXADDPAPER(wxPAPER_P16K_ROTATED,        106,                        wxTRANSLATE("PRC 16K Rotated"), 2150, 1460);
    WXADDPAPER(wxPAPER_P32K_ROTATED,        107,                        wxTRANSLATE("PRC 32K Rotated"), 1510, 970);
    WXADDPAPER(wxPAPER_P32KBIG_ROTATED,     108,                        wxTRANSLATE("PRC 32K(Big) Rotated"), 1510, 970);
    WXADDPAPER(wxPAPER_PENV_1_ROTATED,      109,                        wxTRANSLATE("PRC Envelope #1 Rotated 165 x 102 mm"), 1650, 1020);
    WXADDPAPER(wxPAPER_PENV_2_ROTATED,      110,                        wxTRANSLATE("PRC Envelope #2 Rotated 176 x 102 mm"), 1760, 1020);
    WXADDPAPER(wxPAPER_PENV_3_ROTATED,      111,                        wxTRANSLATE("PRC Envelope #3 Rotated 176 x 125 mm"), 1760, 1250);
    WXADDPAPER(wxPAPER_PENV_4_ROTATED,      112,                        wxTRANSLATE("PRC Envelope #4 Rotated 208 x 110 mm"), 2080, 1100);
    WXADDPAPER(wxPAPER_PENV_5_ROTATED,      113,                        wxTRANSLATE("PRC Envelope #5 Rotated 220 x 110 mm"), 2200, 1100);
    WXADDPAPER(wxPAPER_PENV_6_ROTATED,      114,                        wxTRANSLATE("PRC Envelope #6 Rotated 230 x 120 mm"), 2300, 1200);
    WXADDPAPER(wxPAPER_PENV_7_ROTATED,      115,                        wxTRANSLATE("PRC Envelope #7 Rotated 230 x 160 mm"), 2300, 1600);
    WXADDPAPER(wxPAPER_PENV_8_ROTATED,      116,                        wxTRANSLATE("PRC Envelope #8 Rotated 309 x 120 mm"), 3090, 1200);
    WXADDPAPER(wxPAPER_PENV_9_ROTATED,      117,                        wxTRANSLATE("PRC Envelope #9 Rotated 324 x 229 mm"), 3240, 2290);
    WXADDPAPER(wxPAPER_PENV_10_ROTATED,     118,                        wxTRANSLATE("PRC Envelope #10 Rotated 458 x 324 m"), 4580, 3240);
}

void wxPrintPaperDatabase::ClearDatabase()
{
    delete m_list;
    WX_CLEAR_HASH_MAP(wxStringToPrintPaperTypeHashMap, *m_map);
    delete m_map;
}

void wxPrintPaperDatabase::AddPaperType(wxPaperSize paperId, const wxString& name, int w, int h)
{
    wxPrintPaperType* tmp = new wxPrintPaperType(paperId, 0, name, w, h);
    (*m_map)[name] = tmp;
    m_list->push_back(tmp);
}

void wxPrintPaperDatabase::AddPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h)
{
    wxPrintPaperType* tmp = new wxPrintPaperType(paperId, platformId, name, w, h);
    (*m_map)[name] = tmp;
    m_list->push_back(tmp);
}

wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(const wxString& name)
{
    wxStringToPrintPaperTypeHashMap::iterator it = m_map->find(name);
    if (it != m_map->end())
        return it->second;
    else
        return NULL;
}

wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(wxPaperSize id)
{
    typedef wxStringToPrintPaperTypeHashMap::iterator iterator;

    for (iterator it = m_map->begin(), en = m_map->end(); it != en; ++it)
    {
        wxPrintPaperType* paperType = it->second;
        if (paperType->GetId() == id)
            return paperType;
    }

    return NULL;
}

wxPrintPaperType *wxPrintPaperDatabase::FindPaperTypeByPlatformId(int id)
{
    typedef wxStringToPrintPaperTypeHashMap::iterator iterator;

    for (iterator it = m_map->begin(), en = m_map->end(); it != en; ++it)
    {
        wxPrintPaperType* paperType = it->second;
        if (paperType->GetPlatformId() == id)
            return paperType;
    }

    return NULL;
}

wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(const wxSize& sz)
{
    typedef wxStringToPrintPaperTypeHashMap::iterator iterator;

    for (iterator it = m_map->begin(), en = m_map->end(); it != en; ++it)
    {
        wxPrintPaperType* paperType = it->second;
        wxSize paperSize = paperType->GetSize() ;
        if ( abs( paperSize.x - sz.x ) < 10 && abs( paperSize.y - sz.y ) < 10 )
            return paperType;
    }

    return NULL;
}

// Convert name to size id
wxPaperSize wxPrintPaperDatabase::ConvertNameToId(const wxString& name)
{
    wxPrintPaperType* type = FindPaperType(name);
    if (type)
        return type->GetId();
    else
        return wxPAPER_NONE;
}

// Convert size id to name
wxString wxPrintPaperDatabase::ConvertIdToName(wxPaperSize paperId)
{
    wxPrintPaperType* type = FindPaperType(paperId);
    if (type)
        return type->GetName();
    else
        return wxEmptyString;
}

// Get the paper size
wxSize wxPrintPaperDatabase::GetSize(wxPaperSize paperId)
{
    wxPrintPaperType* type = FindPaperType(paperId);
    if (type)
        return type->GetSize();
    else
        return wxSize(0,0);
}

// Get the paper size
wxPaperSize wxPrintPaperDatabase::GetSize(const wxSize& size)
{
    wxPrintPaperType* type = FindPaperType(size);
    if (type)
        return type->GetId();
    else
        return wxPAPER_NONE;
}

// QUICK and DIRTY
size_t wxPrintPaperDatabase::GetCount() const
{
    return m_list->GetCount();
}

wxPrintPaperType* wxPrintPaperDatabase::Item(size_t index) const
{
    return m_list->Item(index)->GetData();
}

// A module to allow initialization/cleanup of print paper
// things without calling these functions from app.cpp.

class WXDLLEXPORT wxPrintPaperModule: public wxModule
{
DECLARE_DYNAMIC_CLASS(wxPrintPaperModule)
public:
    wxPrintPaperModule() {}
    bool OnInit();
    void OnExit();
};

IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperModule, wxModule)

/*
 * Initialization/cleanup module
 */

bool wxPrintPaperModule::OnInit()
{
    wxThePrintPaperDatabase = new wxPrintPaperDatabase;
    wxThePrintPaperDatabase->CreateDatabase();

    return true;
}

void wxPrintPaperModule::OnExit()
{
    delete wxThePrintPaperDatabase;
    wxThePrintPaperDatabase = NULL;
}

#endif // wxUSE_PRINTING_ARCHITECTURE

⌨️ 快捷键说明

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