2010-10-14 01:27:31 -05:00
|
|
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2012-07-11 13:49:09 -05:00
|
|
|
/*
|
|
|
|
* This file is part of the LibreOffice project.
|
|
|
|
*
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
*
|
|
|
|
* This file incorporates work covered by the following license notice:
|
|
|
|
*
|
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
|
|
* with this work for additional information regarding copyright
|
|
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
|
|
*/
|
2009-06-12 04:36:34 -05:00
|
|
|
|
2012-03-07 18:40:31 -06:00
|
|
|
#ifndef INCLUDED_I18NUTIL_PAPER_HXX
|
|
|
|
#define INCLUDED_I18NUTIL_PAPER_HXX
|
2009-06-12 04:36:34 -05:00
|
|
|
|
2012-03-07 18:40:31 -06:00
|
|
|
#include "i18nutildllapi.h"
|
2009-06-12 04:36:34 -05:00
|
|
|
#include <rtl/string.hxx>
|
|
|
|
#include <com/sun/star/lang/Locale.hpp>
|
|
|
|
|
2010-11-15 02:17:07 -06:00
|
|
|
//!! WARNING: be aware of cui/source/tabpages/page.h where someone had the broken idea
|
|
|
|
//!! of duplicating the values of this enum in order to use those defines within
|
|
|
|
//!! src files.
|
|
|
|
//!! Thus don't reorder the enum values here without changing the code there as well.
|
2009-06-12 04:36:34 -05:00
|
|
|
enum Paper
|
|
|
|
{
|
|
|
|
PAPER_A0,
|
|
|
|
PAPER_A1,
|
|
|
|
PAPER_A2,
|
|
|
|
PAPER_A3,
|
|
|
|
PAPER_A4,
|
|
|
|
PAPER_A5,
|
|
|
|
PAPER_B4_ISO,
|
|
|
|
PAPER_B5_ISO,
|
|
|
|
PAPER_LETTER,
|
|
|
|
PAPER_LEGAL,
|
|
|
|
PAPER_TABLOID,
|
|
|
|
PAPER_USER,
|
|
|
|
PAPER_B6_ISO,
|
|
|
|
PAPER_ENV_C4,
|
|
|
|
PAPER_ENV_C5,
|
|
|
|
PAPER_ENV_C6,
|
|
|
|
PAPER_ENV_C65,
|
|
|
|
PAPER_ENV_DL,
|
|
|
|
PAPER_SLIDE_DIA,
|
2012-04-18 16:30:26 -05:00
|
|
|
PAPER_SCREEN_4_3,
|
2009-06-12 04:36:34 -05:00
|
|
|
PAPER_C,
|
|
|
|
PAPER_D,
|
|
|
|
PAPER_E,
|
|
|
|
PAPER_EXECUTIVE,
|
|
|
|
PAPER_FANFOLD_LEGAL_DE,
|
|
|
|
PAPER_ENV_MONARCH,
|
|
|
|
PAPER_ENV_PERSONAL,
|
|
|
|
PAPER_ENV_9,
|
|
|
|
PAPER_ENV_10,
|
|
|
|
PAPER_ENV_11,
|
|
|
|
PAPER_ENV_12,
|
|
|
|
PAPER_KAI16,
|
|
|
|
PAPER_KAI32,
|
|
|
|
PAPER_KAI32BIG,
|
|
|
|
PAPER_B4_JIS,
|
|
|
|
PAPER_B5_JIS,
|
|
|
|
PAPER_B6_JIS,
|
|
|
|
PAPER_LEDGER,
|
|
|
|
PAPER_STATEMENT,
|
|
|
|
PAPER_QUARTO,
|
|
|
|
PAPER_10x14,
|
|
|
|
PAPER_ENV_14,
|
|
|
|
PAPER_ENV_C3,
|
|
|
|
PAPER_ENV_ITALY,
|
|
|
|
PAPER_FANFOLD_US,
|
|
|
|
PAPER_FANFOLD_DE,
|
|
|
|
PAPER_POSTCARD_JP,
|
|
|
|
PAPER_9x11,
|
|
|
|
PAPER_10x11,
|
|
|
|
PAPER_15x11,
|
|
|
|
PAPER_ENV_INVITE,
|
|
|
|
PAPER_A_PLUS,
|
|
|
|
PAPER_B_PLUS,
|
|
|
|
PAPER_LETTER_PLUS,
|
|
|
|
PAPER_A4_PLUS,
|
|
|
|
PAPER_DOUBLEPOSTCARD_JP,
|
|
|
|
PAPER_A6,
|
|
|
|
PAPER_12x11,
|
|
|
|
PAPER_A7,
|
|
|
|
PAPER_A8,
|
|
|
|
PAPER_A9,
|
|
|
|
PAPER_A10,
|
|
|
|
PAPER_B0_ISO,
|
|
|
|
PAPER_B1_ISO,
|
|
|
|
PAPER_B2_ISO,
|
|
|
|
PAPER_B3_ISO,
|
|
|
|
PAPER_B7_ISO,
|
|
|
|
PAPER_B8_ISO,
|
|
|
|
PAPER_B9_ISO,
|
|
|
|
PAPER_B10_ISO,
|
|
|
|
PAPER_ENV_C2,
|
|
|
|
PAPER_ENV_C7,
|
|
|
|
PAPER_ENV_C8,
|
|
|
|
PAPER_ARCHA,
|
|
|
|
PAPER_ARCHB,
|
|
|
|
PAPER_ARCHC,
|
|
|
|
PAPER_ARCHD,
|
2012-04-18 16:30:26 -05:00
|
|
|
PAPER_ARCHE,
|
2012-07-05 13:45:15 -05:00
|
|
|
PAPER_SCREEN_16_9,
|
|
|
|
PAPER_SCREEN_16_10
|
2009-06-12 04:36:34 -05:00
|
|
|
};
|
|
|
|
|
2010-11-15 02:17:07 -06:00
|
|
|
// defined for 'equal size' test with the implementation array
|
2012-07-05 13:45:15 -05:00
|
|
|
#define NUM_PAPER_ENTRIES (PAPER_SCREEN_16_10 - PAPER_A0 + 1)
|
2010-11-15 02:17:07 -06:00
|
|
|
|
2009-06-12 04:36:34 -05:00
|
|
|
// ---------
|
|
|
|
// - Paper -
|
|
|
|
// ---------
|
|
|
|
|
2012-03-07 18:40:31 -06:00
|
|
|
class I18NUTIL_DLLPUBLIC PaperInfo
|
2009-06-12 04:36:34 -05:00
|
|
|
{
|
|
|
|
Paper m_eType;
|
|
|
|
long m_nPaperWidth; // width in 100thMM
|
|
|
|
long m_nPaperHeight; // height in 100thMM
|
|
|
|
public:
|
|
|
|
PaperInfo(Paper eType);
|
|
|
|
PaperInfo(long nPaperWidth, long nPaperHeight);
|
|
|
|
|
|
|
|
Paper getPaper() const { return m_eType; }
|
|
|
|
long getWidth() const { return m_nPaperWidth; }
|
|
|
|
long getHeight() const { return m_nPaperHeight; }
|
|
|
|
bool sloppyEqual(const PaperInfo &rOther) const;
|
|
|
|
bool doSloppyFit();
|
|
|
|
|
|
|
|
static PaperInfo getSystemDefaultPaper();
|
|
|
|
static PaperInfo getDefaultPaperForLocale(const ::com::sun::star::lang::Locale & rLocale);
|
|
|
|
|
2013-04-07 05:06:47 -05:00
|
|
|
static Paper fromPSName(const OString &rName);
|
|
|
|
static OString toPSName(Paper eType);
|
2009-06-12 04:36:34 -05:00
|
|
|
|
|
|
|
static long sloppyFitPageDimension(long nDimension);
|
|
|
|
};
|
|
|
|
|
2012-03-07 18:40:31 -06:00
|
|
|
#endif // INCLUDED_I18NUTIL_PAPER_HXX
|
2010-10-14 01:27:31 -05:00
|
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|