kicad/common/title_block_shapes_gost.cpp

1508 lines
39 KiB
C++
Raw Normal View History

/**
* @file title_block_shapes_gost.cpp
* @brief description of graphic items and texts to build a title block
* using GOST standard
*/
/*
2013-05-24 08:59:40 +00:00
* This file creates a lot of structures to define the shape of a title block
* and frame references
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
2013-05-24 08:59:40 +00:00
#include <fctsys.h>
#include <drawtxt.h>
#include <appl_wxstruct.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <build_version.h>
#include <worksheet_shape_builder.h>
#define TEXTSIZE 100 // worksheet text size
// Work sheet structure type definitions.
enum TypeKi_WorkSheetData {
WS_OSN,
WS_TONK,
WS_TEXT,
WS_TEXTL
};
extern Ki_WorkSheetData WS_Osn1_Line1;
extern Ki_WorkSheetData WS_Osn1_Line2;
extern Ki_WorkSheetData WS_Osn1_Line3;
extern Ki_WorkSheetData WS_Osn1_Line4;
extern Ki_WorkSheetData WS_Osn1_Line5;
extern Ki_WorkSheetData WS_Osn1_Line6;
extern Ki_WorkSheetData WS_Osn1_Line7;
extern Ki_WorkSheetData WS_Osn1_Line8;
extern Ki_WorkSheetData WS_Osn1_Line9;
extern Ki_WorkSheetData WS_Osn1_Line10;
extern Ki_WorkSheetData WS_Osn1_Line11;
extern Ki_WorkSheetData WS_Osn1_Line12;
extern Ki_WorkSheetData WS_Osn1_Line13;
extern Ki_WorkSheetData WS_Osn1_Line14;
extern Ki_WorkSheetData WS_Osn1_Line15;
extern Ki_WorkSheetData WS_Osn1_Line16;
extern Ki_WorkSheetData WS_Osn1_Line17;
extern Ki_WorkSheetData WS_Osn1_Line18;
extern Ki_WorkSheetData WS_Osn1_Line19;
extern Ki_WorkSheetData WS_Osn1_Line20;
extern Ki_WorkSheetData WS_Osn1_Line21;
extern Ki_WorkSheetData WS_Osn1_Line22;
extern Ki_WorkSheetData WS_Osn1_Line23;
extern Ki_WorkSheetData WS_Osn1_Line24;
extern Ki_WorkSheetData WS_Osn1_Line25;
extern Ki_WorkSheetData WS_Osn1_Line26;
extern Ki_WorkSheetData WS_Osn1_Line27;
extern Ki_WorkSheetData WS_Osn1_Text1;
extern Ki_WorkSheetData WS_Osn1_Text2;
extern Ki_WorkSheetData WS_Osn1_Text3;
extern Ki_WorkSheetData WS_Osn1_Text4;
extern Ki_WorkSheetData WS_Osn1_Text5;
extern Ki_WorkSheetData WS_Osn1_Text6;
extern Ki_WorkSheetData WS_Osn1_Text7;
extern Ki_WorkSheetData WS_Osn1_Text8;
extern Ki_WorkSheetData WS_Osn1_Text9;
extern Ki_WorkSheetData WS_Osn1_Text10;
extern Ki_WorkSheetData WS_Osn1_Text11;
extern Ki_WorkSheetData WS_Osn1_Text12;
extern Ki_WorkSheetData WS_Osn1_Text13;
extern Ki_WorkSheetData WS_Osn1_Text14;
extern Ki_WorkSheetData WS_Osn1_Text15;
extern Ki_WorkSheetData WS_Osn1_Text16;
extern Ki_WorkSheetData WS_Osn1_Text17;
extern Ki_WorkSheetData WS_Osn2a_Line1;
extern Ki_WorkSheetData WS_Osn2a_Line2;
extern Ki_WorkSheetData WS_Osn2a_Line3;
extern Ki_WorkSheetData WS_Osn2a_Line4;
extern Ki_WorkSheetData WS_Osn2a_Line5;
extern Ki_WorkSheetData WS_Osn2a_Line6;
extern Ki_WorkSheetData WS_Osn2a_Line7;
extern Ki_WorkSheetData WS_Osn2a_Line8;
extern Ki_WorkSheetData WS_Osn2a_Line9;
extern Ki_WorkSheetData WS_Osn2a_Line10;
extern Ki_WorkSheetData WS_Osn2a_Line11;
extern Ki_WorkSheetData WS_Osn2a_Text1;
extern Ki_WorkSheetData WS_Osn2a_Text2;
extern Ki_WorkSheetData WS_Osn2a_Text3;
extern Ki_WorkSheetData WS_Osn2a_Text4;
extern Ki_WorkSheetData WS_Osn2a_Text5;
extern Ki_WorkSheetData WS_Osn2a_Text6;
extern Ki_WorkSheetData WS_Osn2a_Text7;
extern Ki_WorkSheetData WS_Osn2a_Text8;
extern Ki_WorkSheetData WS_DopLeft_Line1;
extern Ki_WorkSheetData WS_DopLeft_Line2;
extern Ki_WorkSheetData WS_DopLeft_Line3;
extern Ki_WorkSheetData WS_DopLeft_Line4;
extern Ki_WorkSheetData WS_DopLeft_Line5;
extern Ki_WorkSheetData WS_DopLeft_Line6;
extern Ki_WorkSheetData WS_DopLeft_Line7;
extern Ki_WorkSheetData WS_DopLeft_Line8;
extern Ki_WorkSheetData WS_DopLeft_Line9;
extern Ki_WorkSheetData WS_DopLeft_Line10;
extern Ki_WorkSheetData WS_DopLeft_Line11;
extern Ki_WorkSheetData WS_DopLeft_Line12;
extern Ki_WorkSheetData WS_DopLeft_Line13;
extern Ki_WorkSheetData WS_DopLeft_Line14;
extern Ki_WorkSheetData WS_DopLeft_Text1;
extern Ki_WorkSheetData WS_DopLeft_Text2;
extern Ki_WorkSheetData WS_DopLeft_Text3;
extern Ki_WorkSheetData WS_DopLeft_Text4;
extern Ki_WorkSheetData WS_DopLeft_Text5;
extern Ki_WorkSheetData WS_DopLeft_Text6;
extern Ki_WorkSheetData WS_DopLeft_Text7;
extern Ki_WorkSheetData WS_DopTop_Line1;
extern Ki_WorkSheetData WS_DopTop_Line2;
extern Ki_WorkSheetData WS_DopTop_Line3;
extern Ki_WorkSheetData WS_DopTop_Line4;
extern Ki_WorkSheetData WS_DopTop_Line5;
extern Ki_WorkSheetData WS_DopTop_Line6;
// Center - right bottom corner
Ki_WorkSheetData WS_Osn1_Line1 =
{
WS_OSN,
&WS_Osn1_Line2,
Mm2mils( 185 ),Mm2mils( 55 ),
0, Mm2mils( 55 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line2 =
{
WS_OSN,
&WS_Osn1_Line3,
Mm2mils( 120 ),Mm2mils( 40 ),
0, Mm2mils( 40 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line3 =
{
WS_OSN,
&WS_Osn1_Line4,
Mm2mils( 185 ),Mm2mils( 35 ),
Mm2mils( 120 ),Mm2mils( 35 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line4 =
{
WS_OSN,
&WS_Osn1_Line5,
Mm2mils( 50 ), Mm2mils( 35 ),
0, Mm2mils( 35 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line5 =
{
WS_OSN,
&WS_Osn1_Line6,
Mm2mils( 185 ),Mm2mils( 30 ),
Mm2mils( 120 ),Mm2mils( 30 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line6 =
{
WS_OSN,
&WS_Osn1_Line7,
Mm2mils( 50 ), Mm2mils( 20 ),
0, Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line7 =
{
WS_OSN,
&WS_Osn1_Line8,
Mm2mils( 120 ),Mm2mils( 15 ),
0, Mm2mils( 15 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line8 =
{
WS_OSN,
&WS_Osn1_Line9,
Mm2mils( 185 ),Mm2mils( 55 ),
Mm2mils( 185 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line9 =
{
WS_OSN,
&WS_Osn1_Line10,
Mm2mils( 178 ), Mm2mils( 55 ),
Mm2mils( 178 ), Mm2mils( 30 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line10 =
{
WS_OSN,
&WS_Osn1_Line11,
Mm2mils( 168 ), Mm2mils( 55 ),
Mm2mils( 168 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line11 =
{
WS_OSN,
&WS_Osn1_Line12,
Mm2mils( 145 ), Mm2mils( 55 ),
Mm2mils( 145 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line12 =
{
WS_OSN,
&WS_Osn1_Line13,
Mm2mils( 130 ), Mm2mils( 55 ),
Mm2mils( 130 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line13 =
{
WS_OSN,
&WS_Osn1_Line14,
Mm2mils( 120 ), Mm2mils( 55 ),
Mm2mils( 120 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line14 =
{
WS_OSN,
&WS_Osn1_Line15,
Mm2mils( 50 ), Mm2mils( 40 ),
Mm2mils( 50 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line15 =
{
WS_OSN,
&WS_Osn1_Line16,
Mm2mils( 35 ), Mm2mils( 40 ),
Mm2mils( 35 ), Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line16 =
{
WS_OSN,
&WS_Osn1_Line17,
Mm2mils( 30 ), Mm2mils( 20 ),
Mm2mils( 30 ), Mm2mils( 15 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line17 =
{
WS_OSN,
&WS_Osn1_Line18,
Mm2mils( 18 ), Mm2mils( 40 ),
Mm2mils( 18 ), Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line18 =
{
WS_TONK,
&WS_Osn1_Line19,
Mm2mils( 185 ), Mm2mils( 50 ),
Mm2mils( 120 ), Mm2mils( 50 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line19 =
{
WS_TONK,
&WS_Osn1_Line20,
Mm2mils( 185 ), Mm2mils( 45 ),
Mm2mils( 120 ), Mm2mils( 45 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line20 =
{
WS_TONK,
&WS_Osn1_Line21,
Mm2mils( 185 ), Mm2mils( 40 ),
Mm2mils( 120 ), Mm2mils( 40 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line21 =
{
WS_TONK,
&WS_Osn1_Line22,
Mm2mils( 185 ), Mm2mils( 25 ),
Mm2mils( 120 ), Mm2mils( 25 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line22 =
{
WS_TONK,
&WS_Osn1_Line23,
Mm2mils( 185 ), Mm2mils( 20 ),
Mm2mils( 120 ), Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line23 =
{
WS_TONK,
&WS_Osn1_Line24,
Mm2mils( 185 ), Mm2mils( 15 ),
Mm2mils( 120 ), Mm2mils( 15 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line24 =
{
WS_TONK,
&WS_Osn1_Line25,
Mm2mils( 185 ), Mm2mils( 10 ),
Mm2mils( 120 ), Mm2mils( 10 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line25 =
{
WS_TONK,
&WS_Osn1_Line26,
Mm2mils( 185 ), Mm2mils( 5 ),
Mm2mils( 120 ), Mm2mils( 5 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line26 =
{
WS_TONK,
&WS_Osn1_Line27,
Mm2mils( 45 ), Mm2mils( 35 ),
Mm2mils( 45 ), Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Line27 =
{
WS_TONK,
&WS_Osn1_Text1,
Mm2mils( 40 ), Mm2mils( 35 ),
Mm2mils( 40 ), Mm2mils( 20 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn1_Text1 =
{
WS_TEXT,
&WS_Osn1_Text2,
Mm2mils( 181.5 ),Mm2mils( 32.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Изм." )
};
Ki_WorkSheetData WS_Osn1_Text2 =
{
WS_TEXTL,
&WS_Osn1_Text3,
Mm2mils( 184 ), Mm2mils( 27.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Разраб." )
};
Ki_WorkSheetData WS_Osn1_Text3 =
{
WS_TEXTL,
&WS_Osn1_Text4,
Mm2mils( 184 ),Mm2mils( 22.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Пров." )
};
Ki_WorkSheetData WS_Osn1_Text4 =
{
WS_TEXTL,
&WS_Osn1_Text5,
Mm2mils( 184 ), Mm2mils( 17.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Т.контр." )
};
Ki_WorkSheetData WS_Osn1_Text5 =
{
WS_TEXTL,
&WS_Osn1_Text6,
Mm2mils( 184 ), Mm2mils( 7.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Н.контр." )
};
Ki_WorkSheetData WS_Osn1_Text6 =
{
WS_TEXTL,
&WS_Osn1_Text7,
Mm2mils( 184 ),Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Утв." )
};
Ki_WorkSheetData WS_Osn1_Text7 =
{
WS_TEXT,
&WS_Osn1_Text8,
Mm2mils( 173 ),Mm2mils( 32.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Лист" )
};
Ki_WorkSheetData WS_Osn1_Text8 =
{
WS_TEXT,
&WS_Osn1_Text9,
Mm2mils( 156.5 ), Mm2mils( 32.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "N докум." )
};
Ki_WorkSheetData WS_Osn1_Text9 =
{
WS_TEXT,
&WS_Osn1_Text10,
Mm2mils( 137.5 ),Mm2mils( 32.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Подп." )
};
Ki_WorkSheetData WS_Osn1_Text10 =
{
WS_TEXT,
&WS_Osn1_Text11,
Mm2mils( 125 ), Mm2mils( 32.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Дата" )
};
Ki_WorkSheetData WS_Osn1_Text11 =
{
WS_TEXT,
&WS_Osn1_Text12,
Mm2mils( 42.5 ),Mm2mils( 37.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Лит." )
};
Ki_WorkSheetData WS_Osn1_Text12 =
{
WS_TEXT,
&WS_Osn1_Text13,
Mm2mils( 26.5 ),Mm2mils( 37.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Масса" )
};
Ki_WorkSheetData WS_Osn1_Text13 =
{
WS_TEXT,
&WS_Osn1_Text14,
Mm2mils( 9 ), Mm2mils( 37.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Масштаб" )
};
Ki_WorkSheetData WS_Osn1_Text14 =
{
WS_TEXTL,
&WS_Osn1_Text15,
Mm2mils( 49 ), Mm2mils( 17.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Лист" )
};
Ki_WorkSheetData WS_Osn1_Text15 =
{
WS_TEXTL,
&WS_Osn1_Text16,
Mm2mils( 29 ), Mm2mils( 17.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Листов" )
};
Ki_WorkSheetData WS_Osn1_Text16 =
{
WS_TEXTL,
&WS_Osn1_Text17,
Mm2mils( 40 ), -Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Формат" )
};
Ki_WorkSheetData WS_Osn1_Text17 =
{
WS_TEXTL,
NULL,
Mm2mils( 110 ), -Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Копировал" )
};
Ki_WorkSheetData WS_Osn2a_Line1 =
{
WS_OSN,
&WS_Osn2a_Line2,
Mm2mils( 185 ), Mm2mils( 15 ),
0, Mm2mils( 15 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line2 =
{
WS_OSN,
&WS_Osn2a_Line3,
Mm2mils( 185 ), Mm2mils( 5 ),
Mm2mils( 120 ), Mm2mils( 5 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line3 =
{
WS_OSN,
&WS_Osn2a_Line4,
Mm2mils( 10 ), Mm2mils( 8 ),
0, Mm2mils( 8 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line4 =
{
WS_OSN,
&WS_Osn2a_Line5,
Mm2mils( 185 ), Mm2mils( 15 ),
Mm2mils( 185 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line5 =
{
WS_OSN,
&WS_Osn2a_Line6,
Mm2mils( 178 ), Mm2mils( 15 ),
Mm2mils( 178 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line6 =
{
WS_OSN,
&WS_Osn2a_Line7,
Mm2mils( 168 ), Mm2mils( 15 ),
Mm2mils( 168 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line7 =
{
WS_OSN,
&WS_Osn2a_Line8,
Mm2mils( 145 ), Mm2mils( 15 ),
Mm2mils( 145 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line8 =
{
WS_OSN,
&WS_Osn2a_Line9,
Mm2mils( 130 ), Mm2mils( 15 ),
Mm2mils( 130 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line9 =
{
WS_OSN,
&WS_Osn2a_Line10,
Mm2mils( 120 ), Mm2mils( 15 ),
Mm2mils( 120 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line10 =
{
WS_OSN,
&WS_Osn2a_Line11,
Mm2mils( 10 ), Mm2mils( 15 ),
Mm2mils( 10 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Line11 =
{
WS_TONK,
&WS_Osn2a_Text1,
Mm2mils( 185 ), Mm2mils( 10 ),
Mm2mils( 120 ), Mm2mils( 10 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_Osn2a_Text1 =
{
WS_TEXT,
&WS_Osn2a_Text2,
Mm2mils( 181.5 ),Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Изм." )
};
Ki_WorkSheetData WS_Osn2a_Text2 =
{
WS_TEXT,
&WS_Osn2a_Text3,
Mm2mils( 173 ), Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Лист" )
};
Ki_WorkSheetData WS_Osn2a_Text3 =
{
WS_TEXT,
&WS_Osn2a_Text4,
Mm2mils( 156.5 ), Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "N докум." )
};
Ki_WorkSheetData WS_Osn2a_Text4 =
{
WS_TEXT,
&WS_Osn2a_Text5,
Mm2mils( 137.5 ),Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Подп." )
};
Ki_WorkSheetData WS_Osn2a_Text5 =
{
WS_TEXT,
&WS_Osn2a_Text6,
Mm2mils( 125 ), Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Дата" )
};
Ki_WorkSheetData WS_Osn2a_Text6 =
{
WS_TEXT,
&WS_Osn2a_Text7,
Mm2mils( 5 ), Mm2mils( 11.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Лист" )
};
Ki_WorkSheetData WS_Osn2a_Text7 =
{
WS_TEXTL,
&WS_Osn2a_Text8,
Mm2mils( 40 ), -Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Формат" )
};
Ki_WorkSheetData WS_Osn2a_Text8 =
{
WS_TEXTL,
NULL,
Mm2mils( 110 ), -Mm2mils( 2.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Копировал" )
};
// Center - left bottom corner
Ki_WorkSheetData WS_DopLeft_Line1 =
{
WS_OSN,
&WS_DopLeft_Line2,
Mm2mils( 12 ), Mm2mils( 145 ),
0, Mm2mils( 145 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line2 =
{
WS_OSN,
&WS_DopLeft_Line3,
Mm2mils( 12 ), Mm2mils( 110 ),
0, Mm2mils( 110 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line3 =
{
WS_OSN,
&WS_DopLeft_Line4,
Mm2mils( 12 ), Mm2mils( 85 ),
0, Mm2mils( 85 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line4 =
{
WS_OSN,
&WS_DopLeft_Line5,
Mm2mils( 12 ), Mm2mils( 60 ),
0, Mm2mils( 60 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line5 =
{
WS_OSN,
&WS_DopLeft_Line6,
Mm2mils( 12 ), Mm2mils( 25 ),
0, Mm2mils( 25 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line6 =
{
WS_OSN,
&WS_DopLeft_Line7,
Mm2mils( 12 ), 0,
0, 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line7 =
{
WS_OSN,
&WS_DopLeft_Line8,
Mm2mils( 12 ), Mm2mils( 145 ),
Mm2mils( 12 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line8 =
{
WS_OSN,
&WS_DopLeft_Text1,
Mm2mils( 7 ), Mm2mils( 145 ),
Mm2mils( 7 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Text1 =
{
WS_TEXT,
&WS_DopLeft_Text2,
Mm2mils( 9.5 ), Mm2mils( 12.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Инв.N подл." )
};
Ki_WorkSheetData WS_DopLeft_Text2 =
{
WS_TEXT,
&WS_DopLeft_Text3,
Mm2mils( 9.5 ), Mm2mils( 42.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Подп. и дата" )
};
Ki_WorkSheetData WS_DopLeft_Text3 =
{
WS_TEXT,
&WS_DopLeft_Text4,
Mm2mils( 9.5 ), Mm2mils( 72.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Взам.инв.N" )
};
Ki_WorkSheetData WS_DopLeft_Text4 =
{
WS_TEXT,
&WS_DopLeft_Text5,
Mm2mils( 9.5 ), Mm2mils( 97.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Инв.N дубл." )
};
Ki_WorkSheetData WS_DopLeft_Text5 =
{
WS_TEXT,
&WS_DopLeft_Line9,
Mm2mils( 9.5 ), Mm2mils( 127.5 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Подп. и дата" )
};
Ki_WorkSheetData WS_DopLeft_Line9 =
{
WS_OSN,
&WS_DopLeft_Line10,
Mm2mils( 7 ), Mm2mils( 287 ),
Mm2mils( 7 ), Mm2mils( 167 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line10 =
{
WS_OSN,
&WS_DopLeft_Line11,
Mm2mils( 12 ), Mm2mils( 287 ),
Mm2mils( 12 ), Mm2mils( 167 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line11 =
{
WS_OSN,
&WS_DopLeft_Line12,
Mm2mils( 12 ), Mm2mils( 287 ),
Mm2mils( 12 ), Mm2mils( 167 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line12 =
{
WS_OSN,
&WS_DopLeft_Line13,
Mm2mils( 12 ), Mm2mils( 167 ),
0, Mm2mils( 167 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line13 =
{
WS_OSN,
&WS_DopLeft_Line14,
Mm2mils( 12 ), Mm2mils( 227 ),
0, Mm2mils( 227 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Line14 =
{
WS_OSN,
&WS_DopLeft_Text6,
Mm2mils( 12 ), Mm2mils( 287 ),
0, Mm2mils( 287 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopLeft_Text6 =
{
WS_TEXT,
&WS_DopLeft_Text7,
Mm2mils( 9.5 ), Mm2mils( 197 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Справ. N" )
};
Ki_WorkSheetData WS_DopLeft_Text7 =
{
WS_TEXT,
NULL,
Mm2mils( 9.5 ), Mm2mils( 257 ),
0, 0,
2013-05-24 08:59:40 +00:00
wxT( "Перв. примен." )
};
// Center - left top corner
Ki_WorkSheetData WS_DopTop_Line1 =
{
WS_OSN,
&WS_DopTop_Line2,
Mm2mils( 70 ), 0,
Mm2mils( 70 ), Mm2mils( 14 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopTop_Line2 =
{
WS_OSN,
&WS_DopTop_Line3,
Mm2mils( 70 ), Mm2mils( 14 ),
0, Mm2mils( 14 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopTop_Line3 =
{
WS_OSN,
&WS_DopTop_Line4,
Mm2mils( 70 ), Mm2mils( 14 ),
Mm2mils( 137 ), Mm2mils( 14 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopTop_Line4 =
{
WS_OSN,
&WS_DopTop_Line5,
Mm2mils( 84 ), Mm2mils( 7 ),
Mm2mils( 137 ), Mm2mils( 7 ),
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopTop_Line5 =
{
WS_OSN,
&WS_DopTop_Line6,
Mm2mils( 84 ), Mm2mils( 14 ),
Mm2mils( 84 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
Ki_WorkSheetData WS_DopTop_Line6 =
{
WS_OSN,
NULL,
Mm2mils( 137 ),Mm2mils( 14 ),
Mm2mils( 137 ), 0,
2013-05-24 08:59:40 +00:00
NULL
};
#include <worksheet_shape_builder.h>
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
const wxString& aPaperFormat,
const wxString& aFileName,
const wxString& aSheetPathHumanReadable,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aLineColor, EDA_COLOR_T aTextColor )
{
wxPoint pos;
wxPoint end;
int refx, refy;
Ki_WorkSheetData* WsItem;
wxSize size( TEXTSIZE * m_milsToIu, TEXTSIZE * m_milsToIu );
wxString msg;
WS_DRAW_ITEM_TEXT* gtext;
// Upper left corner
refx = m_LTmargin.x;
refy = m_LTmargin.y;
// lower right corner
int xg, yg;
xg = m_pageSize.x - m_RBmargin.x;
yg = m_pageSize.y - m_RBmargin.y;
int lnMsg, ln;
int lnWosn = m_penSize * 2;
int lnWtonk = m_penSize;
wxSize sz;
wxSize size0_8( TEXTSIZE * m_milsToIu * 0.8, TEXTSIZE * m_milsToIu * 1 );
wxSize size1_5( TEXTSIZE * m_milsToIu * 1.5, TEXTSIZE * m_milsToIu * 1.5 );
wxSize size2( TEXTSIZE * m_milsToIu * 2, TEXTSIZE * m_milsToIu * 2 );
wxSize size3( TEXTSIZE * m_milsToIu * 3, TEXTSIZE * m_milsToIu * 3 );
// Draw the border.
Append( new WS_DRAW_ITEM_RECT(
wxPoint( refx * m_milsToIu, refy * m_milsToIu ),
wxPoint( xg * m_milsToIu, yg * m_milsToIu ),
lnWosn, aLineColor ) );
// Center - right bottom corner
refx = m_pageSize.x - m_RBmargin.x;
refy = m_pageSize.y - m_RBmargin.y;
// First page
2013-05-24 08:59:40 +00:00
if( m_sheetNumber == 1 )
{
for( WsItem = &WS_Osn1_Line1; WsItem != NULL; WsItem = WsItem->Pnext )
{
pos.x = (refx - WsItem->m_Posx) * m_milsToIu;
pos.y = (refy - WsItem->m_Posy) * m_milsToIu;
end.x = (refx - WsItem->m_Endx) * m_milsToIu;
end.y = (refy - WsItem->m_Endy) * m_milsToIu;
2013-05-24 08:59:40 +00:00
msg = WsItem->m_TextBase;
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWtonk, aLineColor ) );
break;
case WS_TEXT:
if( !msg.IsEmpty() )
{
if( WsItem == &WS_Osn1_Text1 )
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
size0_8, m_penSize,
aLineColor ) );
else
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
}
break;
case WS_TEXTL:
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
break;
}
}
// Sheet number
2013-05-24 08:59:40 +00:00
if( m_sheetCount > 1 )
{
pos.x = ( refx - Mm2mils( 36 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 17.5 ) ) * m_milsToIu;
msg.Empty();
2013-05-24 08:59:40 +00:00
msg << m_sheetNumber;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
}
// Count of sheets
pos.x = ( refx - Mm2mils( 10 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 17.5 ) ) * m_milsToIu;
msg.Empty();
2013-05-24 08:59:40 +00:00
msg << m_sheetCount;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
// Company name
msg = aTitleBlock.GetCompany();
if( !msg.IsEmpty() )
{
sz = size1_5;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 49 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 25 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 7.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aLineColor ) );
}
// Title
msg = aTitleBlock.GetTitle();
if( !msg.IsEmpty() )
{
sz = size1_5;
wxArrayString lines;
int titleWidth = 0;
int titleHeight = (sz.y + sz.y * 0.5) / m_milsToIu;
int titleFieldWidth = Mm2mils( 69 );
int titleFieldHeight = Mm2mils( 24 );
int index = 0;
wxString fullMsg = msg;
while( 1 ) // Reduce the height of wrapped title until the fit
{
while( 1 ) // Wrap the title
{
titleWidth = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
if( titleWidth > titleFieldWidth )
{
index = 0;
while( 1 )
{
msg = msg.Left( msg.Length() - 1 );
if( msg.Length() == 0 )
{
lines.Clear();
msg = fullMsg;
sz.x -= m_milsToIu;
break;
}
else
{
index++;
titleWidth =
ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
wxString ch = wxString( msg.Last() );
if( titleWidth < titleFieldWidth && ch == wxT( " " ) )
{
// New sentence on a new line
int dot = msg.Index( wxT( ". " ) );
if( dot != wxNOT_FOUND )
{
index += msg.Length() - dot - 2;
msg = msg.Left( dot + 1 );
lines.Add( msg );
msg = fullMsg.Right( index );
break;
}
else
{
msg = msg.Left( msg.Length() - 1 );
lines.Add( msg );
msg = fullMsg.Right( index );
break;
}
}
}
}
}
else
{
// New sentence on a new line
int dot = msg.Index( wxT( ". " ) );
if( dot != wxNOT_FOUND )
{
lines.Add( msg.Left( dot + 1 ) );
lines.Add( fullMsg.Right( msg.Length() - dot - 2 ) );
}
else
lines.Add( msg );
break;
}
}
if( titleFieldHeight < (int) ( titleHeight * lines.Count() ) )
{
sz.y -= m_milsToIu;
sz.x -= m_milsToIu;
msg = fullMsg;
lines.Clear();
}
else
break;
}
pos.x = ( refx - Mm2mils( 85 ) ) * m_milsToIu;
pos.y =
( refy - Mm2mils( 27.5 ) - (titleHeight * (lines.Count() - 1) / 2) ) * m_milsToIu;
for( unsigned curLn = 0; curLn < lines.Count(); curLn++ )
{
msg = lines[curLn];
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
pos.y += titleHeight * m_milsToIu;
}
}
// Decimal number
msg = aTitleBlock.GetComment1();
if( !msg.IsEmpty() )
{
sz = size3;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 119 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 60 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 47.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
}
// Developer
msg = aTitleBlock.GetComment2();
if( !msg.IsEmpty() )
{
sz = size;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 22 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 167.5 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 27.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
// Verifier
msg = aTitleBlock.GetComment3();
if( !msg.IsEmpty() )
{
sz = size;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 22 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 167 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 22.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
// Approver
msg = aTitleBlock.GetComment4();
if( !msg.IsEmpty() )
{
sz = size;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 22 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 167 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 2.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
}
else // other pages
{
for( WsItem = &WS_Osn2a_Line1; WsItem != NULL; WsItem = WsItem->Pnext )
{
pos.x = (refx - WsItem->m_Posx) * m_milsToIu;
pos.y = (refy - WsItem->m_Posy) * m_milsToIu;
end.x = (refx - WsItem->m_Endx) * m_milsToIu;
end.y = (refy - WsItem->m_Endy) * m_milsToIu;
2013-05-24 08:59:40 +00:00
msg = WsItem->m_TextBase;
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWtonk, aLineColor ) );
break;
case WS_TEXT:
if( !msg.IsEmpty() )
{
if( WsItem == &WS_Osn2a_Text1 )
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
size0_8, m_penSize,
aLineColor ) );
else
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
}
break;
case WS_TEXTL:
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize,
aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
break;
}
}
// Sheet number
pos.x = ( refx - Mm2mils( 5 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 4 ) ) * m_milsToIu;
msg.Empty();
2013-05-24 08:59:40 +00:00
msg << m_sheetNumber;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
// Decimal number
msg = aTitleBlock.GetComment1();
if( !msg.IsEmpty() )
{
sz = size3;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 109 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 65 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 7.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
}
}
// Format
pos.x = ( refx - Mm2mils( 23 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 2.5 ) ) * m_milsToIu;
msg.Empty();
msg << aPaperFormat;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
// Center - left bottom corner
refx = m_LTmargin.x;
refy = m_pageSize.y - m_RBmargin.y;
for( WsItem = &WS_DopLeft_Line1; WsItem != NULL; WsItem = WsItem->Pnext )
{
2013-05-24 08:59:40 +00:00
if( m_sheetNumber > 1 && WsItem == &WS_DopLeft_Line9 ) // Some fields for first page only
break;
pos.x = (refx - WsItem->m_Posx) * m_milsToIu;
pos.y = (refy - WsItem->m_Posy) * m_milsToIu;
end.x = (refx - WsItem->m_Endx) * m_milsToIu;
end.y = (refy - WsItem->m_Endy) * m_milsToIu;
2013-05-24 08:59:40 +00:00
msg = WsItem->m_TextBase;
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWosn, aLineColor ) );
break;
case WS_TEXT:
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetOrientation( TEXT_ORIENT_VERT );
}
break;
}
}
if( aPaperFormat == PAGE_INFO::A4 || m_pageSize.x > m_pageSize.y ) // A4 or Landscape
{
// Center - left top corner
refx = m_LTmargin.x;
refy = m_LTmargin.y;
for( WsItem = &WS_DopTop_Line1; WsItem != NULL; WsItem = WsItem->Pnext )
{
2013-05-24 08:59:40 +00:00
if( m_sheetNumber > 1 && WsItem == &WS_DopTop_Line3 ) // Some fields for first page only
break;
pos.x = (refx + WsItem->m_Posx) * m_milsToIu;
pos.y = (refy + WsItem->m_Posy) * m_milsToIu;
end.x = (refx + WsItem->m_Endx) * m_milsToIu;
end.y = (refy + WsItem->m_Endy) * m_milsToIu;
2013-05-24 08:59:40 +00:00
msg = WsItem->m_TextBase;
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWtonk, aLineColor ) );
break;
}
}
// Decimal number
msg = aTitleBlock.GetComment1();
if( !msg.IsEmpty() )
{
sz = size2;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 69 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx + Mm2mils( 35 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 7 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetOrientation( 1800.0 );
}
}
else // Portrait
{
// Center - right top corner
// Lines are used from the upper left corner by the change of coordinates
refx = m_pageSize.x - m_RBmargin.x;
refy = m_LTmargin.y;
for( WsItem = &WS_DopTop_Line1; WsItem != NULL; WsItem = WsItem->Pnext )
{
2013-05-24 08:59:40 +00:00
if( m_sheetNumber > 1 && WsItem == &WS_DopTop_Line3 ) // Some fields for first page only
break;
pos.x = (refx - WsItem->m_Posy) * m_milsToIu;
pos.y = (refy + WsItem->m_Posx) * m_milsToIu;
end.x = (refx - WsItem->m_Endy) * m_milsToIu;
end.y = (refy + WsItem->m_Endx) * m_milsToIu;
2013-05-24 08:59:40 +00:00
msg = WsItem->m_TextBase;
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
lnWtonk, aLineColor ) );
break;
}
}
// Decimal number
msg = aTitleBlock.GetComment1();
if( !msg.IsEmpty() )
{
sz = size2;
lnMsg = ReturnGraphicTextWidth( msg, sz.x, false, false ) / m_milsToIu;
ln = Mm2mils( 69 );
if( lnMsg > ln )
sz.x *= float(ln) / lnMsg;
pos.x = ( refx - Mm2mils( 7 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 35 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetOrientation( TEXT_ORIENT_VERT );
}
}
}