KiCad PCB EDA Suite
Loading...
Searching...
No Matches
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.
 
bool VoidListAllowed ()
 
void ClearList ()
 Erase the list of items.
 
void Save (const wxString &aFullFileName)
 Save the description in a file.
 
void SaveInString (wxString *aOutputString)
 Save the description in a buffer.
 
void SaveInString (std::vector< DS_DATA_ITEM * > &aItemsList, wxString *aOutputString)
 Fill the given string with an S-expr serialization of the WS_DATA_ITEMs.
 
void Append (DS_DATA_ITEM *aItem)
 
void Remove (DS_DATA_ITEM *aItem)
 
DS_DATA_ITEMGetItem (unsigned aIdx) const
 
std::vector< DS_DATA_ITEM * > & GetItems ()
 
unsigned GetCount () const
 
void SetDefaultLayout ()
 
void SetEmptyLayout ()
 
bool LoadDrawingSheet (const wxString &aFullFileName, wxString *aMsg, bool aAppend=false)
 Populates the list with a custom layout or the default layout if no custom layout is available.
 
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.
 

Static Public Member Functions

static DS_DATA_MODELGetTheInstance ()
 static function: returns the instance of DS_DATA_MODEL used in the application
 
static void SetAltInstance (DS_DATA_MODEL *aLayout=nullptr)
 Set an alternate instance of DS_DATA_MODEL.
 
static wxString EmptyLayout ()
 Return a string containing the empty layout shape.
 
static wxString DefaultLayout ()
 Return a string containing the empty layout shape.
 
static const wxString ResolvePath (const wxString &aPath, const wxString &aProjectPath)
 Resolve a path which might be project-relative or contain env variable references.
 

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

◆ ~DS_DATA_MODEL()

DS_DATA_MODEL::~DS_DATA_MODEL ( )
inline

Definition at line 43 of file ds_data_model.h.

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.

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)

◆ ClearList()

void DS_DATA_MODEL::ClearList ( )

◆ DefaultLayout()

wxString DS_DATA_MODEL::DefaultLayout ( )
static

Return a string containing the empty layout shape.

Definition at line 923 of file drawing_sheet_parser.cpp.

References defaultDrawingSheet.

◆ EmptyLayout()

wxString DS_DATA_MODEL::EmptyLayout ( )
static

Return a string containing the empty layout shape.

Definition at line 938 of file drawing_sheet_parser.cpp.

References emptyDrawingSheet.

◆ GetBottomMargin()

double DS_DATA_MODEL::GetBottomMargin ( )
inline

◆ GetCount()

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

Definition at line 130 of file ds_data_model.h.

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 140 of file ds_data_model.cpp.

References m_list.

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

◆ GetItems()

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

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(), 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::GetCornerPositionIU(), DS_DATA_ITEM::GetEndPos(), DS_DATA_ITEM::GetEndPosIU(), DS_DATA_ITEM::GetPenSizeIU(), DS_DATA_ITEM_POLYGONS::GetPenSizeIU(), DS_DATA_ITEM_TEXT::GetPenSizeIU(), DS_DATA_ITEM::GetStartPos(), DS_DATA_ITEM::GetStartPosIU(), SCH_EDIT_FRAME::importFile(), EESCHEMA_JOBS_HANDLER::InitRenderSettings(), PL_EDITOR_FRAME::InsertDrawingSheetFile(), PL_EDIT_TOOL::InteractiveDelete(), DS_DATA_ITEM::IsInsidePage(), DS_DATA_ITEM_POLYGONS::IsInsidePage(), LoadBoard(), SCH_EDIT_FRAME::LoadDrawingSheet(), PCB_EDIT_FRAME::LoadDrawingSheet(), PL_EDITOR_FRAME::LoadDrawingSheetFile(), PCBNEW_JOBS_HANDLER::loadOverrideDrawingSheet(), DS_DATA_ITEM::MoveEndPointTo(), DS_DATA_ITEM::MoveEndPointToIU(), DS_DATA_ITEM::MoveStartPointTo(), DS_DATA_ITEM::MoveStartPointToIU(), DS_DATA_ITEM::MoveToIU(), 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,
wxString *  aMsg,
bool  aAppend = 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.
aMsg[optional] if non-null, will be filled with any error messages.
aAppendif true: do not delete old layout, and load only aFullFileName.

Definition at line 962 of file drawing_sheet_parser.cpp.

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

Referenced by DS_DRAW_ITEM_LIST::BuildDrawItemsList(), EESCHEMA_JOBS_HANDLER::InitRenderSettings(), PL_EDITOR_FRAME::InsertDrawingSheetFile(), PCBNEW_JOBS_HANDLER::loadOverrideDrawingSheet(), and PL_EDITOR_FRAME::PL_EDITOR_FRAME().

◆ Remove()

void DS_DATA_MODEL::Remove ( DS_DATA_ITEM aItem)

Definition at line 133 of file ds_data_model.cpp.

References m_list.

Referenced by PL_EDIT_TOOL::DoDelete().

◆ ResolvePath()

static 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.

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

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

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

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.

References wksAltInstance.

Referenced by DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample().

◆ SetBottomMargin()

void DS_DATA_MODEL::SetBottomMargin ( double  aMargin)
inline

◆ SetDefaultLayout()

void DS_DATA_MODEL::SetDefaultLayout ( )

Definition at line 917 of file drawing_sheet_parser.cpp.

References defaultDrawingSheet, and SetPageLayout().

Referenced by LoadDrawingSheet().

◆ SetEmptyLayout()

void DS_DATA_MODEL::SetEmptyLayout ( )

Definition at line 932 of file drawing_sheet_parser.cpp.

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.

References m_fileFormatVersionAtLoad.

Referenced by DRAWING_SHEET_PARSER::Parse().

◆ SetLeftMargin()

void DS_DATA_MODEL::SetLeftMargin ( double  aMargin)
inline

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

References Append(), ClearList(), and DRAWING_SHEET_PARSER::Parse().

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

◆ SetTopMargin()

void DS_DATA_MODEL::SetTopMargin ( double  aMargin)
inline

◆ SetupDrawEnvironment()

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

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

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 188 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 195 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 192 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 187 of file ds_data_model.h.

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

◆ m_LT_Corner

◆ m_RB_Corner

◆ m_rightMargin

double DS_DATA_MODEL::m_rightMargin
private

Definition at line 193 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 194 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: