KiCad PCB EDA Suite
confirm.h File Reference

This file is part of the common library. More...

#include <wx/richmsgdlg.h>
#include <vector>
#include <functional>

Go to the source code of this file.

Classes

class  KIDIALOG
 Helper class to create more flexible dialogs, including 'do not show again' checkbox handling. More...
 

Functions

bool OverrideLock (wxWindow *aParent, const wxString &aMessage)
 Display a dialog indicating the file is already open, with an option to reset the lock. More...
 
bool HandleUnsavedChanges (wxWindow *aParent, const wxString &aMessage, const std::function< bool()> &aSaveFunction)
 Display a dialog with Save, Cancel and Discard Changes buttons. More...
 
int UnsavedChangesDialog (wxWindow *aParent, const wxString &aMessage, bool *aApplyToAll)
 A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox. More...
 
int UnsavedChangesDialog (wxWindow *aParent, const wxString &aMessage)
 
bool ConfirmRevertDialog (wxWindow *parent, const wxString &aMessage)
 Display a confirmation dialog for a revert action. More...
 
void DisplayError (wxWindow *aParent, const wxString &aText, int aDisplayTime=0)
 Display an error or warning message box with aMessage. More...
 
void DisplayErrorMessage (wxWindow *aParent, const wxString &aMessage, const wxString &aExtraInfo=wxEmptyString)
 Display an error message with aMessage. More...
 
void DisplayInfoMessage (wxWindow *parent, const wxString &aMessage, const wxString &aExtraInfo=wxEmptyString)
 Display an informational message box with aMessage. More...
 
bool IsOK (wxWindow *aParent, const wxString &aMessage)
 Display a yes/no dialog with aMessage and returns the user response. More...
 
int OKOrCancelDialog (wxWindow *aParent, const wxString &aWarning, const wxString &aMessage, const wxString &aDetailedMessage=wxEmptyString, const wxString &aOKLabel=wxEmptyString, const wxString &aCancelLabel=wxEmptyString, bool *aApplyToAll=nullptr)
 Display a warning dialog with aMessage and returns the user response. More...
 
int SelectSingleOption (wxWindow *aParent, const wxString &aTitle, const wxString &aMessage, const wxArrayString &aOptions)
 Display a dialog with radioboxes asking the user to select an option. More...
 

Detailed Description

This file is part of the common library.

See also
common.h

Definition in file confirm.h.

Function Documentation

◆ ConfirmRevertDialog()

bool ConfirmRevertDialog ( wxWindow *  parent,
const wxString &  aMessage 
)

Display a confirmation dialog for a revert action.

Definition at line 220 of file confirm.cpp.

221 {
222  wxMessageDialog dlg( parent, aMessage, wxEmptyString,
223  wxOK | wxCANCEL | wxOK_DEFAULT | wxICON_WARNING | wxCENTER );
224  dlg.SetExtendedMessage( _( "Your current changes will be permanently lost." ) );
225  dlg.SetOKCancelLabels( _( "Revert" ), _( "Cancel" ) );
226 
227  return dlg.ShowModal() == wxID_OK;
228 }
#define _(s)

References _.

Referenced by SYMBOL_EDIT_FRAME::Revert(), and FOOTPRINT_EDIT_FRAME::RevertFootprint().

◆ DisplayError()

void DisplayError ( wxWindow *  aParent,
const wxString &  aText,
int  aDisplayTime = 0 
)

Display an error or warning message box with aMessage.

Warning
Setting displaytime does not work. Do not use it.

Definition at line 271 of file confirm.cpp.

272 {
273  wxMessageDialog* dlg;
274  int icon = aDisplayTime > 0 ? wxICON_INFORMATION : wxICON_ERROR;
275 
276  dlg = new wxMessageDialog( aParent, aText, _( "Warning" ),
277  wxOK | wxCENTRE | wxRESIZE_BORDER | icon | wxSTAY_ON_TOP );
278 
279  dlg->ShowModal();
280  dlg->Destroy();
281 }
#define _(s)

References _.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::AddLibraryFile(), PCB_CONTROL::AppendBoard(), SYMBOL_EDIT_FRAME::backupFile(), SCH_EDIT_FRAME::CheckSheetForRecursion(), FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList(), SCH_EDIT_FRAME::ConvertPart(), DIALOG_GEN_FOOTPRINT_POSITION::CreateAsciiFiles(), MICROWAVE_TOOL::createFootprint(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), SPICE_SIMULATOR::CreateInstance(), PCB_BASE_EDIT_FRAME::createNewLibrary(), UNIT_BINDER::delayedFocusHandler(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), PANEL_SETUP_LAYERS::DenyChangeCheckBox(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), doPrintFile(), DIALOG_SIM_SETTINGS::evaluateDCControls(), ExecuteFile(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), GBR_TO_PCB_EXPORTER::ExportPcb(), DIALOG_EXPORT_SVG::ExportSVGFile(), SYMBOL_EDIT_FRAME::ExportSymbol(), PCB_EDIT_FRAME::ExportToGenCAD(), NETLIST_EXPORTER_PSPICE::Format(), DIALOG_GENDRILL::GenDrillAndMapFiles(), DIALOG_SPICE_MODEL::generatePowerSource(), PCB_EDIT_FRAME::GenFootprintsReport(), GetAssociatedDocument(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), FOOTPRINT_EDIT_FRAME::ImportFootprint(), SCH_EDITOR_CONTROL::ImportFPAssignments(), SYMBOL_EDIT_FRAME::ImportSymbol(), DIALOG_PRINT_GENERIC::initPrintData(), SYMBOL_EDIT_FRAME::LoadSymbol(), SCH_EDIT_FRAME::NewProject(), DIALOG_SYMBOL_FIELDS_TABLE::OnAddField(), DIALOG_CONFIG_EQUFILES::OnAddFiles(), DIALOG_BOM::OnAddGenerator(), DIALOG_NET_INSPECTOR::onAddNet(), DIALOG_SYMBOL_FIELDS_TABLE::OnColumnItemToggled(), DIALOG_LIB_SYMBOL_PROPERTIES::OnDeleteField(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnDeleteField(), DIALOG_SHEET_PROPERTIES::OnDeleteField(), DIALOG_SYMBOL_PROPERTIES::OnDeleteField(), DIALOG_FOOTPRINT_PROPERTIES::OnDeleteField(), DIALOG_LIB_SYMBOL_PROPERTIES::OnGridCellChanging(), DIALOG_SYMBOL_PROPERTIES::OnGridCellChanging(), SCH_EDIT_FRAME::OnOpenCvpcb(), DIALOG_PRINT_GENERIC::onPrintButtonClick(), DIALOG_PRINT_GENERIC::onPrintPreview(), DIALOG_NET_INSPECTOR::onRenameNet(), DIALOG_ERC::OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), PCB_DRAW_PANEL_GAL::OnShow(), SCH_EDIT_FRAME::OnUpdatePCB(), DIALOG_LIB_SYMBOL_PROPERTIES::OnUpdateUI(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnUpdateUI(), DIALOG_FOOTPRINT_PROPERTIES::OnUpdateUI(), OpenPDF(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDITOR_CONTROL::Paste(), SYMBOL_GRID_TRICKS::paste_text(), FP_GRID_TRICKS::paste_text(), DIALOG_PLOT::Plot(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), MWAVE_POLYGONAL_SHAPE_DLG::ReadDataShapeDescr(), PCB_EDIT_FRAME::RecreateBOMFileFromBoard(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), KIGFX::VERTEX_MANAGER::Reserve(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), FOOTPRINT_EDIT_FRAME::SaveLibraryAs(), PCB_EDIT_FRAME::SavePcbCopy(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::saveSchematicFile(), SYMBOL_EDIT_FRAME::saveSymbolAs(), KIGFX::GPU_MANAGER::SetShader(), EDA_DRAW_PANEL_GAL::SwitchBackend(), PCB_EDIT_FRAME::TestStandalone(), DIALOG_GLOBAL_FP_LIB_TABLE_CONFIG::TransferDataFromWindow(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::TransferDataFromWindow(), DIALOG_TRACK_VIA_SIZE::TransferDataFromWindow(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_SCH_IMPORT_SETTINGS::TransferDataFromWindow(), DIALOG_IMPORT_SETTINGS::TransferDataFromWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataFromWindow(), DIALOG_PRINT_USING_PRINTER::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_FIELD_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXT_AND_LABEL_PROPERTIES::TransferDataFromWindow(), DIALOG_SHEET_PROPERTIES::TransferDataFromWindow(), DIALOG_SIM_SETTINGS::TransferDataFromWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PRIMITIVES_PROPERTIES::TransferDataFromWindow(), DIALOG_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), REGEX_VALIDATOR::Validate(), SPICE_VALIDATOR::Validate(), KIGFX::VERTEX_MANAGER::Vertex(), KIGFX::VERTEX_MANAGER::Vertices(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), NETLIST_EXPORTER_CADSTAR::WriteNetlist(), NETLIST_EXPORTER_KICAD::WriteNetlist(), and LEGACY_RESCUER::WriteRescueLibrary().

◆ DisplayErrorMessage()

void DisplayErrorMessage ( wxWindow *  aParent,
const wxString &  aMessage,
const wxString &  aExtraInfo = wxEmptyString 
)

Display an error message with aMessage.

Parameters
aParentis the parent window
aMessageis the message text to display
aExtraInfois extra data that can be optionally displayed in a collapsible pane

Definition at line 284 of file confirm.cpp.

285 {
286  wxMessageDialog* dlg;
287 
288  dlg = new wxMessageDialog( aParent, aText, _( "Error" ),
289  wxOK | wxCENTRE | wxRESIZE_BORDER | wxICON_ERROR | wxSTAY_ON_TOP );
290 
291  if( !aExtraInfo.IsEmpty() )
292  dlg->SetExtendedMessage( aExtraInfo );
293 
294  dlg->ShowModal();
295  dlg->Destroy();
296 }
#define _(s)

References _.

Referenced by FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SIM_PLOT_FRAME::AddTuner(), PANEL_SETUP_LAYERS::addUserDefinedLayer(), CVPCB_ASSOCIATION_TOOL::Associate(), CVPCB_MAINFRAME::AssociateFootprint(), PANEL_FP_LIB_TABLE::browseLibrariesHandler(), checkGlError(), SCH_EDIT_FRAME::CreateArchiveLibrary(), PROJECT_TREE_ITEM::Delete(), WIDGET_HOTKEY_LIST::editItem(), PCB_EDIT_FRAME::ExportSpecctraFile(), SYMBOL_EDIT_FRAME::ExportSymbol(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::FetchNetlistFromSchematic(), PL_EDITOR_FRAME::Files_io(), EDA_BASE_FRAME::GetFileFromHistory(), SCH_EDIT_FRAME::importFile(), PCB_EDIT_FRAME::ImportSpecctraSession(), SYMBOL_EDIT_FRAME::ImportSymbol(), PGM_BASE::InitPgm(), FOOTPRINT_EDIT_FRAME::KiwayMailIn(), SYMBOL_EDIT_FRAME::KiwayMailIn(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), SETTINGS_MANAGER::MigrateIfNeeded(), KICAD_MANAGER_CONTROL::NewFromTemplate(), KICAD_MANAGER_CONTROL::NewProject(), DIALOG_SCHEMATIC_SETUP::OnAuxiliaryAction(), DIALOG_BOARD_SETUP::OnAuxiliaryAction(), PANEL_SYM_LIB_TABLE::onConvertLegacyLibraries(), DIALOG_EXPORT_STEP::onExportButton(), PCB_EDIT_FRAME::OnExportSTEP(), PCB_EDIT_FRAME::OnExportVRML(), CV::IFACE::OnKifaceStart(), PCB::IFACE::OnKifaceStart(), SCH::IFACE::OnKifaceStart(), PANEL_SETUP_NETCLASSES::OnRemoveNetclassClick(), SIM_PLOT_FRAME::onSettings(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), PANEL_TEXT_VARIABLES::OnUpdateUI(), DIALOG_CONFIGURE_PATHS::OnUpdateUI(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::OpenProjectFiles(), PROJECT::PcbFootprintLibs(), KIWAY::Player(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveLibrary(), KICAD_MANAGER_CONTROL::SaveProjectAs(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SchGetLibSymbol(), KIWAY::SetLanguage(), SYMBOL_VIEWER_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::StartSimulation(), DIALOG_PNS_DIFF_PAIR_DIMENSIONS::TransferDataFromWindow(), DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_PIN_PROPERTIES::TransferDataFromWindow(), SYMBOL_EDIT_FRAME::UpdateAfterSymbolProperties(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), DIALOG_SHEET_PROPERTIES::Validate(), DIALOG_SYMBOL_PROPERTIES::Validate(), IPC356D_WRITER::Write(), and SYMBOL_LIB_TABLE_RESCUER::WriteRescueLibrary().

◆ DisplayInfoMessage()

void DisplayInfoMessage ( wxWindow *  parent,
const wxString &  aMessage,
const wxString &  aExtraInfo = wxEmptyString 
)

Display an informational message box with aMessage.

Parameters
aParentis the parent window
aMessageis the message text to display
aExtraInfois the extra data that can be optionally displayed in a collapsible pane

Definition at line 299 of file confirm.cpp.

300 {
301  wxMessageDialog* dlg;
302  int icon = wxICON_INFORMATION;
303 
304  dlg = new wxMessageDialog( aParent, aMessage, _( "Information" ),
305  wxOK | wxCENTRE | wxRESIZE_BORDER | icon | wxSTAY_ON_TOP );
306 
307  if( !aExtraInfo.IsEmpty() )
308  dlg->SetExtendedMessage( aExtraInfo );
309 
310  dlg->ShowModal();
311  dlg->Destroy();
312 }
#define _(s)

References _.

Referenced by SCH_EDIT_FRAME::checkForNoFullyDefinedLibIds(), EE_INSPECTION_TOOL::CheckSymbol(), PCB_BASE_FRAME::CreateNewFootprint(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), EDA_DRAW_PANEL_GAL::DoRePaint(), FOOTPRINT_EDIT_FRAME::ExportFootprint(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), GERBVIEW_CONTROL::ExportToPcbnew(), PCB_EDIT_FRAME::Files_io_from_id(), DIALOG_PRINT_GENERIC::getScaleValue(), PGM_BASE::GetTextEditor(), SIM_PLOT_FRAME::onAddSignal(), CV::IFACE::OnKifaceStart(), SCH_DRAW_PANEL::OnShow(), SCH_EDIT_FRAME::OpenProjectFiles(), DIALOG_PLOT::Plot(), BOARD_EDITOR_CONTROL::RepairBoard(), FOOTPRINT_EDITOR_CONTROL::RepairFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveLibraryAs(), PCB_EDIT_FRAME::SavePcbCopy(), ROUTER_TOOL::SelectCopperLayerPair(), KICAD_MANAGER_CONTROL::ShowPlayer(), and EDA_DRAW_PANEL_GAL::SwitchBackend().

◆ HandleUnsavedChanges()

bool HandleUnsavedChanges ( wxWindow *  aParent,
const wxString &  aMessage,
const std::function< bool()> &  aSaveFunction 
)

Display a dialog with Save, Cancel and Discard Changes buttons.

Parameters
aParent= the parent window
aMessage= the main message to put in dialog
aSaveFunction= a function to save changes, if requested. Must return true if the save was successful and false otherwise (which will result in HandleUnsavedChanges() returning wxID_CANCEL).
Returns
wxID_YES, wxID_CANCEL, wxID_NO.

Definition at line 231 of file confirm.cpp.

233 {
234  switch( UnsavedChangesDialog( aParent, aMessage ) )
235  {
236  case wxID_YES: return aSaveFunction();
237  case wxID_NO: return true;
238  default:
239  case wxID_CANCEL: return false;
240  }
241 }
int UnsavedChangesDialog(wxWindow *parent, const wxString &aMessage, bool *aApplyToAll)
A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox.
Definition: confirm.cpp:176

References UnsavedChangesDialog().

Referenced by SCH_EDIT_FRAME::AskToSaveChanges(), FOOTPRINT_EDIT_FRAME::canCloseWindow(), PL_EDITOR_FRAME::canCloseWindow(), CVPCB_MAINFRAME::canCloseWindow(), SIM_PLOT_FRAME::canCloseWindow(), PCB_EDIT_FRAME::canCloseWindow(), SCH_EDIT_FRAME::canCloseWindow(), FOOTPRINT_EDIT_FRAME::Clear_Pcb(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), PL_EDITOR_FRAME::Files_io(), PCB_EDIT_FRAME::Files_io_from_id(), SYMBOL_EDIT_FRAME::LoadSymbol(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_SYMBOL_FIELDS_TABLE::OnClose(), PL_EDITOR_FRAME::OnFileHistory(), and PCB_EDIT_FRAME::OpenProjectFiles().

◆ IsOK()

bool IsOK ( wxWindow *  aParent,
const wxString &  aMessage 
)

Display a yes/no dialog with aMessage and returns the user response.

Parameters
aParentis the parent window. NULL can be used if the parent is the top level window.
aMessageis the message to display in the dialog box.
Returns
True if user selected the yes button, otherwise false.

Definition at line 315 of file confirm.cpp.

316 {
317  wxMessageDialog dlg( aParent, aMessage, _( "Confirmation" ),
318  wxYES_NO | wxCENTRE | wxICON_QUESTION | wxSTAY_ON_TOP );
319  dlg.SetEscapeId( wxID_NO );
320 
321  return dlg.ShowModal() == wxID_YES;
322 }
#define _(s)

References _.

Referenced by DIALOG_IMAGE_EDITOR::CheckValues(), SCH_EDIT_TOOL::CleanupSheetPins(), GERBVIEW_FRAME::Clear_DrawLayers(), PCB_EDIT_FRAME::Clear_Pcb(), CVPCB_ASSOCIATION_TOOL::DeleteAll(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), SYMBOL_EDIT_FRAME::DeleteSymbolFromLibrary(), DIALOG_GLOBAL_DELETION::DoGlobalDeletions(), GERBVIEW_FRAME::Erase_Current_DrawLayer(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), PCB_EDIT_FRAME::Files_io_from_id(), KICAD_MANAGER_CONTROL::NewProject(), SCH_EDIT_FRAME::OnAppendProject(), DIALOG_BOARD_REANNOTATE::OnApplyClick(), PANEL_SETUP_RULES::onCharHook(), PANEL_SYM_LIB_TABLE::onConvertLegacyLibraries(), DIALOG_NET_INSPECTOR::onDeleteNet(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), DIALOG_PAGES_SETTINGS::OnWksFileSelection(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::OpenProjectFiles(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), SCH_EDIT_FRAME::ReadyToNetlist(), DIALOG_BOARD_REANNOTATE::ReannotateBoard(), DIALOG_PIN_PROPERTIES::TransferDataFromWindow(), PANEL_SETUP_LAYERS::TransferDataFromWindow(), and DIALOG_LIB_SYMBOL_PROPERTIES::Validate().

◆ OKOrCancelDialog()

int OKOrCancelDialog ( wxWindow *  aParent,
const wxString &  aWarning,
const wxString &  aMessage,
const wxString &  aDetailedMessage = wxEmptyString,
const wxString &  aOKLabel = wxEmptyString,
const wxString &  aCancelLabel = wxEmptyString,
bool *  aApplyToAll = nullptr 
)

Display a warning dialog with aMessage and returns the user response.

Parameters
aParentis the parent window. NULL can be used if the parent is the top level window.
aWarningis the warning to display in the top part of the dialog box using a bold font.
aMessageis the message to display in the lower part of the dialog box using the default system UI font.
aDetailedMessageis the message to display in the "Show detailed information" section. Passing wxEmptyString will hide this portion of the dialog.
aOKLabelis the text to display in the OK button.
aCancelLabelis the text to display in the cancel button.
Returns
wxID_OK or wxID_CANCEL depending on the button the user selected.

Definition at line 244 of file confirm.cpp.

247 {
248  wxRichMessageDialog dlg( aParent, aMessage, aWarning,
249  wxOK | wxCANCEL | wxOK_DEFAULT | wxICON_WARNING | wxCENTER );
250 
251  dlg.SetOKCancelLabels( ( aOKLabel.IsEmpty() ) ? _( "OK" ) : aOKLabel,
252  ( aCancelLabel.IsEmpty() ) ? _( "Cancel" ) : aCancelLabel );
253 
254  if( !aDetailedMessage.IsEmpty() )
255  dlg.SetExtendedMessage( aDetailedMessage );
256 
257  if( aApplyToAll )
258  dlg.ShowCheckBox( _( "Apply to all" ), true );
259 
260  int ret = dlg.ShowModal();
261 
262  if( aApplyToAll )
263  *aApplyToAll = dlg.IsCheckBoxChecked();
264 
265  // Returns wxID_OK or wxID_CANCEL
266  return ret;
267 }
#define _(s)

References _.

Referenced by PANEL_SYM_LIB_TABLE::browseLibrariesHandler(), PANEL_FP_LIB_TABLE::browseLibrariesHandler(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveAllLibraries(), and ROUTER_TOOL::saveRouterDebugLog().

◆ OverrideLock()

bool OverrideLock ( wxWindow *  aParent,
const wxString &  aMessage 
)

Display a dialog indicating the file is already open, with an option to reset the lock.

Returns
true if the lock was reset.

Definition at line 154 of file confirm.cpp.

155 {
156 #ifdef __APPLE__
157  // wxMessageDialog gets the button spacing wrong on Mac so we have to use wxRichMessageDialog.
158  // Note that its warning icon is more like wxMessageDialog's error icon, so we use it instead
159  // of wxICON_ERROR.
160  wxRichMessageDialog dlg( aParent, aMessage, _( "File Open Error" ),
161  wxYES_NO | wxICON_WARNING | wxCENTER );
162  dlg.SetExtendedMessage( _( "Interleaved saves may produce very unexpected results." )
163  + wxS( "\n" ) );
164  dlg.SetYesNoLabels( _( "OK" ), _( "Open Anyway" ) );
165 #else
166  wxMessageDialog dlg( aParent, aMessage, _( "File Open Error" ),
167  wxYES_NO | wxICON_ERROR | wxCENTER );
168  dlg.SetExtendedMessage( _( "Interleaved saves may produce very unexpected results." ) );
169  dlg.SetYesNoLabels( _( "OK" ), _( "Open Anyway" ) );
170 #endif
171 
172  return dlg.ShowModal() == wxID_NO;
173 }
#define _(s)

References _.

Referenced by SCH_EDIT_FRAME::importFile(), PCB_EDIT_FRAME::OpenProjectFiles(), and SCH_EDIT_FRAME::OpenProjectFiles().

◆ SelectSingleOption()

int SelectSingleOption ( wxWindow *  aParent,
const wxString &  aTitle,
const wxString &  aMessage,
const wxArrayString &  aOptions 
)

Display a dialog with radioboxes asking the user to select an option.

Parameters
aParentis the parent window.
aTitleis the dialog title.
aMessageis a text label displayed in the first row of the dialog.
aOptionsis a vector of possible options.
Returns
Index of the selected option or -1 when the dialog has been canceled.

Definition at line 325 of file confirm.cpp.

327 {
328  wxSingleChoiceDialog dlg( aParent, aMessage, aTitle, aOptions );
329 
330  if( dlg.ShowModal() != wxID_OK )
331  return -1;
332 
333  return dlg.GetSelection();
334 }

◆ UnsavedChangesDialog() [1/2]

int UnsavedChangesDialog ( wxWindow *  aParent,
const wxString &  aMessage,
bool *  aApplyToAll 
)

A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox.

Parameters
aParent= the parent window
aMessage= the main message to put in dialog
aApplyToAll= if non-null an "Apply to all" checkbox will be shown and it's value written back to the bool.
Returns
wxID_YES, wxID_CANCEL, wxID_NO.

Definition at line 176 of file confirm.cpp.

177 {
178  static bool s_apply_to_all = false;
179 
180  wxRichMessageDialog dlg( parent, aMessage, _( "Save Changes?" ),
181  wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxICON_WARNING | wxCENTER );
182  dlg.SetExtendedMessage( _( "If you don't save, all your changes will be permanently lost." )
183  + wxS( "\n" ) );
184  dlg.SetYesNoLabels( _( "Save" ), _( "Discard Changes" ) );
185 
186  if( aApplyToAll )
187  dlg.ShowCheckBox( _( "Apply to all" ), s_apply_to_all );
188 
189  int ret = dlg.ShowModal();
190 
191  if( aApplyToAll )
192  {
193  *aApplyToAll = dlg.IsCheckBoxChecked();
194  s_apply_to_all = dlg.IsCheckBoxChecked();
195  }
196 
197  // Returns wxID_YES, wxID_NO, or wxID_CANCEL
198  return ret;
199 }
#define _(s)

References _.

Referenced by SYMBOL_EDIT_FRAME::canCloseWindow(), HandleUnsavedChanges(), InvokeSchEditSymbolLibTable(), SYMBOL_EDIT_FRAME::saveAllLibraries(), and UnsavedChangesDialog().

◆ UnsavedChangesDialog() [2/2]

int UnsavedChangesDialog ( wxWindow *  aParent,
const wxString &  aMessage 
)

Definition at line 202 of file confirm.cpp.

203 {
204 #ifdef __APPLE__
205  // wxMessageDialog gets the button order (and spacing) wrong on Mac so we have to use
206  // wxRichMessageDialog.
207  return UnsavedChangesDialog( parent, aMessage, nullptr );
208 #else
209  wxMessageDialog dlg( parent, aMessage, _( "Save Changes?" ),
210  wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxICON_WARNING | wxCENTER );
211  dlg.SetExtendedMessage( _( "If you don't save, all your changes will be permanently lost." ) );
212  dlg.SetYesNoLabels( _( "Save" ), _( "Discard Changes" ) );
213 
214  // Returns wxID_YES, wxID_NO, or wxID_CANCEL
215  return dlg.ShowModal();
216 #endif
217 }
int UnsavedChangesDialog(wxWindow *parent, const wxString &aMessage, bool *aApplyToAll)
A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox.
Definition: confirm.cpp:176
#define _(s)

References _, and UnsavedChangesDialog().