From d55906de77d5e0a62729bbe6bd30d958f4c70099 Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Mon, 24 Aug 2009 21:42:11 +0000
Subject: [PATCH] Add A0 and A1 formats to wxPaperSize enumeration.

Closes #11083.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 docs/changes.txt     | 1 +
 include/wx/defs.h    | 4 +++-
 src/common/paper.cpp | 6 ++++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/docs/changes.txt b/docs/changes.txt
index a11a311149..83c8386534 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -396,6 +396,7 @@ All (GUI):
 - Added wxWindow::CanScroll() behaving like the old HasScrollbar() and made
   HasScrollbar() really check for the scrollbar existence.
 - Added wxKeyEvent::IsKeyInCategory() (Jeff Tupper).
+- Add A0 and A1 paper formats support (Martin Perktold).
 
 GTK:
 
diff --git a/include/wx/defs.h b/include/wx/defs.h
index be410c2713..01953df50c 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -2530,7 +2530,9 @@ typedef enum
     wxPAPER_PENV_7_ROTATED,     /* PRC Envelope #7 Rotated 230 x 160 mm */
     wxPAPER_PENV_8_ROTATED,     /* PRC Envelope #8 Rotated 309 x 120 mm */
     wxPAPER_PENV_9_ROTATED,     /* PRC Envelope #9 Rotated 324 x 229 mm */
-    wxPAPER_PENV_10_ROTATED    /* PRC Envelope #10 Rotated 458 x 324 m */
+    wxPAPER_PENV_10_ROTATED,    /* PRC Envelope #10 Rotated 458 x 324 m */
+    wxPAPER_A0,                 /* A0 Sheet 841 x 1189 mm */
+    wxPAPER_A1                  /* A1 Sheet 594 x 841 mm */
 } wxPaperSize;
 
 /* Printing orientation */
diff --git a/src/common/paper.cpp b/src/common/paper.cpp
index f301fd01c2..49f76ed77e 100644
--- a/src/common/paper.cpp
+++ b/src/common/paper.cpp
@@ -212,6 +212,12 @@ void wxPrintPaperDatabase::CreateDatabase()
     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 mm"), 4580, 3240);
+
+    // notice that the values 135 and 136 for Windows paper size ids of A0 and
+    // A1 formats are not documented anywhere but seem to work for at least
+    // some printers so we use them until we find a better way (see #11083)
+    WXADDPAPER(wxPAPER_A0,                  136,                        wxTRANSLATE("A0 sheet, 841 x 1189 mm"), 8410, 11888);
+    WXADDPAPER(wxPAPER_A1,                  135,                        wxTRANSLATE("A1 sheet, 594 x 841 mm"), 5940, 8410);
 }
 
 void wxPrintPaperDatabase::ClearDatabase()
-- 
2.47.2