KiCad PCB EDA Suite
DS_DATA_MODEL Class Reference

Handle the graphic items list to draw/plot the frame and title block. More...

#include <ds_data_model.h>

Public Member Functions

 DS_DATA_MODEL ()
 
 ~DS_DATA_MODEL ()
 
double GetLeftMargin ()
 
void SetLeftMargin (double aMargin)
 
double GetRightMargin ()
 
void SetRightMargin (double aMargin)
 
double GetTopMargin ()
 
void SetTopMargin (double aMargin)
 
double GetBottomMargin ()
 
void SetBottomMargin (double aMargin)
 
void SetupDrawEnvironment (const PAGE_INFO &aPageInfo, double aMilsToIU)
 
void AllowVoidList (bool Allow)
 In KiCad applications, a page layout description is needed So if the list is empty, a default description is loaded, the first time a page layout is drawn. More...
 
bool VoidListAllowed ()
 
void ClearList ()
 Erase the list of items. More...
 
void Save (const wxString &aFullFileName)
 Save the description in a file. More...
 
void SaveInString (wxString &aOutputString)
 Save the description in a buffer. More...
 
void SaveInString (std::vector< DS_DATA_ITEM * > aItemsList, wxString &aOutputString)
 Fill the given string with an S-expr serialization of the WS_DATA_ITEMs. More...
 
void Append (DS_DATA_ITEM *aItem)
 
void Remove (DS_DATA_ITEM *aItem)
 
int GetItemIndex (DS_DATA_ITEM *aItem) const
 
DS_DATA_ITEMGetItem (unsigned aIdx) const
 
std::vector< DS_DATA_ITEM * > & GetItems ()
 
unsigned GetCount () const
 
void SetDefaultLayout ()
 
void SetEmptyLayout ()
 
void LoadDrawingSheet (const wxString &aFullFileName=wxEmptyString, bool Append=false)
 Populates the list with a custom layout or the default layout if no custom layout is available. More...
 
void SetPageLayout (const char *aPageLayout, bool aAppend=false, const wxString &aSource=wxT("Sexpr_string"))
 Populate the list from a S expr description stored in a string. More...
 

Static Public Member Functions

static DS_DATA_MODELGetTheInstance ()
 static function: returns the instance of DS_DATA_MODEL used in the application More...
 
static void SetAltInstance (DS_DATA_MODEL *aLayout=NULL)
 Set an alternate instance of DS_DATA_MODEL. More...
 
static wxString EmptyLayout ()
 Return a string containing the empty layout shape. More...
 
static wxString DefaultLayout ()
 Return a string containing the empty layout shape. More...
 
static const wxString MakeShortFileName (const wxString &aFullFileName, const wxString &aProjectPath)
 
static const wxString MakeFullFileName (const wxString &aShortFileName, const wxString &aProjectPath)
 

Public Attributes

double m_WSunits2Iu
 
DPOINT m_RB_Corner
 
DPOINT m_LT_Corner
 
double m_DefaultLineWidth
 
DSIZE m_DefaultTextSize
 
double m_DefaultTextThickness
 
bool m_EditMode
 

Private Attributes

std::vector< DS_DATA_ITEM * > m_list
 
bool m_allowVoidList
 
double m_leftMargin
 
double m_rightMargin
 
double m_topMargin
 
double m_bottomMargin
 

Detailed Description

Handle the graphic items list to draw/plot the frame and title block.

Definition at line 38 of file ds_data_model.h.

Constructor & Destructor Documentation

◆ DS_DATA_MODEL()

DS_DATA_MODEL::DS_DATA_MODEL ( )

Definition at line 61 of file ds_data_model.cpp.

61  :
62  m_WSunits2Iu( 1000.0 ),
63  m_DefaultLineWidth( 0.0 ),
66  m_EditMode( false )
67 {
68  m_allowVoidList = false;
69  m_leftMargin = 10.0; // the left page margin in mm
70  m_rightMargin = 10.0; // the right page margin in mm
71  m_topMargin = 10.0; // the top page margin in mm
72  m_bottomMargin = 10.0; // the bottom page margin in mm
73 }
double m_DefaultLineWidth
#define TB_DEFAULT_TEXTSIZE
Definition: ds_data_item.h:35
double m_topMargin
double m_DefaultTextThickness
double m_bottomMargin
DSIZE m_DefaultTextSize
double m_leftMargin
double m_WSunits2Iu
double m_rightMargin

References m_allowVoidList, m_bottomMargin, m_leftMargin, m_rightMargin, and m_topMargin.

◆ ~DS_DATA_MODEL()

DS_DATA_MODEL::~DS_DATA_MODEL ( )
inline

Definition at line 43 of file ds_data_model.h.

44  {
45  ClearList();
46  }
void ClearList()
Erase the list of items.

References ClearList().

Member Function Documentation

◆ AllowVoidList()

void DS_DATA_MODEL::AllowVoidList ( bool  Allow)
inline

In KiCad applications, a page layout description is needed So if the list is empty, a default description is loaded, the first time a page layout is drawn.

However, in drawing sheet editor an empty list is acceptable. AllowVoidList allows or not the empty list

Definition at line 81 of file ds_data_model.h.

81 { m_allowVoidList = Allow; }

References m_allowVoidList.

Referenced by PL_EDITOR_FRAME::Files_io(), DRAWING_SHEET_READER_PARSER::parseSetup(), and PL_EDITOR_FRAME::PL_EDITOR_FRAME().

◆ Append()

void DS_DATA_MODEL::Append ( DS_DATA_ITEM aItem)

Definition at line 127 of file ds_data_model.cpp.

128 {
129  m_list.push_back( aItem );
130 }
std::vector< DS_DATA_ITEM * > m_list

References m_list.

Referenced by PL_EDITOR_FRAME::AddPageLayoutItem(), LoadDrawingSheet(), DRAWING_SHEET_READER_PARSER::Parse(), and SetPageLayout().

◆ ClearList()

void DS_DATA_MODEL::ClearList ( )

Erase the list of items.

Definition at line 118 of file ds_data_model.cpp.

119 {
120  for( DS_DATA_ITEM* item : m_list )
121  delete item;
122 
123  m_list.clear();
124 }
std::vector< DS_DATA_ITEM * > m_list
Drawing sheet structure type definitions.
Definition: ds_data_item.h:95

References m_list.

Referenced by PL_EDITOR_FRAME::doCloseWindow(), PL_EDITOR_FRAME::Files_io(), LoadDrawingSheet(), PL_EDITOR_FRAME::PL_EDITOR_FRAME(), SetPageLayout(), and ~DS_DATA_MODEL().

◆ DefaultLayout()

wxString DS_DATA_MODEL::DefaultLayout ( )
static

Return a string containing the empty layout shape.

Definition at line 772 of file drawing_sheet_reader.cpp.

773 {
774  return wxString( defaultDrawingSheet );
775 }
const char defaultDrawingSheet[]

References defaultDrawingSheet.

◆ EmptyLayout()

wxString DS_DATA_MODEL::EmptyLayout ( )
static

Return a string containing the empty layout shape.

Definition at line 787 of file drawing_sheet_reader.cpp.

788 {
789  return wxString( emptyDrawingSheet );
790 }
const char emptyDrawingSheet[]

References emptyDrawingSheet.

Referenced by SCH_EDIT_FRAME::importFile().

◆ GetBottomMargin()

double DS_DATA_MODEL::GetBottomMargin ( )
inline

◆ GetCount()

unsigned DS_DATA_MODEL::GetCount ( ) const
inline
Returns
the item count.

Definition at line 133 of file ds_data_model.h.

133 { return m_list.size(); }
std::vector< DS_DATA_ITEM * > m_list

References m_list.

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList(), and DS_DATA_MODEL_IO::Format().

◆ GetItem()

DS_DATA_ITEM * DS_DATA_MODEL::GetItem ( unsigned  aIdx) const
Returns
is the item from it's index aIdx, or NULL if does not exist.

Definition at line 156 of file ds_data_model.cpp.

157 {
158  if( aIdx < m_list.size() )
159  return m_list[aIdx];
160  else
161  return nullptr;
162 }
std::vector< DS_DATA_ITEM * > m_list

References m_list.

Referenced by DS_PROXY_UNDO_ITEM::DS_PROXY_UNDO_ITEM(), DS_DATA_MODEL_IO::Format(), and DS_PROXY_UNDO_ITEM::Restore().

◆ GetItemIndex()

int DS_DATA_MODEL::GetItemIndex ( DS_DATA_ITEM aItem) const
Returns
the index of aItem, or -1 if does not exist.

Definition at line 140 of file ds_data_model.cpp.

141 {
142  unsigned idx = 0;
143  while( idx < m_list.size() )
144  {
145  if( m_list[idx] == aItem )
146  return (int) idx;
147 
148  idx++;
149  }
150 
151  return -1;
152 }
std::vector< DS_DATA_ITEM * > m_list

References m_list.

◆ GetItems()

std::vector<DS_DATA_ITEM*>& DS_DATA_MODEL::GetItems ( )
inline

◆ GetLeftMargin()

double DS_DATA_MODEL::GetLeftMargin ( )
inline

◆ GetRightMargin()

double DS_DATA_MODEL::GetRightMargin ( )
inline

◆ GetTheInstance()

DS_DATA_MODEL & DS_DATA_MODEL::GetTheInstance ( )
static

static function: returns the instance of DS_DATA_MODEL used in the application

Definition at line 78 of file ds_data_model.cpp.

79 {
80  if( wksAltInstance )
81  return *wksAltInstance;
82  else
83  return wksTheInstance;
84 }
static DS_DATA_MODEL wksTheInstance
static DS_DATA_MODEL * wksAltInstance

References wksAltInstance, and wksTheInstance.

Referenced by PL_EDITOR_FRAME::AddPageLayoutItem(), DS_DRAW_ITEM_LIST::BuildDrawItemsList(), PL_EDIT_TOOL::Copy(), PROPERTIES_FRAME::CopyPrmsFromGeneralToPanel(), PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), PL_EDIT_TOOL::DeleteItemCursor(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PL_EDITOR_FRAME::doCloseWindow(), PL_EDIT_TOOL::DoDelete(), DS_PROXY_UNDO_ITEM::DS_PROXY_UNDO_ITEM(), PL_EDITOR_FRAME::Files_io(), DS_DATA_ITEM_POLYGONS::GetCornerPositionUi(), DS_DATA_ITEM::GetEndPos(), DS_DATA_ITEM::GetEndPosUi(), DS_DATA_ITEM::GetPenSizeUi(), DS_DATA_ITEM_POLYGONS::GetPenSizeUi(), DS_DATA_ITEM_TEXT::GetPenSizeUi(), DS_DATA_ITEM::GetStartPos(), DS_DATA_ITEM::GetStartPosUi(), SCH_EDIT_FRAME::importFile(), PL_EDITOR_FRAME::InsertPageLayoutDescrFile(), DS_DATA_ITEM::IsInsidePage(), DS_DATA_ITEM_POLYGONS::IsInsidePage(), PL_EDITOR_FRAME::LoadPageLayoutDescrFile(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), DS_DATA_ITEM::MoveEndPointTo(), DS_DATA_ITEM::MoveEndPointToUi(), DS_DATA_ITEM::MoveStartPointTo(), DS_DATA_ITEM::MoveStartPointToUi(), DS_DATA_ITEM::MoveToUi(), PROPERTIES_FRAME::OnSetDefaultValues(), PL_EDIT_TOOL::Paste(), PL_EDITOR_FRAME::PL_EDITOR_FRAME(), PLEDITOR_PRINTOUT::PrintPage(), PL_EDITOR_FRAME::PrintPage(), PL_SELECTION_TOOL::RebuildSelection(), DIALOG_INSPECTOR::ReCreateDesignList(), DS_PROXY_UNDO_ITEM::Restore(), PL_EDITOR_FRAME::SavePageLayoutDescrFile(), DIALOG_PAGES_SETTINGS::SavePageSettings(), PL_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), DS_DATA_ITEM_TEXT::SetConstrainedTextSize(), PL_EDITOR_FRAME::setupUIConditions(), DS_DATA_ITEM_TEXT::SyncDrawItems(), and PL_EDITOR_CONTROL::TitleBlockDisplayMode().

◆ GetTopMargin()

double DS_DATA_MODEL::GetTopMargin ( )
inline

◆ LoadDrawingSheet()

void DS_DATA_MODEL::LoadDrawingSheet ( const wxString &  aFullFileName = wxEmptyString,
bool  Append = false 
)

Populates the list with a custom layout or the default layout if no custom layout is available.

Parameters
aFullFileNameis the custom page layout description file. If empty, load the file defined by KICAD_WKSFILE and if its is not defined use the default internal description.
Appendif true: do not delete old layout, and load only aFullFileName.

Definition at line 811 of file drawing_sheet_reader.cpp.

812 {
813  wxString fullFileName = aFullFileName;
814 
815  if( !Append )
816  {
817  if( fullFileName.IsEmpty() )
818  wxGetEnv( wxT( "KICAD_WKSFILE" ), &fullFileName );
819 
820  if( fullFileName.IsEmpty() || !wxFileExists( fullFileName ) )
821  {
822  #if 0
823  if( !fullFileName.IsEmpty() )
824  wxLogMessage( wxT( "Drawing sheet file <%s> not found" ), fullFileName.GetData() );
825  #endif
827  return;
828  }
829  }
830 
831  wxFFile wksFile( fullFileName, "rb" );
832 
833  if( ! wksFile.IsOpened() )
834  {
835  if( !Append )
837  return;
838  }
839 
840  size_t filelen = wksFile.Length();
841  char * buffer = new char[filelen+10];
842 
843  if( wksFile.Read( buffer, filelen ) != filelen )
844  wxLogMessage( _("The file \"%s\" was not fully read"), fullFileName.GetData() );
845  else
846  {
847  buffer[filelen]=0;
848 
849  if( ! Append )
850  ClearList();
851 
852  DRAWING_SHEET_READER_PARSER pl_parser( buffer, fullFileName );
853 
854  try
855  {
856  pl_parser.Parse( this );
857  }
858  catch( const IO_ERROR& ioe )
859  {
860  wxLogMessage( ioe.What() );
861  }
862  }
863 
864  delete[] buffer;
865 }
void ClearList()
Erase the list of items.
DRAWING_SHEET_READER_PARSER holds data and functions pertinent to parsing a S-expression file for a D...
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:29
#define _(s)
Definition: 3d_actions.cpp:33
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
void Append(DS_DATA_ITEM *aItem)

References _, Append(), ClearList(), DRAWING_SHEET_READER_PARSER::Parse(), SetDefaultLayout(), and IO_ERROR::What().

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList(), PL_EDITOR_FRAME::InsertPageLayoutDescrFile(), PL_EDITOR_FRAME::LoadPageLayoutDescrFile(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_PAGES_SETTINGS::OnWksFileSelection(), PL_EDITOR_FRAME::PL_EDITOR_FRAME(), and DIALOG_PAGES_SETTINGS::SavePageSettings().

◆ MakeFullFileName()

const wxString DS_DATA_MODEL::MakeFullFileName ( const wxString &  aShortFileName,
const wxString &  aProjectPath 
)
static
Parameters
aShortFileName= the short filename, which can be a relative
aProjectPath= the curr project absolute path (can be empty) or absolute path, and can include env variable reference ( ${envvar} expression ) if the short filename path is relative, it is expected relative to the project path or (if aProjectPath is empty or if the file does not exist) relative to kicad.pro (in template) If aShortFileName is absolute return aShortFileName
Returns
a full filename from a short filename.

Definition at line 194 of file ds_data_model.cpp.

196 {
197  wxString fullFileName = ExpandEnvVarSubstitutions( aShortFileName, nullptr );
198 
199  if( fullFileName.IsEmpty() )
200  return fullFileName;
201 
202  wxFileName fn = fullFileName;
203 
204  if( fn.IsAbsolute() )
205  return fullFileName;
206 
207  // the path is not absolute: search it in project path, and then in
208  // kicad valid paths
209  if( !aProjectPath.IsEmpty() )
210  {
211  fn.MakeAbsolute( aProjectPath );
212 
213  if( wxFileExists( fn.GetFullPath() ) )
214  return fn.GetFullPath();
215  }
216 
217  fn = fullFileName;
218  wxString name = Kiface().KifaceSearch().FindValidPath( fn.GetFullName() );
219 
220  if( !name.IsEmpty() )
221  fullFileName = name;
222 
223  return fullFileName;
224 }
wxString FindValidPath(const wxString &aFileName) const
Definition: search_stack.h:70
const wxString ExpandEnvVarSubstitutions(const wxString &aString, PROJECT *aProject)
Replace any environment variable & text variable references with their values.
Definition: common.cpp:273
SEARCH_STACK & KifaceSearch()
Only for DSO specific 'non-library' files.
Definition: kiface_i.h:113
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
const char * name
Definition: DXF_plotter.cpp:59

References ExpandEnvVarSubstitutions(), SEARCH_STACK::FindValidPath(), Kiface(), KIFACE_I::KifaceSearch(), and name.

Referenced by SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), and DIALOG_PAGES_SETTINGS::SavePageSettings().

◆ MakeShortFileName()

const wxString DS_DATA_MODEL::MakeShortFileName ( const wxString &  aFullFileName,
const wxString &  aProjectPath 
)
static
Parameters
aFullFileNameis the full filename, which can be a relative.
aProjectPathis the current project absolute path (can be empty).
Returns
a short filename from a full filename: if the path is the current project path, or if the path is the same as kicad.pro (in template), returns the shortname else do nothing and returns a full filename

Definition at line 165 of file ds_data_model.cpp.

167 {
168  wxString shortFileName = aFullFileName;
169  wxFileName fn = aFullFileName;
170 
171  if( fn.IsRelative() )
172  return shortFileName;
173 
174  if( ! aProjectPath.IsEmpty() && aFullFileName.StartsWith( aProjectPath ) )
175  {
176  fn.MakeRelativeTo( aProjectPath );
177  shortFileName = fn.GetFullPath();
178  return shortFileName;
179  }
180 
181  wxString fileName = Kiface().KifaceSearch().FindValidPath( fn.GetFullName() );
182 
183  if( !fileName.IsEmpty() )
184  {
185  fn = fileName;
186  shortFileName = fn.GetFullName();
187  return shortFileName;
188  }
189 
190  return shortFileName;
191 }
wxString FindValidPath(const wxString &aFileName) const
Definition: search_stack.h:70
SEARCH_STACK & KifaceSearch()
Only for DSO specific 'non-library' files.
Definition: kiface_i.h:113
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.

References SEARCH_STACK::FindValidPath(), Kiface(), and KIFACE_I::KifaceSearch().

Referenced by DIALOG_PAGES_SETTINGS::OnWksFileSelection().

◆ Remove()

void DS_DATA_MODEL::Remove ( DS_DATA_ITEM aItem)

Definition at line 133 of file ds_data_model.cpp.

134 {
135  auto newEnd = std::remove( m_list.begin(), m_list.end(), aItem );
136  m_list.erase( newEnd, m_list.end() );
137 }
std::vector< DS_DATA_ITEM * > m_list

References m_list.

Referenced by PL_EDIT_TOOL::DoDelete().

◆ Save()

void DS_DATA_MODEL::Save ( const wxString &  aFullFileName)

Save the description in a file.

Parameters
aFullFileNamethe filename of the file to created.

Definition at line 136 of file ds_data_model_io.cpp.

137 {
138  DS_DATA_MODEL_FILEIO writer( aFullFileName );
139  writer.Format( this );
140 }

References DS_DATA_MODEL_IO::Format().

Referenced by PL_EDITOR_FRAME::SavePageLayoutDescrFile().

◆ SaveInString() [1/2]

void DS_DATA_MODEL::SaveInString ( wxString &  aOutputString)

Save the description in a buffer.

Parameters
aOutputStringis a wxString to store the S expr string

Definition at line 145 of file ds_data_model_io.cpp.

146 {
147  DS_DATA_MODEL_STRINGIO writer( aOutputString );
148  writer.Format( this );
149 }

References DS_DATA_MODEL_IO::Format().

Referenced by PL_EDIT_TOOL::Copy(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), and DS_PROXY_UNDO_ITEM::DS_PROXY_UNDO_ITEM().

◆ SaveInString() [2/2]

void DS_DATA_MODEL::SaveInString ( std::vector< DS_DATA_ITEM * >  aItemsList,
wxString &  aOutputString 
)

Fill the given string with an S-expr serialization of the WS_DATA_ITEMs.

Definition at line 152 of file ds_data_model_io.cpp.

153 {
154  DS_DATA_MODEL_STRINGIO writer( aOutputString );
155 
156  LOCALE_IO toggle; // switch on/off the locale "C" notation
157 
158  for( DS_DATA_ITEM* item : aItemsList )
159  writer.Format( this, item, 0 );
160 }
Instantiate the current locale within a scope in which you are expecting exceptions to be thrown.
Definition: locale_io.h:40
Drawing sheet structure type definitions.
Definition: ds_data_item.h:95

References DS_DATA_MODEL_IO::Format().

◆ SetAltInstance()

void DS_DATA_MODEL::SetAltInstance ( DS_DATA_MODEL aLayout = NULL)
static

Set an alternate instance of DS_DATA_MODEL.

static function: Set an alternate instance of DS_DATA_MODEL mainly used in page setting dialog

Parameters
aLayoutthe alternate page layout; if null restore the basic page layout
aLayout= the alternate page layout. if null, restore the basic page layout

Definition at line 92 of file ds_data_model.cpp.

93 {
94  wksAltInstance = aLayout;
95 }
static DS_DATA_MODEL * wksAltInstance

References wksAltInstance.

Referenced by DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample().

◆ SetBottomMargin()

void DS_DATA_MODEL::SetBottomMargin ( double  aMargin)
inline

◆ SetDefaultLayout()

void DS_DATA_MODEL::SetDefaultLayout ( )

Definition at line 766 of file drawing_sheet_reader.cpp.

767 {
768  SetPageLayout( defaultDrawingSheet, false, wxT( "default page" ) );
769 }
const char defaultDrawingSheet[]
void SetPageLayout(const char *aPageLayout, bool aAppend=false, const wxString &aSource=wxT("Sexpr_string"))
Populate the list from a S expr description stored in a string.

References defaultDrawingSheet, and SetPageLayout().

Referenced by LoadDrawingSheet().

◆ SetEmptyLayout()

void DS_DATA_MODEL::SetEmptyLayout ( )

Definition at line 781 of file drawing_sheet_reader.cpp.

782 {
783  SetPageLayout( emptyDrawingSheet, false, wxT( "empty page" ) );
784 }
void SetPageLayout(const char *aPageLayout, bool aAppend=false, const wxString &aSource=wxT("Sexpr_string"))
Populate the list from a S expr description stored in a string.
const char emptyDrawingSheet[]

References emptyDrawingSheet, and SetPageLayout().

Referenced by SCH_EDIT_FRAME::importFile().

◆ SetLeftMargin()

void DS_DATA_MODEL::SetLeftMargin ( double  aMargin)
inline

Definition at line 61 of file ds_data_model.h.

61 { m_leftMargin = aMargin; }
double m_leftMargin

References m_leftMargin.

Referenced by PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), and DRAWING_SHEET_READER_PARSER::parseSetup().

◆ SetPageLayout()

void DS_DATA_MODEL::SetPageLayout ( const char *  aPageLayout,
bool  aAppend = false,
const wxString &  aSource = wxT( "Sexpr_string" ) 
)

Populate the list from a S expr description stored in a string.

Parameters
aPageLayoutis the S expr string.
aAppendDo not delete old layout if true and append aPageLayout the existing one.
aSourceis the layout source description.

Definition at line 793 of file drawing_sheet_reader.cpp.

794 {
795  if( ! Append )
796  ClearList();
797 
798  DRAWING_SHEET_READER_PARSER lp_parser( aPageLayout, wxT( "Sexpr_string" ) );
799 
800  try
801  {
802  lp_parser.Parse( this );
803  }
804  catch( const IO_ERROR& ioe )
805  {
806  wxLogMessage( ioe.What() );
807  }
808 }
void ClearList()
Erase the list of items.
DRAWING_SHEET_READER_PARSER holds data and functions pertinent to parsing a S-expression file for a D...
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:29
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:75
void Append(DS_DATA_ITEM *aItem)

References Append(), ClearList(), DRAWING_SHEET_READER_PARSER::Parse(), and IO_ERROR::What().

Referenced by DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), PL_EDIT_TOOL::Paste(), DS_PROXY_UNDO_ITEM::Restore(), SetDefaultLayout(), and SetEmptyLayout().

◆ SetRightMargin()

void DS_DATA_MODEL::SetRightMargin ( double  aMargin)
inline

