2024-12-20 06:44:50 +00:00
# include "CalibrationWizardPage.hpp"
# include "I18N.hpp"
# include "Widgets/Label.hpp"
# include "MsgDialog.hpp"
namespace Slic3r { namespace GUI {
wxDEFINE_EVENT ( EVT_CALI_ACTION , wxCommandEvent ) ;
wxDEFINE_EVENT ( EVT_CALI_TRAY_CHANGED , wxCommandEvent ) ;
CalibrationStyle get_cali_style ( MachineObject * obj )
{
if ( ! obj ) return CalibrationStyle : : CALI_STYLE_DEFAULT ;
if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_X1 )
return CalibrationStyle : : CALI_STYLE_X1 ;
else if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_P1P )
return CalibrationStyle : : CALI_STYLE_P1P ;
return CalibrationStyle : : CALI_STYLE_DEFAULT ;
}
wxString get_cali_mode_caption_string ( CalibMode mode )
{
if ( mode = = CalibMode : : Calib_PA_Line )
return _L ( " Flow Dynamics Calibration " ) ;
if ( mode = = CalibMode : : Calib_Flow_Rate )
return _L ( " Flow Rate Calibration " ) ;
if ( mode = = CalibMode : : Calib_Vol_speed_Tower )
return _L ( " Max Volumetric Speed Calibration " ) ;
return " no cali_mode_caption " ;
}
wxString get_calibration_wiki_page ( CalibMode cali_mode )
{
switch ( cali_mode ) {
case CalibMode : : Calib_PA_Line :
return wxString ( " https://wiki.bambulab.com/en/software/bambu-studio/calibration_pa " ) ;
case CalibMode : : Calib_Flow_Rate :
return wxString ( " https://wiki.bambulab.com/en/software/bambu-studio/calibration_flow_rate " ) ;
case CalibMode : : Calib_Vol_speed_Tower :
return wxString ( " https://wiki.bambulab.com/en/software/bambu-studio/calibration_volumetric " ) ;
case CalibMode : : Calib_Temp_Tower :
return wxString ( " https://wiki.bambulab.com/en/software/bambu-studio/calibration_temperature " ) ;
case CalibMode : : Calib_Retraction_tower :
return wxString ( " https://wiki.bambulab.com/en/software/bambu-studio/calibration_retraction " ) ;
default :
return " " ;
}
}
CalibrationFilamentMode get_cali_filament_mode ( MachineObject * obj , CalibMode mode )
{
// default
if ( ! obj ) return CalibrationFilamentMode : : CALI_MODEL_SINGLE ;
if ( mode = = CalibMode : : Calib_PA_Line ) {
if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_X1 )
return CalibrationFilamentMode : : CALI_MODEL_MULITI ;
else if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_P1P )
return CalibrationFilamentMode : : CALI_MODEL_SINGLE ;
}
else if ( mode = = CalibMode : : Calib_Flow_Rate ) {
if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_X1 )
return CalibrationFilamentMode : : CALI_MODEL_SINGLE ;
else if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_P1P )
return CalibrationFilamentMode : : CALI_MODEL_SINGLE ;
}
return CalibrationFilamentMode : : CALI_MODEL_SINGLE ;
}
CalibMode get_obj_calibration_mode ( const MachineObject * obj )
{
CalibrationMethod method ;
int cali_stage ;
return get_obj_calibration_mode ( obj , method , cali_stage ) ;
}
CalibMode get_obj_calibration_mode ( const MachineObject * obj , int & cali_stage )
{
CalibrationMethod method ;
return get_obj_calibration_mode ( obj , method , cali_stage ) ;
}
CalibMode get_obj_calibration_mode ( const MachineObject * obj , CalibrationMethod & method , int & cali_stage )
{
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
if ( ! obj ) return CalibMode : : Calib_None ;
if ( boost : : contains ( obj - > m_gcode_file , " auto_filament_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_AUTO ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > m_gcode_file , " user_cali_manual_pa " ) ) {
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > m_gcode_file , " extrusion_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > m_gcode_file , " abs_flowcalib_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_AUTO ;
return CalibMode : : Calib_Flow_Rate ;
}
if ( obj - > get_printer_series ( ) = = PrinterSeries : : SERIES_P1P ) {
if ( boost : : contains ( obj - > subtask_name , " auto_filament_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_AUTO ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > subtask_name , " user_cali_manual_pa " ) ) {
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > subtask_name , " extrusion_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
return CalibMode : : Calib_PA_Line ;
}
if ( boost : : contains ( obj - > subtask_name , " abs_flowcalib_cali " ) ) {
method = CalibrationMethod : : CALI_METHOD_AUTO ;
return CalibMode : : Calib_Flow_Rate ;
}
}
CalibMode cali_mode = CalibUtils : : get_calib_mode_by_name ( obj - > subtask_name , cali_stage ) ;
if ( cali_mode ! = CalibMode : : Calib_None ) {
method = CalibrationMethod : : CALI_METHOD_MANUAL ;
}
return cali_mode ;
}
CaliPageButton : : CaliPageButton ( wxWindow * parent , CaliPageActionType type , wxString text )
: m_action_type ( type ) ,
Button ( parent , text )
{
StateColor btn_bg_green ( std : : pair < wxColour , int > ( wxColour ( 206 , 206 , 206 ) , StateColor : : Disabled ) ,
std : : pair < wxColour , int > ( wxColour ( 27 , 136 , 68 ) , StateColor : : Pressed ) ,
std : : pair < wxColour , int > ( wxColour ( 61 , 203 , 115 ) , StateColor : : Hovered ) ,
2025-03-21 07:12:45 +00:00
//std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal));
std : : pair < wxColour , int > ( wxColour ( 0x9A5F21 ) , StateColor : : Normal ) ) ;
2024-12-20 06:44:50 +00:00
StateColor btn_bg_white ( std : : pair < wxColour , int > ( wxColour ( 206 , 206 , 206 ) , StateColor : : Disabled ) ,
std : : pair < wxColour , int > ( wxColour ( 206 , 206 , 206 ) , StateColor : : Pressed ) ,
std : : pair < wxColour , int > ( wxColour ( 238 , 238 , 238 ) , StateColor : : Hovered ) ,
std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 255 ) , StateColor : : Normal ) ) ;
StateColor btn_bd_green ( std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 254 ) , StateColor : : Disabled ) ,
2025-03-21 07:12:45 +00:00
//std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Enabled));
std : : pair < wxColour , int > ( wxColour ( 0x9A5F21 ) , StateColor : : Enabled ) ) ;
2024-12-20 06:44:50 +00:00
StateColor btn_bd_white ( std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 254 ) , StateColor : : Disabled ) ,
std : : pair < wxColour , int > ( wxColour ( 38 , 46 , 48 ) , StateColor : : Enabled ) ) ;
StateColor btn_text_green ( std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 254 ) , StateColor : : Disabled ) ,
std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 254 ) , StateColor : : Enabled ) ) ;
StateColor btn_text_white ( std : : pair < wxColour , int > ( wxColour ( 255 , 255 , 254 ) , StateColor : : Disabled ) ,
std : : pair < wxColour , int > ( wxColour ( 38 , 46 , 48 ) , StateColor : : Enabled ) ) ;
switch ( m_action_type )
{
case CaliPageActionType : : CALI_ACTION_MANAGE_RESULT :
this - > SetLabel ( _L ( " Manage Result " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_MANUAL_CALI :
this - > SetLabel ( _L ( " Manual Calibration " ) ) ;
this - > SetToolTip ( _L ( " Result can be read by human eyes. " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_AUTO_CALI :
this - > SetLabel ( _L ( " Auto-Calibration " ) ) ;
this - > SetToolTip ( _L ( " We would use Lidar to read the calibration result " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_START :
this - > SetLabel ( _L ( " Start Calibration " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_PREV :
this - > SetLabel ( _L ( " Prev " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_RECALI :
this - > SetLabel ( _L ( " Recalibration " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_NEXT :
this - > SetLabel ( _L ( " Next " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_CALI_NEXT :
this - > SetLabel ( _L ( " Next " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_CALI :
this - > SetLabel ( _L ( " Calibrate " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_FLOW_CALI_STAGE_2 :
this - > SetLabel ( _L ( " Calibrate " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_PA_SAVE :
this - > SetLabel ( _L ( " Finish " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_FLOW_SAVE :
this - > SetLabel ( _L ( " Finish " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_FLOW_COARSE_SAVE :
this - > SetLabel ( _L ( " Finish " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_FLOW_FINE_SAVE :
this - > SetLabel ( _L ( " Finish " ) ) ;
break ;
case CaliPageActionType : : CALI_ACTION_COMMON_SAVE :
this - > SetLabel ( _L ( " Finish " ) ) ;
break ;
default :
this - > SetLabel ( " Unknown " ) ;
break ;
}
switch ( m_action_type )
{
case CaliPageActionType : : CALI_ACTION_PREV :
case CaliPageActionType : : CALI_ACTION_RECALI :
SetBackgroundColor ( btn_bg_white ) ;
SetBorderColor ( btn_bd_white ) ;
SetTextColor ( btn_text_white ) ;
break ;
case CaliPageActionType : : CALI_ACTION_START :
case CaliPageActionType : : CALI_ACTION_NEXT :
case CaliPageActionType : : CALI_ACTION_CALI :
case CaliPageActionType : : CALI_ACTION_CALI_NEXT :
case CaliPageActionType : : CALI_ACTION_FLOW_CALI_STAGE_2 :
case CaliPageActionType : : CALI_ACTION_PA_SAVE :
case CaliPageActionType : : CALI_ACTION_FLOW_SAVE :
case CaliPageActionType : : CALI_ACTION_FLOW_COARSE_SAVE :
case CaliPageActionType : : CALI_ACTION_FLOW_FINE_SAVE :
case CaliPageActionType : : CALI_ACTION_COMMON_SAVE :
SetBackgroundColor ( btn_bg_green ) ;
SetBorderColor ( btn_bd_green ) ;
SetTextColor ( btn_text_green ) ;
break ;
default :
break ;
}
SetBackgroundColour ( * wxWHITE ) ;
SetFont ( Label : : Body_13 ) ;
SetMinSize ( wxSize ( - 1 , FromDIP ( 24 ) ) ) ;
SetCornerRadius ( FromDIP ( 12 ) ) ;
}
void CaliPageButton : : msw_rescale ( )
{
SetMinSize ( wxSize ( - 1 , FromDIP ( 24 ) ) ) ;
SetCornerRadius ( FromDIP ( 12 ) ) ;
Rescale ( ) ;
}
FilamentComboBox : : FilamentComboBox ( wxWindow * parent , const wxPoint & pos , const wxSize & size )
: wxPanel ( parent , wxID_ANY , pos , size , wxTAB_TRAVERSAL )
{
SetBackgroundColour ( * wxWHITE ) ;
wxBoxSizer * main_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
m_comboBox = new CalibrateFilamentComboBox ( this ) ;
m_comboBox - > SetSize ( CALIBRATION_FILAMENT_COMBOX_SIZE ) ;
m_comboBox - > SetMinSize ( CALIBRATION_FILAMENT_COMBOX_SIZE ) ;
main_sizer - > Add ( m_comboBox - > clr_picker , 0 , wxALIGN_CENTER | wxRIGHT , FromDIP ( 8 ) ) ;
main_sizer - > Add ( m_comboBox , 0 , wxALIGN_CENTER ) ;
this - > SetSizer ( main_sizer ) ;
this - > Layout ( ) ;
main_sizer - > Fit ( this ) ;
}
void FilamentComboBox : : set_select_mode ( CalibrationFilamentMode mode )
{
m_mode = mode ;
if ( m_checkBox )
m_checkBox - > Show ( m_mode = = CalibrationFilamentMode : : CALI_MODEL_MULITI ) ;
if ( m_radioBox )
m_radioBox - > Show ( m_mode = = CalibrationFilamentMode : : CALI_MODEL_SINGLE ) ;
Layout ( ) ;
}
void FilamentComboBox : : load_tray_from_ams ( int id , DynamicPrintConfig & tray )
{
m_comboBox - > load_tray ( tray ) ;
m_tray_id = id ;
m_tray_name = m_comboBox - > get_tray_name ( ) ;
m_is_bbl_filamnet = MachineObject : : is_bbl_filament ( m_comboBox - > get_tag_uid ( ) ) ;
Enable ( m_comboBox - > is_tray_exist ( ) ) ;
if ( m_comboBox - > is_tray_exist ( ) ) {
if ( ! m_comboBox - > is_compatible_with_printer ( ) ) {
SetValue ( false ) ;
}
if ( m_radioBox )
m_radioBox - > Enable ( m_comboBox - > is_compatible_with_printer ( ) ) ;
if ( m_checkBox )
m_checkBox - > Enable ( m_comboBox - > is_compatible_with_printer ( ) ) ;
}
// check compatibility
wxCommandEvent event ( EVT_CALI_TRAY_CHANGED ) ;
event . SetEventObject ( GetParent ( ) ) ;
wxPostEvent ( GetParent ( ) , event ) ;
}
void FilamentComboBox : : update_from_preset ( ) { m_comboBox - > update ( ) ; }
bool FilamentComboBox : : Show ( bool show )
{
return wxPanel : : Show ( show ) ;
}
bool FilamentComboBox : : Enable ( bool enable ) {
if ( ! enable )
SetValue ( false ) ;
if ( m_radioBox )
m_radioBox - > Enable ( enable ) ;
if ( m_checkBox )
m_checkBox - > Enable ( enable ) ;
return wxPanel : : Enable ( enable ) ;
}
void FilamentComboBox : : SetValue ( bool value , bool send_event ) {
if ( m_radioBox ) {
if ( value = = m_radioBox - > GetValue ( ) ) {
if ( m_checkBox ) {
if ( value = = m_checkBox - > GetValue ( ) )
return ;
}
else {
return ;
}
}
}
if ( m_radioBox )
m_radioBox - > SetValue ( value ) ;
if ( m_checkBox )
m_checkBox - > SetValue ( value ) ;
}
void FilamentComboBox : : msw_rescale ( )
{
//m_checkBox->Rescale();
m_comboBox - > SetSize ( CALIBRATION_FILAMENT_COMBOX_SIZE ) ;
m_comboBox - > SetMinSize ( CALIBRATION_FILAMENT_COMBOX_SIZE ) ;
m_comboBox - > msw_rescale ( ) ;
}
CaliPageCaption : : CaliPageCaption ( wxWindow * parent , CalibMode cali_mode ,
wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
{
init_bitmaps ( ) ;
SetBackgroundColour ( * wxWHITE ) ;
auto top_sizer = new wxBoxSizer ( wxVERTICAL ) ;
auto caption_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
m_prev_btn = new ScalableButton ( this , wxID_ANY , " cali_page_caption_prev " ,
wxEmptyString , wxDefaultSize , wxDefaultPosition , wxBU_EXACTFIT | wxNO_BORDER , true , 30 ) ;
m_prev_btn - > SetBackgroundColour ( * wxWHITE ) ;
caption_sizer - > Add ( m_prev_btn , 0 , wxALIGN_CENTER | wxRIGHT , FromDIP ( 10 ) ) ;
wxString title = get_cali_mode_caption_string ( cali_mode ) ;
Label * title_text = new Label ( this , title ) ;
title_text - > SetFont ( Label : : Head_20 ) ;
title_text - > Wrap ( - 1 ) ;
caption_sizer - > Add ( title_text , 0 , wxALIGN_CENTER | wxRIGHT , FromDIP ( 10 ) ) ;
m_help_btn = new ScalableButton ( this , wxID_ANY , " cali_page_caption_help " ,
wxEmptyString , wxDefaultSize , wxDefaultPosition , wxBU_EXACTFIT | wxNO_BORDER , true , 30 ) ;
m_help_btn - > Hide ( ) ;
m_help_btn - > SetBackgroundColour ( * wxWHITE ) ;
caption_sizer - > Add ( m_help_btn , 0 , wxALIGN_CENTER ) ;
caption_sizer - > AddStretchSpacer ( ) ;
m_wiki_url = get_calibration_wiki_page ( cali_mode ) ;
create_wiki ( this ) ;
caption_sizer - > Add ( m_wiki_text , 0 ) ;
top_sizer - > Add ( caption_sizer , 1 , wxEXPAND ) ;
top_sizer - > AddSpacer ( FromDIP ( 35 ) ) ;
this - > SetSizer ( top_sizer ) ;
top_sizer - > Fit ( this ) ;
// hover effect
//m_prev_btn->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {
// m_prev_btn->SetBitmap(m_prev_bmp_hover.bmp());
//});
//m_prev_btn->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {
// m_prev_btn->SetBitmap(m_prev_bmp_normal.bmp());
//});
// hover effect
//m_help_btn->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {
// m_help_btn->SetBitmap(m_help_bmp_hover.bmp());
// });
//m_help_btn->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {
// m_help_btn->SetBitmap(m_help_bmp_normal.bmp());
// });
// send event
m_prev_btn - > Bind ( wxEVT_BUTTON , [ this ] ( auto & e ) {
wxCommandEvent event ( EVT_CALI_ACTION ) ;
event . SetEventObject ( m_parent ) ;
event . SetInt ( ( int ) ( CaliPageActionType : : CALI_ACTION_GO_HOME ) ) ;
wxPostEvent ( m_parent , event ) ;
} ) ;
# ifdef __linux__
wxGetApp ( ) . CallAfter ( [ this , title_text ] ( ) {
title_text - > SetMinSize ( title_text - > GetSize ( ) + wxSize { FromDIP ( 150 ) , title_text - > GetCharHeight ( ) / 2 } ) ;
Layout ( ) ;
Fit ( ) ;
} ) ;
# endif
}
void CaliPageCaption : : init_bitmaps ( ) {
m_prev_bmp_normal = ScalableBitmap ( this , " cali_page_caption_prev " , 30 ) ;
m_prev_bmp_hover = ScalableBitmap ( this , " cali_page_caption_prev_hover " , 30 ) ;
m_help_bmp_normal = ScalableBitmap ( this , " cali_page_caption_help " , 30 ) ;
m_help_bmp_hover = ScalableBitmap ( this , " cali_page_caption_help_hover " , 30 ) ;
}
void CaliPageCaption : : create_wiki ( wxWindow * parent )
{
m_wiki_text = new Label ( parent , _L ( " Wiki " ) ) ;
m_wiki_text - > SetFont ( Label : : Head_14 ) ;
m_wiki_text - > SetForegroundColour ( { 0 , 88 , 220 } ) ;
m_wiki_text - > Bind ( wxEVT_ENTER_WINDOW , [ this ] ( wxMouseEvent & e ) {
e . Skip ( ) ;
SetCursor ( wxCURSOR_HAND ) ;
} ) ;
m_wiki_text - > Bind ( wxEVT_LEAVE_WINDOW , [ this ] ( wxMouseEvent & e ) {
e . Skip ( ) ;
SetCursor ( wxCURSOR_ARROW ) ;
} ) ;
m_wiki_text - > Bind ( wxEVT_LEFT_UP , [ this ] ( wxMouseEvent & e ) {
if ( ! m_wiki_url . empty ( ) )
wxLaunchDefaultBrowser ( m_wiki_url ) ;
} ) ;
}
void CaliPageCaption : : show_prev_btn ( bool show )
{
m_prev_btn - > Show ( show ) ;
}
void CaliPageCaption : : show_help_icon ( bool show )
{
//m_help_btn->Show(show);
m_help_btn - > Hide ( ) ;
}
void CaliPageCaption : : on_sys_color_changed ( )
{
m_prev_btn - > msw_rescale ( ) ;
}
void CaliPageCaption : : msw_rescale ( )
{
m_prev_btn - > msw_rescale ( ) ;
}
CaliPageStepGuide : : CaliPageStepGuide ( wxWindow * parent , wxArrayString steps ,
wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style ) ,
m_steps ( steps )
{
SetBackgroundColour ( * wxWHITE ) ;
auto top_sizer = new wxBoxSizer ( wxVERTICAL ) ;
m_step_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
m_step_sizer - > AddSpacer ( FromDIP ( 90 ) ) ;
for ( int i = 0 ; i < m_steps . size ( ) ; i + + ) {
Label * step_text = new Label ( this , m_steps [ i ] ) ;
step_text - > SetForegroundColour ( wxColour ( 206 , 206 , 206 ) ) ;
m_text_steps . push_back ( step_text ) ;
m_step_sizer - > Add ( step_text , 0 , wxALIGN_CENTER | wxLEFT | wxRIGHT , FromDIP ( 15 ) ) ;
if ( i ! = m_steps . size ( ) - 1 ) {
auto line = new wxPanel ( this , wxID_ANY , wxDefaultPosition ) ;
line - > SetBackgroundColour ( * wxBLACK ) ;
m_step_sizer - > Add ( line , 1 , wxALIGN_CENTER ) ;
}
}
m_step_sizer - > AddSpacer ( FromDIP ( 90 ) ) ;
top_sizer - > Add ( m_step_sizer , 0 , wxEXPAND ) ;
top_sizer - > AddSpacer ( FromDIP ( 30 ) ) ;
this - > SetSizer ( top_sizer ) ;
top_sizer - > Fit ( this ) ;
wxGetApp ( ) . UpdateDarkUIWin ( this ) ;
}
void CaliPageStepGuide : : set_steps ( int index )
{
for ( Label * text_step : m_text_steps ) {
text_step - > SetForegroundColour ( wxColour ( 206 , 206 , 206 ) ) ;
}
m_text_steps [ index ] - > SetForegroundColour ( * wxBLACK ) ;
wxGetApp ( ) . UpdateDarkUIWin ( this ) ;
}
void CaliPageStepGuide : : set_steps_string ( wxArrayString steps )
{
m_steps . Clear ( ) ;
m_text_steps . clear ( ) ;
m_step_sizer - > Clear ( true ) ;
m_steps = steps ;
m_step_sizer - > AddSpacer ( FromDIP ( 90 ) ) ;
for ( int i = 0 ; i < m_steps . size ( ) ; i + + ) {
Label * step_text = new Label ( this , m_steps [ i ] ) ;
step_text - > SetForegroundColour ( wxColour ( 206 , 206 , 206 ) ) ;
m_text_steps . push_back ( step_text ) ;
m_step_sizer - > Add ( step_text , 0 , wxALIGN_CENTER | wxLEFT | wxRIGHT , FromDIP ( 15 ) ) ;
if ( i ! = m_steps . size ( ) - 1 ) {
auto line = new wxPanel ( this , wxID_ANY , wxDefaultPosition ) ;
line - > SetBackgroundColour ( * wxBLACK ) ;
m_step_sizer - > Add ( line , 1 , wxALIGN_CENTER ) ;
}
}
m_step_sizer - > AddSpacer ( FromDIP ( 90 ) ) ;
wxGetApp ( ) . UpdateDarkUIWin ( this ) ;
Layout ( ) ;
}
CaliPagePicture : : CaliPagePicture ( wxWindow * parent , wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
{
SetBackgroundColour ( wxColour ( 0xCECECE ) ) ;
auto top_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
top_sizer - > AddStretchSpacer ( ) ;
m_img = new wxStaticBitmap ( this , wxID_ANY , wxNullBitmap ) ;
top_sizer - > Add ( m_img ) ;
top_sizer - > AddStretchSpacer ( ) ;
this - > SetSizer ( top_sizer ) ;
top_sizer - > Fit ( this ) ;
}
void CaliPagePicture : : set_bmp ( const ScalableBitmap & bmp )
{
m_bmp = bmp ;
m_img - > SetBitmap ( m_bmp . bmp ( ) ) ;
}
void CaliPagePicture : : msw_rescale ( )
{
m_bmp . msw_rescale ( ) ;
m_img - > SetBitmap ( m_bmp . bmp ( ) ) ;
}
PAPageHelpPanel : : PAPageHelpPanel ( wxWindow * parent , bool ground_panel , wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
{
if ( ground_panel )
SetBackgroundColour ( wxColour ( 238 , 238 , 238 ) ) ;
else
SetBackgroundColour ( parent - > GetBackgroundColour ( ) ) ;
int left_align_padding = ground_panel ? FromDIP ( 20 ) : 0 ;
wxBoxSizer * top_sizer = new wxBoxSizer ( wxVERTICAL ) ;
top_sizer - > AddSpacer ( FromDIP ( 10 ) ) ;
auto help_text_title = new Label ( this , _L ( " How to use calibration result? " ) ) ;
help_text_title - > SetFont ( Label : : Head_14 ) ;
top_sizer - > Add ( help_text_title , 0 , wxLEFT | wxRIGHT , left_align_padding ) ;
wxBoxSizer * help_text_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
auto help_text = new Label ( this , _L ( " You could change the Flow Dynamics Calibration Factor in material editing " ) ) ;
help_text - > SetFont ( Label : : Body_14 ) ;
m_help_btn = new ScalableButton ( this , wxID_ANY , " cali_page_caption_help " , wxEmptyString , wxDefaultSize , wxDefaultPosition , wxBU_EXACTFIT | wxNO_BORDER , false , 24 ) ;
m_help_btn - > SetBackgroundColour ( m_help_btn - > GetParent ( ) - > GetBackgroundColour ( ) ) ;
help_text_sizer - > Add ( help_text , 0 , wxALIGN_CENTER | wxLEFT , left_align_padding ) ;
help_text_sizer - > Add ( m_help_btn , 0 , wxALIGN_CENTER | wxLEFT , FromDIP ( 8 ) ) ;
help_text_sizer - > AddSpacer ( FromDIP ( 20 ) ) ;
top_sizer - > Add ( help_text_sizer ) ;
top_sizer - > AddSpacer ( FromDIP ( 6 ) ) ;
create_pop_window ( ) ;
SetSizer ( top_sizer ) ;
top_sizer - > Fit ( this ) ;
}
void PAPageHelpPanel : : msw_rescale ( )
{
m_help_btn - > msw_rescale ( ) ;
m_bmp . msw_rescale ( ) ;
m_img - > SetBitmap ( m_bmp . bmp ( ) ) ;
}
void PAPageHelpPanel : : create_pop_window ( )
{
m_pop_win = new PopupWindow ( this ) ;
m_pop_win - > SetBackgroundColour ( * wxWHITE ) ;
wxBoxSizer * pop_sizer = new wxBoxSizer ( wxVERTICAL ) ;
m_pop_win - > SetSizer ( pop_sizer ) ;
m_img = new wxStaticBitmap ( m_pop_win , wxID_ANY , wxNullBitmap ) ;
m_bmp = ScalableBitmap ( this , " cali_fdc_editing_diagram " , 206 ) ;
m_img - > SetBitmap ( m_bmp . bmp ( ) ) ;
pop_sizer - > Add ( m_img , 1 , wxEXPAND | wxALL , FromDIP ( 20 ) ) ;
m_pop_win - > Layout ( ) ;
m_pop_win - > Fit ( ) ;
m_pop_win - > Bind ( wxEVT_PAINT , [ this ] ( auto & ) {
wxPaintDC dc ( m_pop_win ) ;
dc . SetPen ( { 0xACACAC } ) ;
dc . SetBrush ( * wxTRANSPARENT_BRUSH ) ;
dc . DrawRectangle ( { 0 , 0 } , m_pop_win - > GetSize ( ) ) ;
} ) ;
m_help_btn - > Bind ( wxEVT_ENTER_WINDOW , [ this ] ( auto & ) {
wxPoint pop_pos = m_help_btn - > ClientToScreen ( wxPoint ( 0 , 0 ) ) ;
pop_pos . x - = FromDIP ( 60 ) ;
pop_pos . y - = m_pop_win - > GetSize ( ) . y + FromDIP ( 10 ) ;
m_pop_win - > Position ( pop_pos , wxSize ( 0 , 0 ) ) ;
m_pop_win - > Popup ( ) ;
} ) ;
m_help_btn - > Bind ( wxEVT_LEAVE_WINDOW , [ this ] ( auto & ) {
m_pop_win - > Dismiss ( ) ;
} ) ;
}
CaliPageActionPanel : : CaliPageActionPanel ( wxWindow * parent ,
CalibMode cali_mode ,
CaliPageType page_type ,
wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
{
m_parent = parent ;
wxWindow * btn_parent = this ;
if ( cali_mode = = CalibMode : : Calib_PA_Line ) {
if ( page_type = = CaliPageType : : CALI_PAGE_START ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_MANAGE_RESULT ) ) ;
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_MANUAL_CALI ) ) ;
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_AUTO_CALI ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_PRESET ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_CALI ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI_NEXT ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_PA_SAVE ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_PA_SAVE ) ) ;
}
}
else if ( cali_mode = = CalibMode : : Calib_Flow_Rate ) {
if ( page_type = = CaliPageType : : CALI_PAGE_START ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_MANUAL_CALI ) ) ;
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_AUTO_CALI ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_PRESET ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_CALI ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI_NEXT ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_COARSE_SAVE ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_FLOW_COARSE_SAVE ) ) ;
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_FLOW_CALI_STAGE_2 ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_FINE_SAVE ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_FLOW_FINE_SAVE ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_FLOW_SAVE ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_FLOW_SAVE ) ) ;
}
}
else {
if ( page_type = = CaliPageType : : CALI_PAGE_START ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_START ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_PRESET ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_CALI ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_CALI_NEXT ) ) ;
}
else if ( page_type = = CaliPageType : : CALI_PAGE_COMMON_SAVE ) {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_COMMON_SAVE ) ) ;
}
else {
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_PREV ) ) ;
m_action_btns . push_back ( new CaliPageButton ( btn_parent , CaliPageActionType : : CALI_ACTION_NEXT ) ) ;
}
}
auto top_sizer = new wxBoxSizer ( wxHORIZONTAL ) ;
top_sizer - > Add ( 0 , 0 , 1 , wxEXPAND , 0 ) ;
for ( int i = 0 ; i < m_action_btns . size ( ) ; i + + ) {
top_sizer - > Add ( m_action_btns [ i ] , 0 , wxALL , FromDIP ( 5 ) ) ;
m_action_btns [ i ] - > Bind ( wxEVT_BUTTON ,
[ this , i ] ( wxCommandEvent & evt ) {
wxCommandEvent event ( EVT_CALI_ACTION ) ;
event . SetEventObject ( m_parent ) ;
event . SetInt ( ( int ) m_action_btns [ i ] - > get_action_type ( ) ) ;
wxPostEvent ( m_parent , event ) ;
} ) ;
}
top_sizer - > Add ( 0 , 0 , 1 , wxEXPAND , 0 ) ;
this - > SetSizer ( top_sizer ) ;
top_sizer - > Fit ( this ) ;
}
void CaliPageActionPanel : : bind_button ( CaliPageActionType action_type , bool is_block )
{
for ( int i = 0 ; i < m_action_btns . size ( ) ; i + + ) {
if ( m_action_btns [ i ] - > get_action_type ( ) = = action_type ) {
if ( is_block ) {
m_action_btns [ i ] - > Bind ( wxEVT_BUTTON ,
[ this ] ( wxCommandEvent & evt ) {
MessageDialog msg ( nullptr , _L ( " The current firmware version of the printer does not support calibration. \n Please upgrade the printer firmware. " ) , _L ( " Calibration not supported " ) , wxOK | wxICON_WARNING ) ;
msg . ShowModal ( ) ;
} ) ;
}
else {
m_action_btns [ i ] - > Bind ( wxEVT_BUTTON ,
[ this , i ] ( wxCommandEvent & evt ) {
wxCommandEvent event ( EVT_CALI_ACTION ) ;
event . SetEventObject ( m_parent ) ;
event . SetInt ( ( int ) m_action_btns [ i ] - > get_action_type ( ) ) ;
wxPostEvent ( m_parent , event ) ;
} ) ;
}
}
}
}
void CaliPageActionPanel : : show_button ( CaliPageActionType action_type , bool show )
{
for ( int i = 0 ; i < m_action_btns . size ( ) ; i + + ) {
if ( m_action_btns [ i ] - > get_action_type ( ) = = action_type ) {
m_action_btns [ i ] - > Show ( show ) ;
}
}
Layout ( ) ;
}
void CaliPageActionPanel : : enable_button ( CaliPageActionType action_type , bool enable )
{
for ( int i = 0 ; i < m_action_btns . size ( ) ; i + + ) {
if ( m_action_btns [ i ] - > get_action_type ( ) = = action_type ) {
m_action_btns [ i ] - > Enable ( enable ) ;
}
}
}
void CaliPageActionPanel : : msw_rescale ( )
{
for ( int i = 0 ; i < m_action_btns . size ( ) ; i + + ) {
m_action_btns [ i ] - > msw_rescale ( ) ;
}
}
CaliPageSendingPanel : : CaliPageSendingPanel ( wxWindow * parent , wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
{
SetBackgroundColour ( * wxWHITE ) ;
SetMinSize ( { FromDIP ( 475 ) , FromDIP ( 200 ) } ) ;
SetMaxSize ( { FromDIP ( 475 ) , FromDIP ( 200 ) } ) ;
create ( this ) ;
Layout ( ) ;
Fit ( ) ;
Bind ( EVT_SHOW_ERROR_INFO , [ this ] ( auto & e ) {
show_send_failed_info ( true ) ;
} ) ;
}
void CaliPageSendingPanel : : create ( wxWindow * parent )
{
auto panel_sizer = new wxBoxSizer ( wxVERTICAL ) ;
parent - > SetSizer ( panel_sizer ) ;
m_send_progress_bar = std : : shared_ptr < BBLStatusBarSend > ( new BBLStatusBarSend ( parent ) ) ;
panel_sizer - > Add ( m_send_progress_bar - > get_panel ( ) , 0 , wxEXPAND ) ;
m_sw_print_failed_info = new wxScrolledWindow ( parent , wxID_ANY , wxDefaultPosition , wxSize ( FromDIP ( 380 ) , FromDIP ( 125 ) ) , wxVSCROLL ) ;
m_sw_print_failed_info - > SetBackgroundColour ( * wxWHITE ) ;
m_sw_print_failed_info - > SetScrollRate ( 0 , 5 ) ;
m_sw_print_failed_info - > SetMinSize ( wxSize ( FromDIP ( 380 ) , FromDIP ( 125 ) ) ) ;
m_sw_print_failed_info - > SetMaxSize ( wxSize ( FromDIP ( 380 ) , FromDIP ( 125 ) ) ) ;
m_sw_print_failed_info - > Hide ( ) ;
panel_sizer - > Add ( m_sw_print_failed_info , 0 , wxEXPAND ) ;
// create error info panel
wxBoxSizer * sizer_print_failed_info = new wxBoxSizer ( wxVERTICAL ) ;
m_sw_print_failed_info - > SetSizer ( sizer_print_failed_info ) ;
wxBoxSizer * sizer_error_code = new wxBoxSizer ( wxHORIZONTAL ) ;
wxBoxSizer * sizer_error_desc = new wxBoxSizer ( wxHORIZONTAL ) ;
wxBoxSizer * sizer_extra_info = new wxBoxSizer ( wxHORIZONTAL ) ;
auto st_title_error_code = new Label ( m_sw_print_failed_info , _L ( " Error code " ) ) ;
auto st_title_error_code_doc = new Label ( m_sw_print_failed_info , " : " ) ;
m_st_txt_error_code = new Label ( m_sw_print_failed_info , wxEmptyString ) ;
st_title_error_code - > SetForegroundColour ( 0x909090 ) ;
st_title_error_code_doc - > SetForegroundColour ( 0x909090 ) ;
m_st_txt_error_code - > SetForegroundColour ( 0x909090 ) ;
st_title_error_code - > SetFont ( : : Label : : Body_13 ) ;
st_title_error_code_doc - > SetFont ( : : Label : : Body_13 ) ;
m_st_txt_error_code - > SetFont ( : : Label : : Body_13 ) ;
st_title_error_code - > SetMinSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
st_title_error_code - > SetMaxSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
m_st_txt_error_code - > SetMinSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
m_st_txt_error_code - > SetMaxSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
sizer_error_code - > Add ( st_title_error_code , 0 , wxALL , 0 ) ;
sizer_error_code - > Add ( st_title_error_code_doc , 0 , wxALL , 0 ) ;
sizer_error_code - > Add ( m_st_txt_error_code , 0 , wxALL , 0 ) ;
auto st_title_error_desc = new Label ( m_sw_print_failed_info , _L ( " Error desc " ) ) ;
auto st_title_error_desc_doc = new Label ( m_sw_print_failed_info , " : " ) ;
m_st_txt_error_desc = new Label ( m_sw_print_failed_info , wxEmptyString ) ;
st_title_error_desc - > SetForegroundColour ( 0x909090 ) ;
st_title_error_desc_doc - > SetForegroundColour ( 0x909090 ) ;
m_st_txt_error_desc - > SetForegroundColour ( 0x909090 ) ;
st_title_error_desc - > SetFont ( : : Label : : Body_13 ) ;
st_title_error_desc_doc - > SetFont ( : : Label : : Body_13 ) ;
m_st_txt_error_desc - > SetFont ( : : Label : : Body_13 ) ;
st_title_error_desc - > SetMinSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
st_title_error_desc - > SetMaxSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
m_st_txt_error_desc - > SetMinSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
m_st_txt_error_desc - > SetMaxSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
sizer_error_desc - > Add ( st_title_error_desc , 0 , wxALL , 0 ) ;
sizer_error_desc - > Add ( st_title_error_desc_doc , 0 , wxALL , 0 ) ;
sizer_error_desc - > Add ( m_st_txt_error_desc , 0 , wxALL , 0 ) ;
auto st_title_extra_info = new Label ( m_sw_print_failed_info , _L ( " Extra info " ) ) ;
auto st_title_extra_info_doc = new Label ( m_sw_print_failed_info , " : " ) ;
m_st_txt_extra_info = new Label ( m_sw_print_failed_info , wxEmptyString ) ;
st_title_extra_info - > SetForegroundColour ( 0x909090 ) ;
st_title_extra_info_doc - > SetForegroundColour ( 0x909090 ) ;
m_st_txt_extra_info - > SetForegroundColour ( 0x909090 ) ;
st_title_extra_info - > SetFont ( : : Label : : Body_13 ) ;
st_title_extra_info_doc - > SetFont ( : : Label : : Body_13 ) ;
m_st_txt_extra_info - > SetFont ( : : Label : : Body_13 ) ;
st_title_extra_info - > SetMinSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
st_title_extra_info - > SetMaxSize ( wxSize ( FromDIP ( 74 ) , - 1 ) ) ;
m_st_txt_extra_info - > SetMinSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
m_st_txt_extra_info - > SetMaxSize ( wxSize ( FromDIP ( 260 ) , - 1 ) ) ;
sizer_extra_info - > Add ( st_title_extra_info , 0 , wxALL , 0 ) ;
sizer_extra_info - > Add ( st_title_extra_info_doc , 0 , wxALL , 0 ) ;
sizer_extra_info - > Add ( m_st_txt_extra_info , 0 , wxALL , 0 ) ;
sizer_print_failed_info - > Add ( sizer_error_code , 0 , wxLEFT , 5 ) ;
sizer_print_failed_info - > Add ( 0 , 0 , 0 , wxTOP , FromDIP ( 3 ) ) ;
sizer_print_failed_info - > Add ( sizer_error_desc , 0 , wxLEFT , 5 ) ;
sizer_print_failed_info - > Add ( 0 , 0 , 0 , wxTOP , FromDIP ( 3 ) ) ;
sizer_print_failed_info - > Add ( sizer_extra_info , 0 , wxLEFT , 5 ) ;
}
void CaliPageSendingPanel : : update_print_error_info ( int code , const std : : string & msg , const std : : string & extra )
{
m_print_error_code = code ;
m_print_error_msg = msg ;
m_print_error_extra = extra ;
}
void CaliPageSendingPanel : : show_send_failed_info ( bool show , int code , wxString description , wxString extra )
{
if ( show ) {
if ( ! m_sw_print_failed_info - > IsShown ( ) ) {
m_sw_print_failed_info - > Show ( true ) ;
m_st_txt_error_code - > SetLabelText ( wxString : : Format ( " %d " , m_print_error_code ) ) ;
m_st_txt_error_desc - > SetLabelText ( wxGetApp ( ) . filter_string ( m_print_error_msg ) ) ;
m_st_txt_extra_info - > SetLabelText ( wxGetApp ( ) . filter_string ( m_print_error_extra ) ) ;
m_st_txt_error_code - > Wrap ( FromDIP ( 260 ) ) ;
m_st_txt_error_desc - > Wrap ( FromDIP ( 260 ) ) ;
m_st_txt_extra_info - > Wrap ( FromDIP ( 260 ) ) ;
}
else {
m_sw_print_failed_info - > Show ( false ) ;
}
Layout ( ) ;
Fit ( ) ;
}
else {
if ( ! m_sw_print_failed_info - > IsShown ( ) ) { return ; }
m_sw_print_failed_info - > Show ( false ) ;
m_st_txt_error_code - > SetLabelText ( wxEmptyString ) ;
m_st_txt_error_desc - > SetLabelText ( wxEmptyString ) ;
m_st_txt_extra_info - > SetLabelText ( wxEmptyString ) ;
Layout ( ) ;
Fit ( ) ;
}
}
std : : shared_ptr < BBLStatusBarSend > CaliPageSendingPanel : : get_sending_progress_bar ( )
{
return m_send_progress_bar ;
}
void CaliPageSendingPanel : : reset ( )
{
m_send_progress_bar - > reset ( ) ;
m_sw_print_failed_info - > Show ( false ) ;
}
CalibrationWizardPage : : CalibrationWizardPage ( wxWindow * parent , wxWindowID id , const wxPoint & pos , const wxSize & size , long style )
: wxPanel ( parent , id , pos , size , style )
, m_parent ( parent )
{
SetBackgroundColour ( * wxWHITE ) ;
SetMinSize ( { MIN_CALIBRATION_PAGE_WIDTH , - 1 } ) ;
}
void CalibrationWizardPage : : msw_rescale ( )
{
m_page_caption - > msw_rescale ( ) ;
m_action_panel - > msw_rescale ( ) ;
}
void CalibrationWizardPage : : on_sys_color_changed ( )
{
m_page_caption - > on_sys_color_changed ( ) ;
}
}
}