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 ()
 
int GetFileFormatVersionAtLoad ()
 
void SetFileFormatVersionAtLoad (int aVersion)
 
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 drawing sheet is needed So if the list is empty, a default drawing sheet is loaded, the first time it 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 ()
 
bool 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=nullptr)
 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 ResolvePath (const wxString &aPath, const wxString &aProjectPath)
 Resolve a path which might be project-relative or contain env variable references. More...
 

Public Attributes

double m_WSunits2Iu
 
VECTOR2D m_RB_Corner
 
VECTOR2D m_LT_Corner
 
double m_DefaultLineWidth
 
VECTOR2D m_DefaultTextSize
 
double m_DefaultTextThickness
 
bool m_EditMode
 

Private Attributes

std::vector< DS_DATA_ITEM * > m_list
 
bool m_allowVoidList
 
int m_fileFormatVersionAtLoad
 
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 60 of file ds_data_model.cpp.

60 :
61 m_WSunits2Iu( 1000.0 ),
62 m_DefaultLineWidth( 0.0 ),
65 m_EditMode( false )
66{
67 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}
VECTOR2D m_DefaultTextSize
double m_rightMargin
double m_DefaultLineWidth
double m_bottomMargin
double m_DefaultTextThickness
double m_WSunits2Iu
double m_leftMargin
double m_topMargin
int m_fileFormatVersionAtLoad
#define TB_DEFAULT_TEXTSIZE
Definition: ds_data_item.h:35

References m_allowVoidList, m_bottomMargin, m_fileFormatVersionAtLoad, 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 drawing sheet is needed So if the list is empty, a default drawing sheet is loaded, the first time it is drawn.

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

Definition at line 83 of file ds_data_model.h.

83{ m_allowVoidList = Allow; }

References m_allowVoidList.

Referenced by PL_EDITOR_FRAME::Files_io(), DRAWING_SHEET_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::AddDrawingSheetItem(), LoadDrawingSheet(), DRAWING_SHEET_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}
Drawing sheet structure type definitions.
Definition: ds_data_item.h:96

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 875 of file drawing_sheet_parser.cpp.

876{
877 return wxString( defaultDrawingSheet );
878}
const char defaultDrawingSheet[]

References defaultDrawingSheet.

◆ EmptyLayout()

wxString DS_DATA_MODEL::EmptyLayout ( )
static

Return a string containing the empty layout shape.

Definition at line 890 of file drawing_sheet_parser.cpp.

891{
892 return wxString( emptyDrawingSheet );
893}
const char emptyDrawingSheet[]

References emptyDrawingSheet.

◆ GetBottomMargin()

double DS_DATA_MODEL::GetBottomMargin ( )
inline

◆ GetCount()

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

Definition at line 135 of file ds_data_model.h.

135{ return m_list.size(); }

References m_list.

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

◆ GetFileFormatVersionAtLoad()

int DS_DATA_MODEL::GetFileFormatVersionAtLoad ( )
inline

Definition at line 60 of file ds_data_model.h.

References m_fileFormatVersionAtLoad.

◆ GetItem()

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

Definition at line 157 of file ds_data_model.cpp.

158{
159 if( aIdx < m_list.size() )
160 return m_list[aIdx];
161 else
162 return nullptr;
163}

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
144 while( idx < m_list.size() )
145 {
146 if( m_list[idx] == aItem )
147 return (int) idx;
148
149 idx++;
150 }
151
152 return -1;
153}

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 * wksAltInstance
static DS_DATA_MODEL wksTheInstance

References wksAltInstance, and wksTheInstance.

Referenced by PL_EDITOR_FRAME::AddDrawingSheetItem(), 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::DisplayDrawingSheet(), 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(), EESCHEMA_JOBS_HANDLER::InitRenderSettings(), PL_EDITOR_FRAME::InsertDrawingSheetFile(), DS_DATA_ITEM::IsInsidePage(), DS_DATA_ITEM_POLYGONS::IsInsidePage(), PL_EDITOR_FRAME::LoadDrawingSheetFile(), 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(), PL_EDITOR_FRAME::PrintPage(), PLEDITOR_PRINTOUT::PrintPage(), PL_SELECTION_TOOL::RebuildSelection(), DIALOG_INSPECTOR::ReCreateDesignList(), DS_PROXY_UNDO_ITEM::Restore(), PL_EDITOR_FRAME::SaveDrawingSheetFile(), DIALOG_PAGES_SETTINGS::SavePageSettings(), SCH_EDIT_FRAME::saveProjectSettings(), 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()