Definition at line 64 of file ds_data_model.h.

64 { m_rightMargin = aMargin; }
double m_rightMargin

References m_rightMargin.

Referenced by PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), and DRAWING_SHEET_READER_PARSER::parseSetup().

◆ SetTopMargin()

void DS_DATA_MODEL::SetTopMargin ( double  aMargin)
inline

Definition at line 67 of file ds_data_model.h.

67 { m_topMargin = aMargin; }
double m_topMargin

References m_topMargin.

Referenced by PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), and DRAWING_SHEET_READER_PARSER::parseSetup().

◆ SetupDrawEnvironment()

void DS_DATA_MODEL::SetupDrawEnvironment ( const PAGE_INFO aPageInfo,
double  aMilsToIU 
)

Definition at line 98 of file ds_data_model.cpp.

99 {
100 #define MILS_TO_MM (25.4/1000)
101 
102  m_WSunits2Iu = aMilsToIU / MILS_TO_MM;
103 
104  // Left top corner position
105  DPOINT lt_corner;
106  lt_corner.x = GetLeftMargin();
107  lt_corner.y = GetTopMargin();
108  m_LT_Corner = lt_corner;
109 
110  // Right bottom corner position
111  DPOINT rb_corner;
112  rb_corner.x = ( aPageInfo.GetSizeMils().x * MILS_TO_MM ) - GetRightMargin();
113  rb_corner.y = ( aPageInfo.GetSizeMils().y * MILS_TO_MM ) - GetBottomMargin();
114  m_RB_Corner = rb_corner;
115 }
double GetRightMargin()
Definition: ds_data_model.h:63
double GetTopMargin()
Definition: ds_data_model.h:66
double GetLeftMargin()
Definition: ds_data_model.h:60
DPOINT m_RB_Corner
DPOINT m_LT_Corner
double GetBottomMargin()
Definition: ds_data_model.h:69
#define MILS_TO_MM
double m_WSunits2Iu
const wxSize & GetSizeMils() const
Definition: page_info.h:135

References GetBottomMargin(), GetLeftMargin(), GetRightMargin(), PAGE_INFO::GetSizeMils(), GetTopMargin(), m_LT_Corner, m_RB_Corner, m_WSunits2Iu, MILS_TO_MM, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList().

◆ VoidListAllowed()

bool DS_DATA_MODEL::VoidListAllowed ( )
inline
Returns
true if an empty list is allowed

Definition at line 86 of file ds_data_model.h.

86 { return m_allowVoidList; }

References m_allowVoidList.

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList().

Member Data Documentation

◆ m_allowVoidList

bool DS_DATA_MODEL::m_allowVoidList
private

Definition at line 209 of file ds_data_model.h.

Referenced by AllowVoidList(), DS_DATA_MODEL(), and VoidListAllowed().

◆ m_bottomMargin

double DS_DATA_MODEL::m_bottomMargin
private

Definition at line 215 of file ds_data_model.h.

Referenced by DS_DATA_MODEL(), GetBottomMargin(), and SetBottomMargin().

◆ m_DefaultLineWidth

◆ m_DefaultTextSize

◆ m_DefaultTextThickness

◆ m_EditMode

◆ m_leftMargin

double DS_DATA_MODEL::m_leftMargin
private

Definition at line 212 of file ds_data_model.h.

Referenced by DS_DATA_MODEL(), GetLeftMargin(), and SetLeftMargin().

◆ m_list

std::vector<DS_DATA_ITEM*> DS_DATA_MODEL::m_list
private

Definition at line 208 of file ds_data_model.h.

Referenced by Append(), ClearList(), GetCount(), GetItem(), GetItemIndex(), GetItems(), and Remove().

◆ m_LT_Corner

◆ m_RB_Corner

◆ m_rightMargin

double DS_DATA_MODEL::m_rightMargin
private

Definition at line 213 of file ds_data_model.h.

Referenced by DS_DATA_MODEL(), GetRightMargin(), and SetRightMargin().

◆ m_topMargin

double DS_DATA_MODEL::m_topMargin
private

Definition at line 214 of file ds_data_model.h.

Referenced by DS_DATA_MODEL(), GetTopMargin(), and SetTopMargin().

◆ m_WSunits2Iu


The documentation for this class was generated from the following files: