Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
100ea3a5
Commit
100ea3a5
authored
Apr 05, 2012
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Finish Pcb Calculator work
parent
3d643786
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
303 additions
and
102 deletions
+303
-102
pcb_calculator_frame_base.cpp
pcb_calculator/dialogs/pcb_calculator_frame_base.cpp
+13
-4
pcb_calculator_frame_base.fbp
pcb_calculator/dialogs/pcb_calculator_frame_base.fbp
+185
-84
pcb_calculator_frame_base.h
pcb_calculator/dialogs/pcb_calculator_frame_base.h
+3
-3
pcb_calculator.h
pcb_calculator/pcb_calculator.h
+15
-9
pcb_calculator_frame.cpp
pcb_calculator/pcb_calculator_frame.cpp
+33
-1
regulators_funct.cpp
pcb_calculator/regulators_funct.cpp
+54
-1
No files found.
pcb_calculator/dialogs/pcb_calculator_frame_base.cpp
View file @
100ea3a5
...
...
@@ -192,8 +192,17 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
sbSizerRegulatorsChooser
->
Add
(
m_staticTextRegFile
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_regulators_filePicker
=
new
wxFilePickerCtrl
(
m_panelRegulators
,
wxID_ANY
,
wxEmptyString
,
_
(
"Select a Pcb Calculator data file"
),
wxT
(
"*.pcbcalc"
),
wxDefaultPosition
,
wxDefaultSize
,
wxFLP_SAVE
|
wxFLP_USE_TEXTCTRL
);
sbSizerRegulatorsChooser
->
Add
(
m_regulators_filePicker
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
wxBoxSizer
*
bSizerDataFile
;
bSizerDataFile
=
new
wxBoxSizer
(
wxHORIZONTAL
);
m_regulators_fileNameCtrl
=
new
wxTextCtrl
(
m_panelRegulators
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerDataFile
->
Add
(
m_regulators_fileNameCtrl
,
1
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_buttonDataFile
=
new
wxButton
(
m_panelRegulators
,
wxID_ANY
,
_
(
"Browse"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizerDataFile
->
Add
(
m_buttonDataFile
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
sbSizerRegulatorsChooser
->
Add
(
bSizerDataFile
,
1
,
wxEXPAND
,
5
);
wxBoxSizer
*
bSizerReulBtn
;
bSizerReulBtn
=
new
wxBoxSizer
(
wxHORIZONTAL
);
...
...
@@ -1253,7 +1262,7 @@ PCB_CALCULATOR_FRAME_BASE::PCB_CALCULATOR_FRAME_BASE( wxWindow* parent, wxWindow
m_choiceRegType
->
Connect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulTypeSelection
),
NULL
,
this
);
m_buttonCalculate
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulatorCalcButtonClick
),
NULL
,
this
);
m_choiceRegulatorSelector
->
Connect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulatorSelection
),
NULL
,
this
);
m_
regulators_filePicker
->
Connect
(
wxEVT_COMMAND_FILEPICKER_CHANGED
,
wxFileDirPicker
EventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnDataFileSelection
),
NULL
,
this
);
m_
buttonDataFile
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommand
EventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnDataFileSelection
),
NULL
,
this
);
m_buttonEditItem
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnEditRegulator
),
NULL
,
this
);
m_buttonAddItem
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnAddRegulator
),
NULL
,
this
);
m_buttonRemoveItem
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRemoveRegulator
),
NULL
,
this
);
...
...
@@ -1282,7 +1291,7 @@ PCB_CALCULATOR_FRAME_BASE::~PCB_CALCULATOR_FRAME_BASE()
m_choiceRegType
->
Disconnect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulTypeSelection
),
NULL
,
this
);
m_buttonCalculate
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulatorCalcButtonClick
),
NULL
,
this
);
m_choiceRegulatorSelector
->
Disconnect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRegulatorSelection
),
NULL
,
this
);
m_
regulators_filePicker
->
Disconnect
(
wxEVT_COMMAND_FILEPICKER_CHANGED
,
wxFileDirPicker
EventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnDataFileSelection
),
NULL
,
this
);
m_
buttonDataFile
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommand
EventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnDataFileSelection
),
NULL
,
this
);
m_buttonEditItem
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnEditRegulator
),
NULL
,
this
);
m_buttonAddItem
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnAddRegulator
),
NULL
,
this
);
m_buttonRemoveItem
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
PCB_CALCULATOR_FRAME_BASE
::
OnRemoveRegulator
),
NULL
,
this
);
...
...
pcb_calculator/dialogs/pcb_calculator_frame_base.fbp
View file @
100ea3a5
...
...
@@ -2881,9 +2881,18 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxFilePickerCtrl" expanded="1">
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerDataFile</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="wxTextCtrl" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
...
...
@@ -2914,12 +2923,12 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="message">Select a Pcb Calculator data file
</property>
<property name="maxlength">0
</property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_regulators_filePicker
</property>
<property name="name">m_regulators_fileNameCtrl
</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
...
...
@@ -2929,7 +2938,7 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxFLP_SAVE|wxFLP_USE_TEXTCTRL
</property>
<property name="style">
</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
...
...
@@ -2938,14 +2947,104 @@
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="wildcard">*.pcbcalc</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnFileChanged">OnDataFileSelection</event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxButton" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default">0</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Browse</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_buttonDataFile</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnButtonClick">OnDataFileSelection</event>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
...
...
@@ -2968,6 +3067,8 @@
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
pcb_calculator/dialogs/pcb_calculator_frame_base.h
View file @
100ea3a5
...
...
@@ -30,7 +30,6 @@
#include <wx/textctrl.h>
#include <wx/choice.h>
#include <wx/button.h>
#include <wx/filepicker.h>
#include <wx/panel.h>
#include <wx/html/htmlwin.h>
#include <wx/statline.h>
...
...
@@ -80,7 +79,8 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame
wxButton
*
m_buttonCalculate
;
wxChoice
*
m_choiceRegulatorSelector
;
wxStaticText
*
m_staticTextRegFile
;
wxFilePickerCtrl
*
m_regulators_filePicker
;
wxTextCtrl
*
m_regulators_fileNameCtrl
;
wxButton
*
m_buttonDataFile
;
wxButton
*
m_buttonEditItem
;
wxButton
*
m_buttonAddItem
;
wxButton
*
m_buttonRemoveItem
;
...
...
@@ -263,7 +263,7 @@ class PCB_CALCULATOR_FRAME_BASE : public wxFrame
virtual
void
OnRegulTypeSelection
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnRegulatorCalcButtonClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnRegulatorSelection
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnDataFileSelection
(
wx
FileDirPicker
Event
&
event
)
{
event
.
Skip
();
}
virtual
void
OnDataFileSelection
(
wx
Command
Event
&
event
)
{
event
.
Skip
();
}
virtual
void
OnEditRegulator
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnAddRegulator
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnRemoveRegulator
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
...
...
pcb_calculator/pcb_calculator.h
View file @
100ea3a5
...
...
@@ -61,15 +61,18 @@ private:
// R/W data files:
bool
ReadDataFile
();
bool
WriteDataFile
();
const
wxString
GetDataFilename
()
{
return
m_regulators_filePicker
->
GetPath
();
}
void
SetDataFilename
(
const
wxString
&
aFilename
)
{
m_regulators_filePicker
->
SetPath
(
aFilename
);
}
/**
* @return the full filename of the selected pcb_calculator data file
*/
const
wxString
GetDataFilename
();
/**
* Initialize the full filename of the selected pcb_calculator data file
* force the standard extension of the file (.pcbcalc)
* @param aFilename = the full filename, with or without extension
*/
void
SetDataFilename
(
const
wxString
&
aFilename
);
// tracks width versus current functions:
/**
...
...
@@ -177,7 +180,7 @@ private:
void
OnRegulatorCalcButtonClick
(
wxCommandEvent
&
event
);
void
OnRegulTypeSelection
(
wxCommandEvent
&
event
);
void
OnRegulatorSelection
(
wxCommandEvent
&
event
);
void
OnDataFileSelection
(
wx
FileDirPicker
Event
&
event
);
void
OnDataFileSelection
(
wx
Command
Event
&
event
);
void
OnAddRegulator
(
wxCommandEvent
&
event
);
void
OnEditRegulator
(
wxCommandEvent
&
event
);
void
OnRemoveRegulator
(
wxCommandEvent
&
event
);
...
...
@@ -241,4 +244,7 @@ public:
};
extern
const
wxString
DataFileNameExt
;
#endif // PCB_CALCULATOR_H
pcb_calculator/pcb_calculator_frame.cpp
View file @
100ea3a5
...
...
@@ -49,6 +49,9 @@
#define KEYWORD_REGUL_LAST_PARAM wxT( "RegulLastParam" )
#define KEYWORD_DATAFILE_FILENAME wxT( "DataFilename" )
// extention of pcb_calculator data filename:
const
wxString
DataFileNameExt
(
wxT
(
"pcbcalc"
)
);
PCB_CALCULATOR_FRAME
::
PCB_CALCULATOR_FRAME
(
wxWindow
*
parent
)
:
PCB_CALCULATOR_FRAME_BASE
(
parent
)
{
...
...
@@ -93,7 +96,6 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( wxWindow* parent ) :
ElectricalSpacingUpdateData
(
m_ElectricalSpacingUnitsSelector
->
GetUnitScale
()
);
m_choiceRegulatorSelector
->
Append
(
m_RegulatorList
.
GetRegList
()
);
SelectLastSelectedRegulator
();
...
...
@@ -327,6 +329,36 @@ void PCB_CALCULATOR_FRAME::OnPaintTranslinePanel( wxPaintEvent& event )
event
.
Skip
();
}
/* returns the full filename of the selected pcb_calculator data file
* the extention file is forced
*/
const
wxString
PCB_CALCULATOR_FRAME
::
GetDataFilename
()
{
if
(
m_regulators_fileNameCtrl
->
GetValue
().
IsEmpty
()
)
return
wxEmptyString
;
wxFileName
fn
(
m_regulators_fileNameCtrl
->
GetValue
()
);
fn
.
SetExt
(
DataFileNameExt
);
return
fn
.
GetFullPath
();
}
/* Initialize the full filename of the selected pcb_calculator data file
* force the standard extension of the file (.pcbcalc)
* aFilename = the full filename, with or without extension
*/
void
PCB_CALCULATOR_FRAME
::
SetDataFilename
(
const
wxString
&
aFilename
)
{
if
(
aFilename
.
IsEmpty
()
)
m_regulators_fileNameCtrl
->
SetValue
(
wxEmptyString
);
else
{
wxFileName
fn
(
aFilename
);
fn
.
SetExt
(
DataFileNameExt
);
m_regulators_fileNameCtrl
->
SetValue
(
fn
.
GetFullPath
()
);
}
}
/**
* @copydoc
...
...
pcb_calculator/regulators_funct.cpp
View file @
100ea3a5
...
...
@@ -27,6 +27,7 @@
#include <wx/wx.h>
#include <wx/config.h>
#include <macros.h>
#include <pcb_calculator.h>
#include <class_regulator_data.h>
#include <dialog_regulator_data_base.h>
...
...
@@ -110,6 +111,12 @@ bool DIALOG_EDITOR_DATA::IsOK()
ok
=
false
;
if
(
m_textCtrlVref
->
GetValue
().
IsEmpty
()
)
ok
=
false
;
else
{
double
vref
=
ReturnDoubleFromString
(
m_textCtrlVref
->
GetValue
()
);
if
(
fabs
(
vref
)
<
0.01
)
ok
=
false
;
}
if
(
m_choiceRegType
->
GetSelection
()
==
1
)
{
if
(
m_RegulIadjValue
->
GetValue
().
IsEmpty
()
)
...
...
@@ -207,8 +214,54 @@ void PCB_CALCULATOR_FRAME::OnRegulatorSelection( wxCommandEvent& event )
RegulatorPageUpdate
();
}
void
PCB_CALCULATOR_FRAME
::
OnDataFileSelection
(
wxFileDirPickerEvent
&
event
)
/*
* Called when ckicking on button Browse:
* Select a new data file, and load it on request
*/
void
PCB_CALCULATOR_FRAME
::
OnDataFileSelection
(
wxCommandEvent
&
event
)
{
wxString
fullfilename
=
GetDataFilename
();
wxString
wildcard
;
wildcard
.
Printf
(
_
(
"Pcb Calculator data file (*.%s)|*.%s"
),
GetChars
(
DataFileNameExt
),
GetChars
(
DataFileNameExt
)
);
wxFileDialog
dlg
(
m_panelRegulators
,
_
(
"Select a Pcb Calculator data file"
),
wxEmptyString
,
fullfilename
,
wildcard
,
wxFD_OPEN
);
if
(
dlg
.
ShowModal
()
==
wxID_CANCEL
)
return
;
fullfilename
=
dlg
.
GetPath
();
if
(
fullfilename
==
GetDataFilename
()
)
return
;
SetDataFilename
(
fullfilename
);
if
(
wxFileExists
(
fullfilename
)
&&
m_RegulatorList
.
GetCount
()
>
0
)
// Read file
{
if
(
wxMessageBox
(
_
(
"Do you want to load this file and replace current regulator list?"
)
)
!=
wxID_OK
)
return
;
}
if
(
ReadDataFile
()
)
{
m_RegulatorListChanged
=
false
;
m_choiceRegulatorSelector
->
Clear
();
m_choiceRegulatorSelector
->
Append
(
m_RegulatorList
.
GetRegList
()
);
SelectLastSelectedRegulator
();
}
else
{
wxString
msg
;
msg
.
Printf
(
_
(
"Unable to read data file <%s>"
),
GetChars
(
fullfilename
)
);
wxMessageBox
(
msg
);
}
}
void
PCB_CALCULATOR_FRAME
::
OnAddRegulator
(
wxCommandEvent
&
event
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment