Get rid of PageLayout globals so drawing the preview doesn't mess up the document.
This commit is contained in:
parent
bdd44ce88c
commit
248089c934
|
@ -238,6 +238,7 @@ set( COMMON_WIDGET_SRCS
|
||||||
set( COMMON_PAGE_LAYOUT_SRCS
|
set( COMMON_PAGE_LAYOUT_SRCS
|
||||||
page_layout/ws_data_item.cpp
|
page_layout/ws_data_item.cpp
|
||||||
page_layout/ws_data_model.cpp
|
page_layout/ws_data_model.cpp
|
||||||
|
page_layout/ws_data_model_io.cpp
|
||||||
page_layout/page_layout_default_description.cpp
|
page_layout/page_layout_default_description.cpp
|
||||||
page_layout/ws_draw_item.cpp
|
page_layout/ws_draw_item.cpp
|
||||||
page_layout/page_layout_reader_keywords.cpp
|
page_layout/page_layout_reader_keywords.cpp
|
||||||
|
|
|
@ -127,7 +127,11 @@ DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent, wxSize aMa
|
||||||
m_tb = m_parent->GetTitleBlock();
|
m_tb = m_parent->GetTitleBlock();
|
||||||
m_customFmt = false;
|
m_customFmt = false;
|
||||||
m_localPrjConfigChanged = false;
|
m_localPrjConfigChanged = false;
|
||||||
m_pagelayout = NULL;
|
|
||||||
|
m_pagelayout = new WS_DATA_MODEL;
|
||||||
|
wxString serialization;
|
||||||
|
WS_DATA_MODEL::GetTheInstance().SaveInString( serialization );
|
||||||
|
m_pagelayout->SetPageLayout( TO_UTF8( serialization ) );
|
||||||
|
|
||||||
m_PickDate->SetValue( wxDateTime::Now() );
|
m_PickDate->SetValue( wxDateTime::Now() );
|
||||||
|
|
||||||
|
|
|
@ -180,18 +180,18 @@ void PAGE_LAYOUT_READER_PARSER::parseSetup( WS_DATA_MODEL* aLayout )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_linewidth:
|
case T_linewidth:
|
||||||
WS_DATA_ITEM::m_DefaultLineWidth = parseDouble();
|
aLayout->m_DefaultLineWidth = parseDouble();
|
||||||
NeedRIGHT();
|
NeedRIGHT();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_textsize:
|
case T_textsize:
|
||||||
WS_DATA_ITEM::m_DefaultTextSize.x = parseDouble();
|
aLayout->m_DefaultTextSize.x = parseDouble();
|
||||||
WS_DATA_ITEM::m_DefaultTextSize.y = parseDouble();
|
aLayout->m_DefaultTextSize.y = parseDouble();
|
||||||
NeedRIGHT();
|
NeedRIGHT();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_textlinewidth:
|
case T_textlinewidth:
|
||||||
WS_DATA_ITEM::m_DefaultTextThickness = parseDouble();
|
aLayout->m_DefaultTextThickness = parseDouble();
|
||||||
NeedRIGHT();
|
NeedRIGHT();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
|
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
|
||||||
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 1992-2019 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
|
@ -52,25 +52,15 @@
|
||||||
#include <fctsys.h>
|
#include <fctsys.h>
|
||||||
#include <draw_graphic_text.h>
|
#include <draw_graphic_text.h>
|
||||||
#include <eda_rect.h>
|
#include <eda_rect.h>
|
||||||
|
#include <view/view.h>
|
||||||
#include <ws_painter.h>
|
#include <ws_painter.h>
|
||||||
#include <title_block.h>
|
#include <title_block.h>
|
||||||
#include <ws_draw_item.h>
|
#include <ws_draw_item.h>
|
||||||
#include <ws_data_item.h>
|
#include <ws_data_model.h>
|
||||||
#include <view/view.h>
|
|
||||||
|
|
||||||
using KIGFX::COLOR4D;
|
using KIGFX::COLOR4D;
|
||||||
|
|
||||||
|
|
||||||
// Static members of class WS_DATA_ITEM:
|
|
||||||
double WS_DATA_ITEM::m_WSunits2Iu = 1000.0;
|
|
||||||
DPOINT WS_DATA_ITEM::m_RB_Corner;
|
|
||||||
DPOINT WS_DATA_ITEM::m_LT_Corner;
|
|
||||||
double WS_DATA_ITEM::m_DefaultLineWidth = 0.0;
|
|
||||||
DSIZE WS_DATA_ITEM::m_DefaultTextSize( TB_DEFAULT_TEXTSIZE, TB_DEFAULT_TEXTSIZE );
|
|
||||||
double WS_DATA_ITEM::m_DefaultTextThickness = 0.0;
|
|
||||||
bool WS_DATA_ITEM::m_SpecialMode = false;
|
|
||||||
|
|
||||||
|
|
||||||
// The constructor:
|
// The constructor:
|
||||||
WS_DATA_ITEM::WS_DATA_ITEM( WS_ITEM_TYPE aType )
|
WS_DATA_ITEM::WS_DATA_ITEM( WS_ITEM_TYPE aType )
|
||||||
{
|
{
|
||||||
|
@ -130,6 +120,17 @@ void WS_DATA_ITEM::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aV
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int WS_DATA_ITEM::GetPenSizeUi()
|
||||||
|
{
|
||||||
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
|
if( m_LineWidth != 0 )
|
||||||
|
return KiROUND( m_LineWidth * model.m_WSunits2Iu );
|
||||||
|
else
|
||||||
|
return KiROUND( model.m_DefaultLineWidth * model.m_WSunits2Iu );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// move item to aPosition
|
// move item to aPosition
|
||||||
// starting point is moved to aPosition
|
// starting point is moved to aPosition
|
||||||
// the Ending point is moved to a position which keeps the item size
|
// the Ending point is moved to a position which keeps the item size
|
||||||
|
@ -139,8 +140,8 @@ void WS_DATA_ITEM::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aV
|
||||||
void WS_DATA_ITEM::MoveToUi( wxPoint aPosition )
|
void WS_DATA_ITEM::MoveToUi( wxPoint aPosition )
|
||||||
{
|
{
|
||||||
DPOINT pos_mm;
|
DPOINT pos_mm;
|
||||||
pos_mm.x = aPosition.x / m_WSunits2Iu;
|
pos_mm.x = aPosition.x / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
pos_mm.y = aPosition.y / m_WSunits2Iu;
|
pos_mm.y = aPosition.y / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
|
|
||||||
MoveTo( pos_mm );
|
MoveTo( pos_mm );
|
||||||
}
|
}
|
||||||
|
@ -171,7 +172,8 @@ void WS_DATA_ITEM::MoveTo( DPOINT aPosition )
|
||||||
*/
|
*/
|
||||||
void WS_DATA_ITEM::MoveStartPointTo( DPOINT aPosition )
|
void WS_DATA_ITEM::MoveStartPointTo( DPOINT aPosition )
|
||||||
{
|
{
|
||||||
DPOINT position;
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
DPOINT position;
|
||||||
|
|
||||||
// Calculate the position of the starting point
|
// Calculate the position of the starting point
|
||||||
// relative to the reference corner
|
// relative to the reference corner
|
||||||
|
@ -179,21 +181,21 @@ void WS_DATA_ITEM::MoveStartPointTo( DPOINT aPosition )
|
||||||
switch( m_Pos.m_Anchor )
|
switch( m_Pos.m_Anchor )
|
||||||
{
|
{
|
||||||
case RB_CORNER:
|
case RB_CORNER:
|
||||||
position = m_RB_Corner - aPosition;
|
position = model.m_RB_Corner - aPosition;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RT_CORNER:
|
case RT_CORNER:
|
||||||
position.x = m_RB_Corner.x - aPosition.x;
|
position.x = model.m_RB_Corner.x - aPosition.x;
|
||||||
position.y = aPosition.y - m_LT_Corner.y;
|
position.y = aPosition.y - model.m_LT_Corner.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LB_CORNER:
|
case LB_CORNER:
|
||||||
position.x = aPosition.x - m_LT_Corner.x;
|
position.x = aPosition.x - model.m_LT_Corner.x;
|
||||||
position.y = m_RB_Corner.y - aPosition.y;
|
position.y = model.m_RB_Corner.y - aPosition.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LT_CORNER:
|
case LT_CORNER:
|
||||||
position = aPosition - m_LT_Corner;
|
position = aPosition - model.m_LT_Corner;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,9 +208,8 @@ void WS_DATA_ITEM::MoveStartPointTo( DPOINT aPosition )
|
||||||
*/
|
*/
|
||||||
void WS_DATA_ITEM::MoveStartPointToUi( wxPoint aPosition )
|
void WS_DATA_ITEM::MoveStartPointToUi( wxPoint aPosition )
|
||||||
{
|
{
|
||||||
DPOINT pos_mm;
|
DPOINT pos_mm( aPosition.x / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu,
|
||||||
pos_mm.x = aPosition.x / m_WSunits2Iu;
|
aPosition.y / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu );
|
||||||
pos_mm.y = aPosition.y / m_WSunits2Iu;
|
|
||||||
|
|
||||||
MoveStartPointTo( pos_mm );
|
MoveStartPointTo( pos_mm );
|
||||||
}
|
}
|
||||||
|
@ -222,7 +223,8 @@ void WS_DATA_ITEM::MoveStartPointToUi( wxPoint aPosition )
|
||||||
*/
|
*/
|
||||||
void WS_DATA_ITEM::MoveEndPointTo( DPOINT aPosition )
|
void WS_DATA_ITEM::MoveEndPointTo( DPOINT aPosition )
|
||||||
{
|
{
|
||||||
DPOINT position;
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
DPOINT position;
|
||||||
|
|
||||||
// Calculate the position of the starting point
|
// Calculate the position of the starting point
|
||||||
// relative to the reference corner
|
// relative to the reference corner
|
||||||
|
@ -230,21 +232,21 @@ void WS_DATA_ITEM::MoveEndPointTo( DPOINT aPosition )
|
||||||
switch( m_End.m_Anchor )
|
switch( m_End.m_Anchor )
|
||||||
{
|
{
|
||||||
case RB_CORNER:
|
case RB_CORNER:
|
||||||
position = m_RB_Corner - aPosition;
|
position = model.m_RB_Corner - aPosition;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RT_CORNER:
|
case RT_CORNER:
|
||||||
position.x = m_RB_Corner.x - aPosition.x;
|
position.x = model.m_RB_Corner.x - aPosition.x;
|
||||||
position.y = aPosition.y - m_LT_Corner.y;
|
position.y = aPosition.y - model.m_LT_Corner.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LB_CORNER:
|
case LB_CORNER:
|
||||||
position.x = aPosition.x - m_LT_Corner.x;
|
position.x = aPosition.x - model.m_LT_Corner.x;
|
||||||
position.y = m_RB_Corner.y - aPosition.y;
|
position.y = model.m_RB_Corner.y - aPosition.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LT_CORNER:
|
case LT_CORNER:
|
||||||
position = aPosition - m_LT_Corner;
|
position = aPosition - model.m_LT_Corner;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,8 +272,8 @@ void WS_DATA_ITEM::MoveEndPointTo( DPOINT aPosition )
|
||||||
void WS_DATA_ITEM::MoveEndPointToUi( wxPoint aPosition )
|
void WS_DATA_ITEM::MoveEndPointToUi( wxPoint aPosition )
|
||||||
{
|
{
|
||||||
DPOINT pos_mm;
|
DPOINT pos_mm;
|
||||||
pos_mm.x = aPosition.x / m_WSunits2Iu;
|
pos_mm.x = aPosition.x / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
pos_mm.y = aPosition.y / m_WSunits2Iu;
|
pos_mm.y = aPosition.y / WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
|
|
||||||
MoveEndPointTo( pos_mm );
|
MoveEndPointTo( pos_mm );
|
||||||
}
|
}
|
||||||
|
@ -279,28 +281,28 @@ void WS_DATA_ITEM::MoveEndPointToUi( wxPoint aPosition )
|
||||||
|
|
||||||
const DPOINT WS_DATA_ITEM::GetStartPos( int ii ) const
|
const DPOINT WS_DATA_ITEM::GetStartPos( int ii ) const
|
||||||
{
|
{
|
||||||
DPOINT pos;
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
pos.x = m_Pos.m_Pos.x + ( m_IncrementVector.x * ii );
|
DPOINT pos( m_Pos.m_Pos.x + ( m_IncrementVector.x * ii ),
|
||||||
pos.y = m_Pos.m_Pos.y + ( m_IncrementVector.y * ii );
|
m_Pos.m_Pos.y + ( m_IncrementVector.y * ii ) );
|
||||||
|
|
||||||
switch( m_Pos.m_Anchor )
|
switch( m_Pos.m_Anchor )
|
||||||
{
|
{
|
||||||
case RB_CORNER: // right bottom corner
|
case RB_CORNER: // right bottom corner
|
||||||
pos = m_RB_Corner - pos;
|
pos = model.m_RB_Corner - pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RT_CORNER: // right top corner
|
case RT_CORNER: // right top corner
|
||||||
pos.x = m_RB_Corner.x - pos.x;
|
pos.x = model.m_RB_Corner.x - pos.x;
|
||||||
pos.y = m_LT_Corner.y + pos.y;
|
pos.y = model.m_LT_Corner.y + pos.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LB_CORNER: // left bottom corner
|
case LB_CORNER: // left bottom corner
|
||||||
pos.x = m_LT_Corner.x + pos.x;
|
pos.x = model.m_LT_Corner.x + pos.x;
|
||||||
pos.y = m_RB_Corner.y - pos.y;
|
pos.y = model.m_RB_Corner.y - pos.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LT_CORNER: // left top corner
|
case LT_CORNER: // left top corner
|
||||||
pos = m_LT_Corner + pos;
|
pos = model.m_LT_Corner + pos;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,37 +312,35 @@ const DPOINT WS_DATA_ITEM::GetStartPos( int ii ) const
|
||||||
|
|
||||||
const wxPoint WS_DATA_ITEM::GetStartPosUi( int ii ) const
|
const wxPoint WS_DATA_ITEM::GetStartPosUi( int ii ) const
|
||||||
{
|
{
|
||||||
DPOINT pos = GetStartPos( ii );
|
DPOINT pos = GetStartPos( ii ) * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
pos = pos * m_WSunits2Iu;
|
return (wxPoint) pos;
|
||||||
return wxPoint( KiROUND( pos.x ), KiROUND( pos.y ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const DPOINT WS_DATA_ITEM::GetEndPos( int ii ) const
|
const DPOINT WS_DATA_ITEM::GetEndPos( int ii ) const
|
||||||
{
|
{
|
||||||
DPOINT pos;
|
DPOINT pos( m_End.m_Pos.x + ( m_IncrementVector.x * ii ),
|
||||||
pos.x = m_End.m_Pos.x + ( m_IncrementVector.x * ii );
|
m_End.m_Pos.y + ( m_IncrementVector.y * ii ) );
|
||||||
pos.y = m_End.m_Pos.y + ( m_IncrementVector.y * ii );
|
|
||||||
|
|
||||||
switch( m_End.m_Anchor )
|
switch( m_End.m_Anchor )
|
||||||
{
|
{
|
||||||
case RB_CORNER: // right bottom corner
|
case RB_CORNER: // right bottom corner
|
||||||
pos = m_RB_Corner - pos;
|
pos = WS_DATA_MODEL::GetTheInstance().m_RB_Corner - pos;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RT_CORNER: // right top corner
|
case RT_CORNER: // right top corner
|
||||||
pos.x = m_RB_Corner.x - pos.x;
|
pos.x = WS_DATA_MODEL::GetTheInstance().m_RB_Corner.x - pos.x;
|
||||||
pos.y = m_LT_Corner.y + pos.y;
|
pos.y = WS_DATA_MODEL::GetTheInstance().m_LT_Corner.y + pos.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LB_CORNER: // left bottom corner
|
case LB_CORNER: // left bottom corner
|
||||||
pos.x = m_LT_Corner.x + pos.x;
|
pos.x = WS_DATA_MODEL::GetTheInstance().m_LT_Corner.x + pos.x;
|
||||||
pos.y = m_RB_Corner.y - pos.y;
|
pos.y = WS_DATA_MODEL::GetTheInstance().m_RB_Corner.y - pos.y;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LT_CORNER: // left top corner
|
case LT_CORNER: // left top corner
|
||||||
pos = m_LT_Corner + pos;
|
pos = WS_DATA_MODEL::GetTheInstance().m_LT_Corner + pos;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pos;
|
return pos;
|
||||||
|
@ -350,21 +350,23 @@ const DPOINT WS_DATA_ITEM::GetEndPos( int ii ) const
|
||||||
const wxPoint WS_DATA_ITEM::GetEndPosUi( int ii ) const
|
const wxPoint WS_DATA_ITEM::GetEndPosUi( int ii ) const
|
||||||
{
|
{
|
||||||
DPOINT pos = GetEndPos( ii );
|
DPOINT pos = GetEndPos( ii );
|
||||||
pos = pos * m_WSunits2Iu;
|
pos = pos * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
return wxPoint( KiROUND( pos.x ), KiROUND( pos.y ) );
|
return wxPoint( KiROUND( pos.x ), KiROUND( pos.y ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool WS_DATA_ITEM::IsInsidePage( int ii ) const
|
bool WS_DATA_ITEM::IsInsidePage( int ii ) const
|
||||||
{
|
{
|
||||||
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
DPOINT pos = GetStartPos( ii );
|
DPOINT pos = GetStartPos( ii );
|
||||||
|
|
||||||
for( int kk = 0; kk < 1; kk++ )
|
for( int kk = 0; kk < 1; kk++ )
|
||||||
{
|
{
|
||||||
if( m_RB_Corner.x < pos.x || m_LT_Corner.x > pos.x )
|
if( model.m_RB_Corner.x < pos.x || model.m_LT_Corner.x > pos.x )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if( m_RB_Corner.y < pos.y || m_LT_Corner.y > pos.y )
|
if( model.m_RB_Corner.y < pos.y || model.m_LT_Corner.y > pos.y )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pos = GetEndPos( ii );
|
pos = GetEndPos( ii );
|
||||||
|
@ -398,8 +400,7 @@ WS_DATA_ITEM_POLYGONS::WS_DATA_ITEM_POLYGONS() :
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WS_DATA_ITEM_POLYGONS::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector,
|
void WS_DATA_ITEM_POLYGONS::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView )
|
||||||
KIGFX::VIEW* aView )
|
|
||||||
{
|
{
|
||||||
std::map<int, STATUS_FLAGS> itemFlags;
|
std::map<int, STATUS_FLAGS> itemFlags;
|
||||||
WS_DRAW_ITEM_BASE* item = nullptr;
|
WS_DRAW_ITEM_BASE* item = nullptr;
|
||||||
|
@ -450,6 +451,12 @@ void WS_DATA_ITEM_POLYGONS::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int WS_DATA_ITEM_POLYGONS::GetPenSizeUi()
|
||||||
|
{
|
||||||
|
return KiROUND( m_LineWidth * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const DPOINT WS_DATA_ITEM_POLYGONS::GetCornerPosition( unsigned aIdx, int aRepeat ) const
|
const DPOINT WS_DATA_ITEM_POLYGONS::GetCornerPosition( unsigned aIdx, int aRepeat ) const
|
||||||
{
|
{
|
||||||
DPOINT pos = m_Corners[aIdx];
|
DPOINT pos = m_Corners[aIdx];
|
||||||
|
@ -497,16 +504,18 @@ void WS_DATA_ITEM_POLYGONS::SetBoundingBox()
|
||||||
|
|
||||||
bool WS_DATA_ITEM_POLYGONS::IsInsidePage( int ii ) const
|
bool WS_DATA_ITEM_POLYGONS::IsInsidePage( int ii ) const
|
||||||
{
|
{
|
||||||
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
DPOINT pos = GetStartPos( ii );
|
DPOINT pos = GetStartPos( ii );
|
||||||
pos += m_minCoord; // left top pos of bounding box
|
pos += m_minCoord; // left top pos of bounding box
|
||||||
|
|
||||||
if( m_LT_Corner.x > pos.x || m_LT_Corner.y > pos.y )
|
if( model.m_LT_Corner.x > pos.x || model.m_LT_Corner.y > pos.y )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
pos = GetStartPos( ii );
|
pos = GetStartPos( ii );
|
||||||
pos += m_maxCoord; // rignt bottom pos of bounding box
|
pos += m_maxCoord; // rignt bottom pos of bounding box
|
||||||
|
|
||||||
if( m_RB_Corner.x < pos.x || m_RB_Corner.y < pos.y )
|
if( model.m_RB_Corner.x < pos.x || model.m_RB_Corner.y < pos.y )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -516,7 +525,7 @@ bool WS_DATA_ITEM_POLYGONS::IsInsidePage( int ii ) const
|
||||||
const wxPoint WS_DATA_ITEM_POLYGONS::GetCornerPositionUi( unsigned aIdx, int aRepeat ) const
|
const wxPoint WS_DATA_ITEM_POLYGONS::GetCornerPositionUi( unsigned aIdx, int aRepeat ) const
|
||||||
{
|
{
|
||||||
DPOINT pos = GetCornerPosition( aIdx, aRepeat );
|
DPOINT pos = GetCornerPosition( aIdx, aRepeat );
|
||||||
pos = pos * m_WSunits2Iu;
|
pos = pos * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu;
|
||||||
return wxPoint( int(pos.x), int(pos.y) );
|
return wxPoint( int(pos.x), int(pos.y) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +549,7 @@ void WS_DATA_ITEM_TEXT::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIE
|
||||||
int pensize = GetPenSizeUi();
|
int pensize = GetPenSizeUi();
|
||||||
bool multilines = false;
|
bool multilines = false;
|
||||||
|
|
||||||
if( m_SpecialMode )
|
if( WS_DATA_MODEL::GetTheInstance().m_SpecialMode )
|
||||||
m_FullText = m_TextBase;
|
m_FullText = m_TextBase;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -554,8 +563,8 @@ void WS_DATA_ITEM_TEXT::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIE
|
||||||
SetConstrainedTextSize();
|
SetConstrainedTextSize();
|
||||||
wxSize textsize;
|
wxSize textsize;
|
||||||
|
|
||||||
textsize.x = KiROUND( m_ConstrainedTextSize.x * WS_DATA_ITEM::m_WSunits2Iu );
|
textsize.x = KiROUND( m_ConstrainedTextSize.x * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu );
|
||||||
textsize.y = KiROUND( m_ConstrainedTextSize.y * WS_DATA_ITEM::m_WSunits2Iu );
|
textsize.y = KiROUND( m_ConstrainedTextSize.y * WS_DATA_MODEL::GetTheInstance().m_WSunits2Iu );
|
||||||
|
|
||||||
if( m_Bold )
|
if( m_Bold )
|
||||||
pensize = GetPenSizeForBold( std::min( textsize.x, textsize.y ) );
|
pensize = GetPenSizeForBold( std::min( textsize.x, textsize.y ) );
|
||||||
|
@ -607,6 +616,17 @@ void WS_DATA_ITEM_TEXT::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int WS_DATA_ITEM_TEXT::GetPenSizeUi()
|
||||||
|
{
|
||||||
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
|
if( m_LineWidth != 0 )
|
||||||
|
return KiROUND( m_LineWidth * model.m_WSunits2Iu );
|
||||||
|
else
|
||||||
|
return KiROUND( model.m_DefaultTextThickness * model.m_WSunits2Iu );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void WS_DATA_ITEM_TEXT::IncrementLabel( int aIncr )
|
void WS_DATA_ITEM_TEXT::IncrementLabel( int aIncr )
|
||||||
{
|
{
|
||||||
int last = m_TextBase.Len() -1;
|
int last = m_TextBase.Len() -1;
|
||||||
|
@ -666,10 +686,10 @@ void WS_DATA_ITEM_TEXT::SetConstrainedTextSize()
|
||||||
m_ConstrainedTextSize = m_TextSize;
|
m_ConstrainedTextSize = m_TextSize;
|
||||||
|
|
||||||
if( m_ConstrainedTextSize.x == 0 )
|
if( m_ConstrainedTextSize.x == 0 )
|
||||||
m_ConstrainedTextSize.x = m_DefaultTextSize.x;
|
m_ConstrainedTextSize.x = WS_DATA_MODEL::GetTheInstance().m_DefaultTextSize.x;
|
||||||
|
|
||||||
if( m_ConstrainedTextSize.y == 0 )
|
if( m_ConstrainedTextSize.y == 0 )
|
||||||
m_ConstrainedTextSize.y = m_DefaultTextSize.y;
|
m_ConstrainedTextSize.y = WS_DATA_MODEL::GetTheInstance().m_DefaultTextSize.y;
|
||||||
|
|
||||||
if( m_BoundingBoxSize.x || m_BoundingBoxSize.y )
|
if( m_BoundingBoxSize.x || m_BoundingBoxSize.y )
|
||||||
{
|
{
|
||||||
|
@ -742,26 +762,6 @@ void WS_DATA_ITEM_BITMAP::SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::V
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* set the pixel scale factor of the bitmap
|
|
||||||
* this factor depend on the application internal unit
|
|
||||||
* and the PPI bitmap factor
|
|
||||||
* the pixel scale factor should be initialized before drawing the bitmap
|
|
||||||
*/
|
|
||||||
void WS_DATA_ITEM_BITMAP::SetPixelScaleFactor()
|
|
||||||
{
|
|
||||||
if( m_ImageBitmap )
|
|
||||||
{
|
|
||||||
// m_WSunits2Iu is the page layout unit to application internal unit
|
|
||||||
// i.e. the mm to to application internal unit
|
|
||||||
// however the bitmap definition is always known in pixels per inches
|
|
||||||
double scale = m_WSunits2Iu * 25.4 / m_ImageBitmap->GetPPI();
|
|
||||||
m_ImageBitmap->SetPixelScaleFactor( scale );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* return the PPI of the bitmap
|
|
||||||
*/
|
|
||||||
int WS_DATA_ITEM_BITMAP::GetPPI() const
|
int WS_DATA_ITEM_BITMAP::GetPPI() const
|
||||||
{
|
{
|
||||||
if( m_ImageBitmap )
|
if( m_ImageBitmap )
|
||||||
|
@ -771,8 +771,6 @@ int WS_DATA_ITEM_BITMAP::GetPPI() const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*adjust the PPI of the bitmap
|
|
||||||
*/
|
|
||||||
void WS_DATA_ITEM_BITMAP::SetPPI( int aBitmapPPI )
|
void WS_DATA_ITEM_BITMAP::SetPPI( int aBitmapPPI )
|
||||||
{
|
{
|
||||||
if( m_ImageBitmap )
|
if( m_ImageBitmap )
|
||||||
|
|
|
@ -58,7 +58,12 @@
|
||||||
static WS_DATA_MODEL wksTheInstance;
|
static WS_DATA_MODEL wksTheInstance;
|
||||||
static WS_DATA_MODEL* wksAltInstance;
|
static WS_DATA_MODEL* wksAltInstance;
|
||||||
|
|
||||||
WS_DATA_MODEL::WS_DATA_MODEL()
|
WS_DATA_MODEL::WS_DATA_MODEL() :
|
||||||
|
m_WSunits2Iu( 1000.0 ),
|
||||||
|
m_DefaultLineWidth( 0.0 ),
|
||||||
|
m_DefaultTextSize( TB_DEFAULT_TEXTSIZE, TB_DEFAULT_TEXTSIZE ),
|
||||||
|
m_DefaultTextThickness( 0.0 ),
|
||||||
|
m_SpecialMode( false )
|
||||||
{
|
{
|
||||||
m_allowVoidList = false;
|
m_allowVoidList = false;
|
||||||
m_leftMargin = 10.0; // the left page margin in mm
|
m_leftMargin = 10.0; // the left page margin in mm
|
||||||
|
@ -90,27 +95,23 @@ void WS_DATA_MODEL::SetAltInstance( WS_DATA_MODEL* aLayout )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WS_DATA_MODEL::SetLeftMargin( double aMargin )
|
void WS_DATA_MODEL::SetupDrawEnvironment( const PAGE_INFO& aPageInfo, double aMilsToIU )
|
||||||
{
|
{
|
||||||
m_leftMargin = aMargin; // the left page margin in mm
|
#define MILS_TO_MM (25.4/1000)
|
||||||
}
|
|
||||||
|
|
||||||
|
m_WSunits2Iu = aMilsToIU / MILS_TO_MM;
|
||||||
|
|
||||||
void WS_DATA_MODEL::SetRightMargin( double aMargin )
|
// Left top corner position
|
||||||
{
|
DPOINT lt_corner;
|
||||||
m_rightMargin = aMargin; // the right page margin in mm
|
lt_corner.x = GetLeftMargin();
|
||||||
}
|
lt_corner.y = GetTopMargin();
|
||||||
|
m_LT_Corner = lt_corner;
|
||||||
|
|
||||||
|
// Right bottom corner position
|
||||||
void WS_DATA_MODEL::SetTopMargin( double aMargin )
|
DPOINT rb_corner;
|
||||||
{
|
rb_corner.x = ( aPageInfo.GetSizeMils().x * MILS_TO_MM ) - GetRightMargin();
|
||||||
m_topMargin = aMargin; // the top page margin in mm
|
rb_corner.y = ( aPageInfo.GetSizeMils().y * MILS_TO_MM ) - GetBottomMargin();
|
||||||
}
|
m_RB_Corner = rb_corner;
|
||||||
|
|
||||||
|
|
||||||
void WS_DATA_MODEL::SetBottomMargin( double aMargin )
|
|
||||||
{
|
|
||||||
m_bottomMargin = aMargin; // the bottom page margin in mm
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013-2016 CERN
|
* Copyright (C) 2013-2016 CERN
|
||||||
|
* Copyright (C) 2019 Kicad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* @author Jean-Pierre Charras, jp.charras at wanadoo.fr
|
* @author Jean-Pierre Charras, jp.charras at wanadoo.fr
|
||||||
*
|
*
|
||||||
|
@ -63,15 +64,13 @@ protected:
|
||||||
virtual ~WS_DATA_MODEL_IO() {}
|
virtual ~WS_DATA_MODEL_IO() {}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void Format( WS_DATA_MODEL* aPageLayout ) const;
|
void Format( WS_DATA_MODEL* aModel ) const;
|
||||||
|
|
||||||
void Format( WS_DATA_ITEM* aItem, int aNestLevel ) const;
|
void Format( WS_DATA_MODEL* aModel, WS_DATA_ITEM* aItem, int aNestLevel ) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void format( WS_DATA_MODEL* aPageLayout ) const;
|
|
||||||
|
|
||||||
void format( WS_DATA_ITEM_TEXT* aItem, int aNestLevel ) const;
|
void format( WS_DATA_ITEM_TEXT* aItem, int aNestLevel ) const;
|
||||||
void format( WS_DATA_ITEM* aItem, int aNestLevel ) const;
|
void format( WS_DATA_MODEL* aModel, WS_DATA_ITEM* aItem, int aNestLevel ) const;
|
||||||
void format( WS_DATA_ITEM_POLYGONS* aItem, int aNestLevel )
|
void format( WS_DATA_ITEM_POLYGONS* aItem, int aNestLevel )
|
||||||
const;
|
const;
|
||||||
void format( WS_DATA_ITEM_BITMAP* aItem, int aNestLevel ) const;
|
void format( WS_DATA_ITEM_BITMAP* aItem, int aNestLevel ) const;
|
||||||
|
@ -156,7 +155,7 @@ void WS_DATA_MODEL::SaveInString( wxString& aOutputString )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WS_DATA_MODEL_IO::Format( WS_DATA_ITEM* aItem, int aNestLevel ) const
|
void WS_DATA_MODEL_IO::Format( WS_DATA_MODEL* aModel, WS_DATA_ITEM* aItem, int aNestLevel ) const
|
||||||
{
|
{
|
||||||
switch( aItem->GetType() )
|
switch( aItem->GetType() )
|
||||||
{
|
{
|
||||||
|
@ -166,7 +165,7 @@ void WS_DATA_MODEL_IO::Format( WS_DATA_ITEM* aItem, int aNestLevel ) const
|
||||||
|
|
||||||
case WS_DATA_ITEM::WS_SEGMENT:
|
case WS_DATA_ITEM::WS_SEGMENT:
|
||||||
case WS_DATA_ITEM::WS_RECT:
|
case WS_DATA_ITEM::WS_RECT:
|
||||||
format( aItem, aNestLevel );
|
format( aModel, aItem, aNestLevel );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WS_DATA_ITEM::WS_POLYPOLYGON:
|
case WS_DATA_ITEM::WS_POLYPOLYGON:
|
||||||
|
@ -194,12 +193,12 @@ void WS_DATA_MODEL_IO::Format( WS_DATA_MODEL* aPageLayout ) const
|
||||||
// Write default values:
|
// Write default values:
|
||||||
m_out->Print( nestLevel, "(%s ", getTokenName( T_setup ) );
|
m_out->Print( nestLevel, "(%s ", getTokenName( T_setup ) );
|
||||||
m_out->Print( 0, "(textsize %s %s)",
|
m_out->Print( 0, "(textsize %s %s)",
|
||||||
double2Str( WS_DATA_ITEM::m_DefaultTextSize.x ).c_str(),
|
double2Str( aPageLayout->m_DefaultTextSize.x ).c_str(),
|
||||||
double2Str( WS_DATA_ITEM::m_DefaultTextSize.y ).c_str() );
|
double2Str( aPageLayout->m_DefaultTextSize.y ).c_str() );
|
||||||
m_out->Print( 0, "(linewidth %s)",
|
m_out->Print( 0, "(linewidth %s)",
|
||||||
double2Str( WS_DATA_ITEM::m_DefaultLineWidth ).c_str() );
|
double2Str( aPageLayout->m_DefaultLineWidth ).c_str() );
|
||||||
m_out->Print( 0, "(textlinewidth %s)",
|
m_out->Print( 0, "(textlinewidth %s)",
|
||||||
double2Str( WS_DATA_ITEM::m_DefaultTextThickness ).c_str() );
|
double2Str( aPageLayout->m_DefaultTextThickness ).c_str() );
|
||||||
m_out->Print( 0, "\n" );
|
m_out->Print( 0, "\n" );
|
||||||
|
|
||||||
// Write margin values
|
// Write margin values
|
||||||
|
@ -217,7 +216,7 @@ void WS_DATA_MODEL_IO::Format( WS_DATA_MODEL* aPageLayout ) const
|
||||||
for( unsigned ii = 0; ii < aPageLayout->GetCount(); ii++ )
|
for( unsigned ii = 0; ii < aPageLayout->GetCount(); ii++ )
|
||||||
{
|
{
|
||||||
WS_DATA_ITEM* item = aPageLayout->GetItem( ii );
|
WS_DATA_ITEM* item = aPageLayout->GetItem( ii );
|
||||||
Format( item, nestLevel );
|
Format( aPageLayout, item, nestLevel );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_out->Print( 0, ")\n" );
|
m_out->Print( 0, ")\n" );
|
||||||
|
@ -304,7 +303,7 @@ void WS_DATA_MODEL_IO::format( WS_DATA_ITEM_TEXT* aItem, int aNestLevel ) const
|
||||||
m_out->Print( 0, ")\n" );
|
m_out->Print( 0, ")\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WS_DATA_MODEL_IO::format( WS_DATA_ITEM* aItem, int aNestLevel ) const
|
void WS_DATA_MODEL_IO::format( WS_DATA_MODEL* aModel, WS_DATA_ITEM* aItem, int aNestLevel ) const
|
||||||
{
|
{
|
||||||
if( aItem->GetType() == WS_DATA_ITEM::WS_RECT )
|
if( aItem->GetType() == WS_DATA_ITEM::WS_RECT )
|
||||||
m_out->Print( aNestLevel, "(%s", getTokenName( T_rect ) );
|
m_out->Print( aNestLevel, "(%s", getTokenName( T_rect ) );
|
||||||
|
@ -318,7 +317,7 @@ void WS_DATA_MODEL_IO::format( WS_DATA_ITEM* aItem, int aNestLevel ) const
|
||||||
formatCoordinate( getTokenName( T_end ), aItem->m_End );
|
formatCoordinate( getTokenName( T_end ), aItem->m_End );
|
||||||
formatOptions( aItem );
|
formatOptions( aItem );
|
||||||
|
|
||||||
if( aItem->m_LineWidth && aItem->m_LineWidth != aItem->m_DefaultLineWidth )
|
if( aItem->m_LineWidth && aItem->m_LineWidth != aModel->m_DefaultLineWidth )
|
||||||
m_out->Print( 0, " (linewidth %s)", double2Str( aItem->m_LineWidth ).c_str() );
|
m_out->Print( 0, " (linewidth %s)", double2Str( aItem->m_LineWidth ).c_str() );
|
||||||
|
|
||||||
formatRepeatParameters( aItem );
|
formatRepeatParameters( aItem );
|
|
@ -396,47 +396,21 @@ wxString WS_DRAW_ITEM_BITMAP::GetSelectMenuText( EDA_UNITS_T aUnits ) const
|
||||||
|
|
||||||
// ============================ LIST ==============================
|
// ============================ LIST ==============================
|
||||||
|
|
||||||
#define MILS_TO_MM (25.4/1000)
|
|
||||||
|
|
||||||
|
|
||||||
void WS_DRAW_ITEM_LIST::SetupDrawEnvironment( const PAGE_INFO& aPageInfo )
|
|
||||||
{
|
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
|
||||||
|
|
||||||
// Left top corner position
|
|
||||||
DPOINT lt_corner;
|
|
||||||
lt_corner.x = pglayout.GetLeftMargin();
|
|
||||||
lt_corner.y = pglayout.GetTopMargin();
|
|
||||||
WS_DATA_ITEM::m_LT_Corner = lt_corner;
|
|
||||||
|
|
||||||
// Right bottom corner position
|
|
||||||
DPOINT rb_corner;
|
|
||||||
rb_corner.x = ( aPageInfo.GetSizeMils().x * MILS_TO_MM ) - pglayout.GetRightMargin();
|
|
||||||
rb_corner.y = ( aPageInfo.GetSizeMils().y * MILS_TO_MM ) - pglayout.GetBottomMargin();
|
|
||||||
WS_DATA_ITEM::m_RB_Corner = rb_corner;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList( const PAGE_INFO& aPageInfo,
|
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList( const PAGE_INFO& aPageInfo,
|
||||||
const TITLE_BLOCK& aTitleBlock )
|
const TITLE_BLOCK& aTitleBlock )
|
||||||
{
|
{
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
m_titleBlock = &aTitleBlock;
|
m_titleBlock = &aTitleBlock;
|
||||||
m_paperFormat = &aPageInfo.GetType();
|
m_paperFormat = &aPageInfo.GetType();
|
||||||
|
|
||||||
wxPoint LTmargin( Mm2mils( pglayout.GetLeftMargin() ), Mm2mils( pglayout.GetTopMargin() ) );
|
|
||||||
wxPoint RBmargin( Mm2mils( pglayout.GetRightMargin() ), Mm2mils( pglayout.GetBottomMargin() ) );
|
|
||||||
|
|
||||||
// Build the basic layout shape, if the layout list is empty
|
// Build the basic layout shape, if the layout list is empty
|
||||||
if( pglayout.GetCount() == 0 && !pglayout.VoidListAllowed() )
|
if( model.GetCount() == 0 && !model.VoidListAllowed() )
|
||||||
pglayout.SetPageLayout();
|
model.SetPageLayout();
|
||||||
|
|
||||||
WS_DATA_ITEM::m_WSunits2Iu = m_milsToIu / MILS_TO_MM;
|
model.SetupDrawEnvironment( aPageInfo, m_milsToIu );
|
||||||
|
|
||||||
SetupDrawEnvironment( aPageInfo );
|
for( WS_DATA_ITEM* wsItem : model.GetItems() )
|
||||||
|
|
||||||
for( WS_DATA_ITEM* wsItem : pglayout.GetItems() )
|
|
||||||
{
|
{
|
||||||
// Generate it only if the page option allows this
|
// Generate it only if the page option allows this
|
||||||
if( wsItem->GetPage1Option() == FIRST_PAGE_ONLY && m_sheetNumber != 1 )
|
if( wsItem->GetPage1Option() == FIRST_PAGE_ONLY && m_sheetNumber != 1 )
|
||||||
|
|
|
@ -115,29 +115,6 @@ public:
|
||||||
// for position increment
|
// for position increment
|
||||||
int m_IncrementLabel;
|
int m_IncrementLabel;
|
||||||
|
|
||||||
// These variables are static, because these values are common to all
|
|
||||||
// instances of WS_DATA_ITEM.
|
|
||||||
// They are default or common values.
|
|
||||||
//==============================================================================
|
|
||||||
// JEY TODO: these globals are death when we try to generate the page setttings preview...
|
|
||||||
// move them to member variables of WS_DATA_MODEL
|
|
||||||
//==============================================================================
|
|
||||||
static double m_WSunits2Iu; // conversion factor between
|
|
||||||
// ws units (mils) and draw/plot units
|
|
||||||
static DPOINT m_RB_Corner; // cordinates of the right bottom corner
|
|
||||||
// (ws units)
|
|
||||||
static DPOINT m_LT_Corner; // cordinates of the left top corner
|
|
||||||
// (ws units)
|
|
||||||
static double m_DefaultLineWidth; // Default line width,
|
|
||||||
// when not defined inside a line
|
|
||||||
// or a rect
|
|
||||||
static DSIZE m_DefaultTextSize; // Default text size,
|
|
||||||
// when not defined inside a tbtext
|
|
||||||
static double m_DefaultTextThickness; // Default text thickness,
|
|
||||||
// when not defined inside a tbtext
|
|
||||||
static bool m_SpecialMode; // Used in page layout editor
|
|
||||||
// When set to true, base texts
|
|
||||||
// instead of full texts are displayed
|
|
||||||
public:
|
public:
|
||||||
WS_DATA_ITEM( WS_ITEM_TYPE aType );
|
WS_DATA_ITEM( WS_ITEM_TYPE aType );
|
||||||
|
|
||||||
|
@ -168,8 +145,6 @@ public:
|
||||||
* @return true if the item has a end point (segment; rect)
|
* @return true if the item has a end point (segment; rect)
|
||||||
* of false (text, polugon)
|
* of false (text, polugon)
|
||||||
*/
|
*/
|
||||||
virtual bool HasEndPoint() { return true; }
|
|
||||||
|
|
||||||
PAGE_OPTION GetPage1Option() const { return m_pageOption; }
|
PAGE_OPTION GetPage1Option() const { return m_pageOption; }
|
||||||
void SetPage1Option( PAGE_OPTION aChoice ) { m_pageOption = aChoice; }
|
void SetPage1Option( PAGE_OPTION aChoice ) { m_pageOption = aChoice; }
|
||||||
|
|
||||||
|
@ -178,13 +153,8 @@ public:
|
||||||
const wxPoint GetEndPosUi( int ii = 0 ) const;
|
const wxPoint GetEndPosUi( int ii = 0 ) const;
|
||||||
const DPOINT GetStartPos( int ii = 0 ) const;
|
const DPOINT GetStartPos( int ii = 0 ) const;
|
||||||
const DPOINT GetEndPos( int ii = 0 ) const;
|
const DPOINT GetEndPos( int ii = 0 ) const;
|
||||||
virtual int GetPenSizeUi()
|
|
||||||
{
|
virtual int GetPenSizeUi();
|
||||||
if( m_LineWidth )
|
|
||||||
return KiROUND( m_LineWidth * m_WSunits2Iu );
|
|
||||||
else
|
|
||||||
return KiROUND( m_DefaultLineWidth * m_WSunits2Iu );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* move item to a new position
|
* move item to a new position
|
||||||
|
@ -253,15 +223,7 @@ public:
|
||||||
|
|
||||||
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
||||||
|
|
||||||
virtual int GetPenSizeUi() override
|
virtual int GetPenSizeUi() override;
|
||||||
{
|
|
||||||
return KiROUND( m_LineWidth * m_WSunits2Iu );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return false (no end point)
|
|
||||||
*/
|
|
||||||
virtual bool HasEndPoint() override { return false; }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add a corner in corner list
|
* add a corner in corner list
|
||||||
|
@ -353,18 +315,7 @@ public:
|
||||||
|
|
||||||
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
||||||
|
|
||||||
/**
|
virtual int GetPenSizeUi() override;
|
||||||
* @return false (no end point)
|
|
||||||
*/
|
|
||||||
virtual bool HasEndPoint() override { return false; }
|
|
||||||
|
|
||||||
virtual int GetPenSizeUi() override
|
|
||||||
{
|
|
||||||
if( m_LineWidth )
|
|
||||||
return KiROUND( m_LineWidth * m_WSunits2Iu );
|
|
||||||
else
|
|
||||||
return KiROUND( m_DefaultTextThickness * m_WSunits2Iu );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* move item to a new position
|
* move item to a new position
|
||||||
|
@ -418,30 +369,8 @@ public:
|
||||||
|
|
||||||
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
void SyncDrawItems( WS_DRAW_ITEM_LIST* aCollector, KIGFX::VIEW* aView ) override;
|
||||||
|
|
||||||
/**
|
|
||||||
* @return false (no end point)
|
|
||||||
*/
|
|
||||||
virtual bool HasEndPoint() override { return false; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the PPI of the bitmap
|
|
||||||
*/
|
|
||||||
int GetPPI() const;
|
int GetPPI() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* adjust the PPI of the bitmap
|
|
||||||
* @param aBitmapPPI = the ned PPI for the bitmap
|
|
||||||
*/
|
|
||||||
void SetPPI( int aBitmapPPI );
|
void SetPPI( int aBitmapPPI );
|
||||||
|
|
||||||
/**
|
|
||||||
* set the pixel scale factor of the bitmap
|
|
||||||
* this factor depend on the application internal unit
|
|
||||||
* and the pixel per inch bitmap factor
|
|
||||||
* the pixel scale factor is the pixel size to application internal unit
|
|
||||||
* and should be initialized before printing or drawing the bitmap
|
|
||||||
*/
|
|
||||||
void SetPixelScaleFactor();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -39,18 +39,30 @@
|
||||||
class WS_DATA_MODEL
|
class WS_DATA_MODEL
|
||||||
{
|
{
|
||||||
std::vector <WS_DATA_ITEM*> m_list;
|
std::vector <WS_DATA_ITEM*> m_list;
|
||||||
bool m_allowVoidList; // If false, the default page layout
|
bool m_allowVoidList; // If false, the default page layout will be loaded the
|
||||||
// will be loaded the first time
|
// first time WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList
|
||||||
// WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList
|
// is run (useful mainly for page layout editor)
|
||||||
// is run (useful mainly for page layout editor)
|
double m_leftMargin; // the left page margin in mm
|
||||||
double m_leftMargin; // the left page margin in mm
|
double m_rightMargin; // the right page margin in mm
|
||||||
double m_rightMargin; // the right page margin in mm
|
double m_topMargin; // the top page margin in mm
|
||||||
double m_topMargin; // the top page margin in mm
|
double m_bottomMargin; // the bottom page margin in mm
|
||||||
double m_bottomMargin; // the bottom page margin in mm
|
|
||||||
|
public:
|
||||||
|
double m_WSunits2Iu; // conversion factor between
|
||||||
|
// ws units (mils) and draw/plot units
|
||||||
|
DPOINT m_RB_Corner; // cordinates of the right bottom corner (in mm)
|
||||||
|
DPOINT m_LT_Corner; // cordinates of the left top corner (in mm)
|
||||||
|
double m_DefaultLineWidth; // Used when object line width is 0
|
||||||
|
DSIZE m_DefaultTextSize; // Used when object text size is 0
|
||||||
|
double m_DefaultTextThickness; // Used when object text stroke width is 0
|
||||||
|
bool m_SpecialMode; // Used in page layout editor to toggle variable substition
|
||||||
|
|
||||||
public:
|
public:
|
||||||
WS_DATA_MODEL();
|
WS_DATA_MODEL();
|
||||||
~WS_DATA_MODEL() {ClearList(); }
|
~WS_DATA_MODEL()
|
||||||
|
{
|
||||||
|
ClearList();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* static function: returns the instance of WS_DATA_MODEL used in the application
|
* static function: returns the instance of WS_DATA_MODEL used in the application
|
||||||
|
@ -66,14 +78,18 @@ public:
|
||||||
|
|
||||||
// Accessors:
|
// Accessors:
|
||||||
double GetLeftMargin() { return m_leftMargin; }
|
double GetLeftMargin() { return m_leftMargin; }
|
||||||
double GetRightMargin() { return m_rightMargin; }
|
void SetLeftMargin( double aMargin ) { m_leftMargin = aMargin; }
|
||||||
double GetTopMargin() { return m_topMargin; }
|
|
||||||
double GetBottomMargin() { return m_bottomMargin; }
|
|
||||||
|
|
||||||
void SetLeftMargin( double aMargin );
|
double GetRightMargin() { return m_rightMargin; }
|
||||||
void SetRightMargin( double aMargin );
|
void SetRightMargin( double aMargin ) { m_rightMargin = aMargin; }
|
||||||
void SetTopMargin( double aMargin );
|
|
||||||
void SetBottomMargin( double aMargin );
|
double GetTopMargin() { return m_topMargin; }
|
||||||
|
void SetTopMargin( double aMargin ) { m_topMargin = aMargin; }
|
||||||
|
|
||||||
|
double GetBottomMargin() { return m_bottomMargin; }
|
||||||
|
void SetBottomMargin( double aMargin ) { m_bottomMargin = aMargin; }
|
||||||
|
|
||||||
|
void SetupDrawEnvironment( const PAGE_INFO& aPageInfo, double aMilsToIU );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In Kicad applications, a page layout description is needed
|
* In Kicad applications, a page layout description is needed
|
||||||
|
|
|
@ -439,11 +439,6 @@ public:
|
||||||
*aList = m_graphicList;
|
*aList = m_graphicList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets up the WORKSHEET_DATAITEM globals for generating drawItems.
|
|
||||||
*/
|
|
||||||
static void SetupDrawEnvironment( const PAGE_INFO& aPageInfo );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draws the item list created by BuildWorkSheetGraphicList
|
* Draws the item list created by BuildWorkSheetGraphicList
|
||||||
* @param aClipBox = the clipping rect, or NULL if no clipping
|
* @param aClipBox = the clipping rect, or NULL if no clipping
|
||||||
|
|
|
@ -21,7 +21,7 @@ set( PL_EDITOR_SRCS
|
||||||
pl_editor_screen.cpp
|
pl_editor_screen.cpp
|
||||||
pl_editor_layout.cpp
|
pl_editor_layout.cpp
|
||||||
files.cpp
|
files.cpp
|
||||||
page_layout_writer.cpp
|
../common/page_layout/ws_data_model_io.cpp
|
||||||
pl_editor_frame.cpp
|
pl_editor_frame.cpp
|
||||||
pl_editor_undo_redo.cpp
|
pl_editor_undo_redo.cpp
|
||||||
properties_frame.cpp
|
properties_frame.cpp
|
||||||
|
|
|
@ -71,13 +71,14 @@ void PL_DRAW_PANEL_GAL::GetMsgPanelInfo( EDA_UNITS_T aUnits, std::vector<MSG_PAN
|
||||||
void PL_DRAW_PANEL_GAL::DisplayWorksheet()
|
void PL_DRAW_PANEL_GAL::DisplayWorksheet()
|
||||||
{
|
{
|
||||||
PL_SELECTION_TOOL* selTool = m_edaFrame->GetToolManager()->GetTool<PL_SELECTION_TOOL>();
|
PL_SELECTION_TOOL* selTool = m_edaFrame->GetToolManager()->GetTool<PL_SELECTION_TOOL>();
|
||||||
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
|
||||||
selTool->GetSelection().Clear();
|
selTool->GetSelection().Clear();
|
||||||
m_view->Clear();
|
m_view->Clear();
|
||||||
|
|
||||||
WS_DRAW_ITEM_LIST::SetupDrawEnvironment( m_edaFrame->GetPageSettings() );
|
model.SetupDrawEnvironment( m_edaFrame->GetPageSettings(), Mils2iu( 1 ) );
|
||||||
|
|
||||||
for( WS_DATA_ITEM* dataItem : WS_DATA_MODEL::GetTheInstance().GetItems() )
|
for( WS_DATA_ITEM* dataItem : model.GetItems() )
|
||||||
dataItem->SyncDrawItems( nullptr, m_view );
|
dataItem->SyncDrawItems( nullptr, m_view );
|
||||||
|
|
||||||
selTool->RebuildSelection();
|
selTool->RebuildSelection();
|
||||||
|
|
|
@ -92,7 +92,7 @@ PL_EDITOR_FRAME::PL_EDITOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
m_hotkeysDescrList = PlEditorHotkeysDescr;
|
m_hotkeysDescrList = PlEditorHotkeysDescr;
|
||||||
m_originSelectChoice = 0;
|
m_originSelectChoice = 0;
|
||||||
SetDrawBgColor( WHITE ); // default value, user option (WHITE/BLACK)
|
SetDrawBgColor( WHITE ); // default value, user option (WHITE/BLACK)
|
||||||
WS_DATA_ITEM::m_SpecialMode = true;
|
WS_DATA_MODEL::GetTheInstance().m_SpecialMode = true;
|
||||||
SetShowPageLimits( true );
|
SetShowPageLimits( true );
|
||||||
m_AboutTitle = "PlEditor";
|
m_AboutTitle = "PlEditor";
|
||||||
|
|
||||||
|
@ -321,7 +321,7 @@ void PL_EDITOR_FRAME::OnSelectCoordOriginCorner( wxCommandEvent& event )
|
||||||
|
|
||||||
void PL_EDITOR_FRAME::OnSelectTitleBlockDisplayMode( wxCommandEvent& event )
|
void PL_EDITOR_FRAME::OnSelectTitleBlockDisplayMode( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
WS_DATA_ITEM::m_SpecialMode = (event.GetId() == ID_SHOW_PL_EDITOR_MODE);
|
WS_DATA_MODEL::GetTheInstance().m_SpecialMode = (event.GetId() == ID_SHOW_PL_EDITOR_MODE);
|
||||||
HardRedraw();
|
HardRedraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,13 +373,13 @@ void PL_EDITOR_FRAME::ToPrinter( bool doPreview )
|
||||||
|
|
||||||
void PL_EDITOR_FRAME::OnUpdateTitleBlockDisplayNormalMode( wxUpdateUIEvent& event )
|
void PL_EDITOR_FRAME::OnUpdateTitleBlockDisplayNormalMode( wxUpdateUIEvent& event )
|
||||||
{
|
{
|
||||||
event.Check( WS_DATA_ITEM::m_SpecialMode == false );
|
event.Check( WS_DATA_MODEL::GetTheInstance().m_SpecialMode == false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PL_EDITOR_FRAME::OnUpdateTitleBlockDisplaySpecialMode( wxUpdateUIEvent& event )
|
void PL_EDITOR_FRAME::OnUpdateTitleBlockDisplaySpecialMode( wxUpdateUIEvent& event )
|
||||||
{
|
{
|
||||||
event.Check( WS_DATA_ITEM::m_SpecialMode == true );
|
event.Check( WS_DATA_MODEL::GetTheInstance().m_SpecialMode == true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -505,9 +505,7 @@ void PL_EDITOR_FRAME::UpdateStatusBar()
|
||||||
// Display Zoom level:
|
// Display Zoom level:
|
||||||
EDA_DRAW_FRAME::UpdateStatusBar();
|
EDA_DRAW_FRAME::UpdateStatusBar();
|
||||||
|
|
||||||
// coordinate origin can be the paper Top Left corner,
|
// coordinate origin can be the paper Top Left corner, or each of 4 page corners
|
||||||
// or each of 4 page corners
|
|
||||||
// We know the origin, and the orientation of axis
|
|
||||||
wxPoint originCoord;
|
wxPoint originCoord;
|
||||||
int Xsign = 1;
|
int Xsign = 1;
|
||||||
int Ysign = 1;
|
int Ysign = 1;
|
||||||
|
|
|
@ -70,63 +70,62 @@ wxSize PROPERTIES_FRAME::GetMinSize() const
|
||||||
// Data transfert from general properties to widgets
|
// Data transfert from general properties to widgets
|
||||||
void PROPERTIES_FRAME::CopyPrmsFromGeneralToPanel()
|
void PROPERTIES_FRAME::CopyPrmsFromGeneralToPanel()
|
||||||
{
|
{
|
||||||
wxString msg;
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
wxString msg;
|
||||||
|
|
||||||
// Set default parameters
|
// Set default parameters
|
||||||
msg.Printf( wxT("%.3f"), WS_DATA_ITEM::m_DefaultLineWidth );
|
msg.Printf( wxT("%.3f"), model.m_DefaultLineWidth );
|
||||||
m_textCtrlDefaultLineWidth->SetValue( msg );
|
m_textCtrlDefaultLineWidth->SetValue( msg );
|
||||||
|
|
||||||
msg.Printf( wxT("%.3f"), WS_DATA_ITEM::m_DefaultTextSize.x );
|
msg.Printf( wxT("%.3f"), model.m_DefaultTextSize.x );
|
||||||
m_textCtrlDefaultTextSizeX->SetValue( msg );
|
m_textCtrlDefaultTextSizeX->SetValue( msg );
|
||||||
msg.Printf( wxT("%.3f"), WS_DATA_ITEM::m_DefaultTextSize.y );
|
msg.Printf( wxT("%.3f"), model.m_DefaultTextSize.y );
|
||||||
m_textCtrlDefaultTextSizeY->SetValue( msg );
|
m_textCtrlDefaultTextSizeY->SetValue( msg );
|
||||||
|
|
||||||
msg.Printf( wxT("%.3f"), WS_DATA_ITEM::m_DefaultTextThickness );
|
msg.Printf( wxT("%.3f"), model.m_DefaultTextThickness );
|
||||||
m_textCtrlDefaultTextThickness->SetValue( msg );
|
m_textCtrlDefaultTextThickness->SetValue( msg );
|
||||||
|
|
||||||
// Set page margins values
|
// Set page margins values
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
msg.Printf( wxT("%.3f"), model.GetRightMargin() );
|
||||||
msg.Printf( wxT("%.3f"), pglayout.GetRightMargin() );
|
|
||||||
m_textCtrlRightMargin->SetValue( msg );
|
m_textCtrlRightMargin->SetValue( msg );
|
||||||
msg.Printf( wxT("%.3f"), pglayout.GetBottomMargin() );
|
msg.Printf( wxT("%.3f"), model.GetBottomMargin() );
|
||||||
m_textCtrlDefaultBottomMargin->SetValue( msg );
|
m_textCtrlDefaultBottomMargin->SetValue( msg );
|
||||||
|
|
||||||
msg.Printf( wxT("%.3f"), pglayout.GetLeftMargin() );
|
msg.Printf( wxT("%.3f"), model.GetLeftMargin() );
|
||||||
m_textCtrlLeftMargin->SetValue( msg );
|
m_textCtrlLeftMargin->SetValue( msg );
|
||||||
msg.Printf( wxT("%.3f"), pglayout.GetTopMargin() );
|
msg.Printf( wxT("%.3f"), model.GetTopMargin() );
|
||||||
m_textCtrlTopMargin->SetValue( msg );
|
m_textCtrlTopMargin->SetValue( msg );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Data transfert from widgets to general properties
|
// Data transfert from widgets to general properties
|
||||||
bool PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral()
|
bool PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral()
|
||||||
{
|
{
|
||||||
wxString msg;
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
|
wxString msg;
|
||||||
|
|
||||||
// Import default parameters from widgets
|
// Import default parameters from widgets
|
||||||
msg = m_textCtrlDefaultLineWidth->GetValue();
|
msg = m_textCtrlDefaultLineWidth->GetValue();
|
||||||
WS_DATA_ITEM::m_DefaultLineWidth = DoubleValueFromString( UNSCALED_UNITS, msg );
|
model.m_DefaultLineWidth = DoubleValueFromString( UNSCALED_UNITS, msg );
|
||||||
|
|
||||||
msg = m_textCtrlDefaultTextSizeX->GetValue();
|
msg = m_textCtrlDefaultTextSizeX->GetValue();
|
||||||
WS_DATA_ITEM::m_DefaultTextSize.x = DoubleValueFromString( UNSCALED_UNITS, msg );
|
model.m_DefaultTextSize.x = DoubleValueFromString( UNSCALED_UNITS, msg );
|
||||||
msg = m_textCtrlDefaultTextSizeY->GetValue();
|
msg = m_textCtrlDefaultTextSizeY->GetValue();
|
||||||
WS_DATA_ITEM::m_DefaultTextSize.y = DoubleValueFromString( UNSCALED_UNITS, msg );
|
model.m_DefaultTextSize.y = DoubleValueFromString( UNSCALED_UNITS, msg );
|
||||||
|
|
||||||
msg = m_textCtrlDefaultTextThickness->GetValue();
|
msg = m_textCtrlDefaultTextThickness->GetValue();
|
||||||
WS_DATA_ITEM::m_DefaultTextThickness = DoubleValueFromString( UNSCALED_UNITS, msg );
|
model.m_DefaultTextThickness = DoubleValueFromString( UNSCALED_UNITS, msg );
|
||||||
|
|
||||||
// Get page margins values
|
// Get page margins values
|
||||||
WS_DATA_MODEL& pglayout = WS_DATA_MODEL::GetTheInstance();
|
|
||||||
|
|
||||||
msg = m_textCtrlRightMargin->GetValue();
|
msg = m_textCtrlRightMargin->GetValue();
|
||||||
pglayout.SetRightMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
model.SetRightMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
||||||
msg = m_textCtrlDefaultBottomMargin->GetValue();
|
msg = m_textCtrlDefaultBottomMargin->GetValue();
|
||||||
pglayout.SetBottomMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
model.SetBottomMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
||||||
|
|
||||||
// cordinates of the left top corner are the left and top margins
|
// cordinates of the left top corner are the left and top margins
|
||||||
msg = m_textCtrlLeftMargin->GetValue();
|
msg = m_textCtrlLeftMargin->GetValue();
|
||||||
pglayout.SetLeftMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
model.SetLeftMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
||||||
msg = m_textCtrlTopMargin->GetValue();
|
msg = m_textCtrlTopMargin->GetValue();
|
||||||
pglayout.SetTopMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
model.SetTopMargin( DoubleValueFromString( UNSCALED_UNITS, msg ) );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -316,11 +315,11 @@ void PROPERTIES_FRAME::OnAcceptPrms( wxCommandEvent& event )
|
||||||
|
|
||||||
void PROPERTIES_FRAME::OnSetDefaultValues( wxCommandEvent& event )
|
void PROPERTIES_FRAME::OnSetDefaultValues( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
WS_DATA_ITEM::m_DefaultTextSize =
|
WS_DATA_MODEL& model = WS_DATA_MODEL::GetTheInstance();
|
||||||
DSIZE( TB_DEFAULT_TEXTSIZE, TB_DEFAULT_TEXTSIZE );
|
|
||||||
// default thickness in mm
|
model.m_DefaultTextSize = DSIZE( TB_DEFAULT_TEXTSIZE, TB_DEFAULT_TEXTSIZE );
|
||||||
WS_DATA_ITEM::m_DefaultLineWidth = 0.15;
|
model.m_DefaultLineWidth = 0.15;
|
||||||
WS_DATA_ITEM::m_DefaultTextThickness = 0.15;
|
model.m_DefaultTextThickness = 0.15;
|
||||||
|
|
||||||
CopyPrmsFromGeneralToPanel();
|
CopyPrmsFromGeneralToPanel();
|
||||||
m_parent->GetCanvas()->Refresh();
|
m_parent->GetCanvas()->Refresh();
|
||||||
|
|
Loading…
Reference in New Issue