bool 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 drawing sheet file. If empty, load the file defined by KICAD_WKSFILE and if its not defined, the default internal drawing sheet.
Appendif true: do not delete old layout, and load only aFullFileName.

Definition at line 918 of file drawing_sheet_parser.cpp.

919{
920 wxString fullFileName = aFullFileName;
921
922 if( !Append )
923 {
924 if( fullFileName.IsEmpty() )
925 {
927 return true; // we assume its fine / default init
928 }
929
930 if( !wxFileExists( fullFileName ) )
931 {
932 wxLogMessage( _( "Drawing sheet '%s' not found." ), fullFileName );
934 return false;
935 }
936 }
937
938 wxFFile wksFile( fullFileName, wxS( "rb" ) );
939
940 if( ! wksFile.IsOpened() )
941 {
942 wxLogMessage( _( "Drawing sheet '%s' could not be opened." ), fullFileName );
943
944 if( !Append )
946
947 return false;
948 }
949
950 size_t filelen = wksFile.Length();
951 std::unique_ptr<char[]> buffer = std::make_unique<char[]>(filelen+10);
952
953 if( wksFile.Read( buffer.get(), filelen ) != filelen )
954 {
955 wxLogMessage( _( "Drawing sheet '%s' was not fully read." ), fullFileName.GetData() );
956 return false;
957 }
958 else
959 {
960 buffer[filelen]=0;
961
962 if( ! Append )
963 ClearList();
964
965 DRAWING_SHEET_PARSER parser( buffer.get(), fullFileName );
966
967 try
968 {
969 parser.Parse( this );
970 }
971 catch( const IO_ERROR& ioe )
972 {
973 wxLogMessage( ioe.What() );
974 return false;
975 }
976 catch( const std::bad_alloc& )
977 {
978 wxLogMessage( wxS( "Memory exhaustion reading drawing sheet" ) );
979 return false;
980 }
981 }
982
983 return true;
984}
DRAWING_SHEET_PARSER holds data and functions pertinent to parsing a S-expression file for a DS_DATA_...
void Append(DS_DATA_ITEM *aItem)
Hold an error message and may be used when throwing exceptions containing meaningful error messages.
Definition: ki_exception.h:76
virtual const wxString What() const
A composite of Problem() and Where()
Definition: exceptions.cpp:30
#define _(s)

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

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList(), PL_EDITOR_FRAME::InsertDrawingSheetFile(), PL_EDITOR_FRAME::LoadDrawingSheetFile(), PL_EDITOR_FRAME::PL_EDITOR_FRAME(), and DIALOG_PAGES_SETTINGS::SavePageSettings().

◆ 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}

References m_list.

Referenced by PL_EDIT_TOOL::DoDelete().

◆ ResolvePath()

const wxString DS_DATA_MODEL::ResolvePath ( const wxString &  aPath,
const wxString &  aProjectPath 
)
static

Resolve a path which might be project-relative or contain env variable references.

Definition at line 166 of file ds_data_model.cpp.

167{
168 wxString fullFileName = ExpandEnvVarSubstitutions( aPath, nullptr );
169
170 if( fullFileName.IsEmpty() )
171 return fullFileName;
172
173 wxFileName fn = fullFileName;
174
175 if( fn.IsAbsolute() )
176 return fullFileName;
177
178 // the path is not absolute: search it in project path, and then in kicad valid paths
179 if( !aProjectPath.IsEmpty() )
180 {
181 fn.MakeAbsolute( aProjectPath );
182
183 if( wxFileExists( fn.GetFullPath() ) )
184 return fn.GetFullPath();
185 }
186
187 fn = fullFileName;
188 wxString name = Kiface().KifaceSearch().FindValidPath( fn.GetFullName() );
189
190 if( !name.IsEmpty() )
191 fullFileName = name;
192
193 return fullFileName;
194}
const char * name
Definition: DXF_plotter.cpp:56
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
SEARCH_STACK & KifaceSearch()
Only for DSO specific 'non-library' files.
Definition: kiface_base.h:116
const wxString ExpandEnvVarSubstitutions(const wxString &aString, const PROJECT *aProject)
Replace any environment variable & text variable references with their values.
Definition: common.cpp:299

References ExpandEnvVarSubstitutions(), Kiface(), KIFACE_BASE::KifaceSearch(), and name.

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

◆ 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 137 of file ds_data_model_io.cpp.

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

References DS_DATA_MODEL_IO::Format().

Referenced by PL_EDITOR_FRAME::SaveDrawingSheetFile(), and SCH_EDIT_FRAME::saveProjectSettings().

◆ SaveInString() [1/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 151 of file ds_data_model_io.cpp.

152{
153 DS_DATA_MODEL_STRINGIO writer( aOutputString );
154 writer.Format( this, aItemsList );
155}

References DS_DATA_MODEL_IO::Format().

◆ SaveInString() [2/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 144 of file ds_data_model_io.cpp.

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

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().

◆ SetAltInstance()

void DS_DATA_MODEL::SetAltInstance ( DS_DATA_MODEL aLayout = nullptr)
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 drawing sheet; if null restore the default drawing sheet
aLayout= the alternate drawing sheet. if null, restore the basic drawing sheet

Definition at line 92 of file ds_data_model.cpp.

93{
94 wksAltInstance = aLayout;
95}

References wksAltInstance.

Referenced by DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample().

◆ SetBottomMargin()

void DS_DATA_MODEL::SetBottomMargin ( double  aMargin)
inline

Definition at line 73 of file ds_data_model.h.

73{ m_bottomMargin = aMargin; }

References m_bottomMargin.

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

◆ SetDefaultLayout()

void DS_DATA_MODEL::SetDefaultLayout ( )

Definition at line 869 of file drawing_sheet_parser.cpp.

870{
871 SetPageLayout( defaultDrawingSheet, false, wxT( "default page" ) );
872}
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 884 of file drawing_sheet_parser.cpp.

885{
886 SetPageLayout( emptyDrawingSheet, false, wxT( "empty page" ) );
887}

References emptyDrawingSheet, and SetPageLayout().

Referenced by SCH_EDIT_FRAME::importFile().

◆ SetFileFormatVersionAtLoad()

void DS_DATA_MODEL::SetFileFormatVersionAtLoad ( int  aVersion)
inline

Definition at line 61 of file ds_data_model.h.

61{ m_fileFormatVersionAtLoad = aVersion; }

References m_fileFormatVersionAtLoad.

Referenced by DRAWING_SHEET_PARSER::Parse().

◆ SetLeftMargin()

void DS_DATA_MODEL::SetLeftMargin ( double  aMargin)
inline

Definition at line 64 of file ds_data_model.h.

64{ m_leftMargin = aMargin; }

References m_leftMargin.

Referenced by PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), and DRAWING_SHEET_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 896 of file drawing_sheet_parser.cpp.

897{
898 if( ! Append )
899 ClearList();
900
901 DRAWING_SHEET_PARSER parser( aPageLayout, wxT( "Sexpr_string" ) );
902
903 try
904 {
905 parser.Parse( this );
906 }
907 catch( const IO_ERROR& ioe )
908 {
909 wxLogMessage( ioe.What() );
910 }
911 catch( const std::bad_alloc& )
912 {
913 wxLogMessage( wxS( "Memory exhaustion reading drawing sheet" ) );
914 }
915}

References Append(), ClearList(), DRAWING_SHEET_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 67 of file ds_data_model.h.

67{ m_rightMargin = aMargin; }

References m_rightMargin.

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

◆ SetTopMargin()

void DS_DATA_MODEL::SetTopMargin ( double  aMargin)
inline

Definition at line 70 of file ds_data_model.h.

70{ m_topMargin = aMargin; }

References m_topMargin.

Referenced by PROPERTIES_FRAME::CopyPrmsFromPanelToGeneral(), and DRAWING_SHEET_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 VECTOR2D 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 VECTOR2D 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:66
double GetTopMargin()
Definition: ds_data_model.h:69
double GetBottomMargin()
Definition: ds_data_model.h:72
double GetLeftMargin()
Definition: ds_data_model.h:63
VECTOR2D m_RB_Corner
VECTOR2D m_LT_Corner
const VECTOR2I & GetSizeMils() const
Definition: page_info.h:135
#define MILS_TO_MM

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 88 of file ds_data_model.h.

88{ 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 192 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 199 of file ds_data_model.h.

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

◆ m_DefaultLineWidth

◆ m_DefaultTextSize

◆ m_DefaultTextThickness

◆ m_EditMode

◆ m_fileFormatVersionAtLoad

int DS_DATA_MODEL::m_fileFormatVersionAtLoad
private

◆ m_leftMargin

double DS_DATA_MODEL::m_leftMargin
private

Definition at line 196 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 191 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 197 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 198 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: