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 229 of file confirm.cpp.

230{
231 wxMessageDialog dlg( parent, aMessage, wxEmptyString,
232 wxOK | wxCANCEL | wxOK_DEFAULT | wxICON_WARNING | wxCENTER );
233 dlg.SetExtendedMessage( _( "Your current changes will be permanently lost." ) );
234 dlg.SetOKCancelLabels( _( "Revert" ), _( "Cancel" ) );
235
236 return dlg.ShowModal() == wxID_OK;
237}
#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 280 of file confirm.cpp.

281{
282 if( !wxTheApp || !wxTheApp->IsMainLoopRunning() )
283 {
284 wxLogError( "%s", aText );
285 return;
286 }
287
288 wxMessageDialog* dlg;
289 int icon = aDisplayTime > 0 ? wxICON_INFORMATION : wxICON_ERROR;
290
291 dlg = new wxMessageDialog( aParent, aText, _( "Warning" ),
292 wxOK | wxCENTRE | wxRESIZE_BORDER | icon | wxSTAY_ON_TOP );
293
294 dlg->ShowModal();
295 dlg->Destroy();
296}

References _.

Referenced by DIALOG_COPPER_ZONE::AcceptOptions(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), 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(), SIMULATOR::CreateInstance(), PCB_BASE_EDIT_FRAME::createNewLibrary(), SYMBOL_EDIT_FRAME::DdAddLibrary(), UNIT_BINDER::delayedFocusHandler(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), PANEL_SETUP_LAYERS::DenyChangeCheckBox(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), 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(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), PCB_EDIT_FRAME::ExportToGenCAD(), DIALOG_GENDRILL::GenDrillAndMapFiles(), 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_FOOTPRINT_PROPERTIES::OnDeleteField(), DIALOG_LABEL_PROPERTIES::OnDeleteField(), DIALOG_LIB_SYMBOL_PROPERTIES::OnDeleteField(), DIALOG_SHEET_PROPERTIES::OnDeleteField(), DIALOG_SYMBOL_PROPERTIES::OnDeleteField(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnDeleteField(), PANEL_FP_EDITOR_DEFAULTS::OnDeleteTextItem(), 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_FOOTPRINT_PROPERTIES::OnUpdateUI(), DIALOG_LIB_SYMBOL_PROPERTIES::OnUpdateUI(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::OnUpdateUI(), OpenPDF(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDITOR_CONTROL::Paste(), SYMBOL_GRID_TRICKS::paste_text(), FP_GRID_TRICKS::paste_text(), DIALOG_PLOT::Plot(), PCB_CONTROL::pruneItemLayers(), MWAVE_POLYGONAL_SHAPE_DLG::ReadDataShapeDescr(), PCB_EDIT_FRAME::RecreateBOMFileFromBoard(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), 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_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), DIALOG_FIELD_PROPERTIES::TransferDataFromWindow(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::TransferDataFromWindow(), DIALOG_LABEL_PROPERTIES::TransferDataFromWindow(), DIALOG_LIB_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_PRINT_USING_PRINTER::TransferDataFromWindow(), DIALOG_SCH_IMPORT_SETTINGS::TransferDataFromWindow(), DIALOG_SHEET_PROPERTIES::TransferDataFromWindow(), DIALOG_SIM_SETTINGS::TransferDataFromWindow(), DIALOG_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_GLOBAL_FP_LIB_TABLE_CONFIG::TransferDataFromWindow(), DIALOG_IMPORT_SETTINGS::TransferDataFromWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataFromWindow(), DIALOG_PAD_PRIMITIVES_PROPERTIES::TransferDataFromWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataFromWindow(), DIALOG_TEXTBOX_PROPERTIES::TransferDataFromWindow(), DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow(), DIALOG_TRACK_VIA_SIZE::TransferDataFromWindow(), SPICE_VALIDATOR::Validate(), REGEX_VALIDATOR::Validate(), KIGFX::VERTEX_MANAGER::Vertex(), KIGFX::VERTEX_MANAGER::Vertices(), 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 299 of file confirm.cpp.

300{
301 if( !wxTheApp || !wxTheApp->IsMainLoopRunning() )
302 {
303 wxLogError( "%s %s", aText, aExtraInfo );
304 return;
305 }
306
307 wxMessageDialog* dlg;
308
309 dlg = new wxMessageDialog( aParent, aText, _( "Error" ),
310 wxOK | wxCENTRE | wxRESIZE_BORDER | wxICON_ERROR | wxSTAY_ON_TOP );
311
312 if( !aExtraInfo.IsEmpty() )
313 dlg->SetExtendedMessage( aExtraInfo );
314
315 dlg->ShowModal();
316 dlg->Destroy();
317}

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(), SYMBOL_EDIT_FRAME::KiwayMailIn(), FOOTPRINT_EDIT_FRAME::KiwayMailIn(), DIALOG_SIM_MODEL< T >::loadLibrary(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), mergeZones(), 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(), SCH::IFACE::OnKifaceStart(), PCB::IFACE::OnKifaceStart(), PANEL_SETUP_NETCLASSES::OnRemoveNetclassClick(), SIM_PLOT_FRAME::onSettings(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), SIM_PLOT_FRAME::onSimUpdate(), PANEL_SETUP_BUSES::OnUpdateUI(), DIALOG_CONFIGURE_PATHS::OnUpdateUI(), PANEL_TEXT_VARIABLES::OnUpdateUI(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PROJECT::PcbFootprintLibs(), KIWAY::Player(), SPICE_LIBRARY_PARSER::ReadFile(), NETLIST_EXPORTER_SPICE::readModel(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), SYMBOL_EDITOR_CONTROL::RenameSymbol(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveCurrentSymbol(), SYMBOL_EDIT_FRAME::saveLibrary(), KICAD_MANAGER_CONTROL::SaveProjectAs(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SchGetLibSymbol(), KIWAY::SetLanguage(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SYMBOL_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::StartSimulation(), DIALOG_LIB_SYMBOL_PROPERTIES::TransferDataFromWindow(), DIALOG_PIN_PROPERTIES::TransferDataFromWindow(), DIALOG_PNS_DIFF_PAIR_DIMENSIONS::TransferDataFromWindow(), DIALOG_SIM_MODEL< T >::TransferDataToWindow(), SYMBOL_EDIT_FRAME::UpdateAfterSymbolProperties(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), DIALOG_SHEET_PROPERTIES::Validate(), DIALOG_SYMBOL_PROPERTIES::Validate(), IPC356D_WRITER::Write(), NETLIST_EXPORTER_SPICE::writeInclude(), 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 320 of file confirm.cpp.

321{
322 if( !wxTheApp || !wxTheApp->GetTopWindow() )
323 {
324 wxLogDebug( "%s %s", aMessage, aExtraInfo );
325 return;
326 }
327
328 wxMessageDialog* dlg;
329 int icon = wxICON_INFORMATION;
330
331 dlg = new wxMessageDialog( aParent, aMessage, _( "Information" ),
332 wxOK | wxCENTRE | wxRESIZE_BORDER | icon | wxSTAY_ON_TOP );
333
334 if( !aExtraInfo.IsEmpty() )
335 dlg->SetExtendedMessage( aExtraInfo );
336
337 dlg->ShowModal();
338 dlg->Destroy();
339}

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::DuplicateFootprint(), 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(), SCH_EDITOR_CONTROL::RepairSchematic(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveLibraryAs(), PCB_EDIT_FRAME::SavePcbCopy(), ROUTER_TOOL::SelectCopperLayerPair(), KICAD_MANAGER_CONTROL::ShowPlayer(), EDA_DRAW_PANEL_GAL::SwitchBackend(), DIALOG_LABEL_PROPERTIES::TransferDataFromWindow(), and DIALOG_SCH_FIELD_PROPERTIES::UpdateField().

◆ 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 240 of file confirm.cpp.

242{
243 switch( UnsavedChangesDialog( aParent, aMessage ) )
244 {
245 case wxID_YES: return aSaveFunction();
246 case wxID_NO: return true;
247 default:
248 case wxID_CANCEL: return false;
249 }
250}
int UnsavedChangesDialog(wxWindow *parent, const wxString &aMessage, bool *aApplyToAll)
A specialized version of HandleUnsavedChanges which handles an apply-to-all checkbox.
Definition: confirm.cpp:177

References UnsavedChangesDialog().

Referenced by SCH_EDIT_FRAME::AskToSaveChanges(), FOOTPRINT_EDIT_FRAME::CanCloseFPFromBoard(), CVPCB_MAINFRAME::canCloseWindow(), SCH_EDIT_FRAME::canCloseWindow(), PL_EDITOR_FRAME::canCloseWindow(), PCB_EDIT_FRAME::canCloseWindow(), SIM_PLOT_FRAME::canCloseWindow(), FOOTPRINT_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_SYMBOL_FIELDS_TABLE::OnClose(), DIALOG_LIB_EDIT_PIN_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 342 of file confirm.cpp.

343{
344 // wxMessageDialog no longer responds correctly to the <ESC> key (on at least OSX and MSW)
345 // so we're now using wxRichMessageDialog.
346 //
347 // Note also that we have to repurpose an OK/Cancel version of it because otherwise wxWidgets
348 // uses "destructive" spacing for the "No" button.
349
350#ifdef __APPLE__
351 // Why is wxICON_QUESTION a light-bulb on Mac? That has more of a hint or info connotation.
352 int icon = wxICON_WARNING;
353#else
354 int icon = wxICON_QUESTION;
355#endif
356
357 wxRichMessageDialog dlg( aParent, aMessage, _( "Confirmation" ),
358 wxOK | wxCANCEL | wxOK_DEFAULT | wxCENTRE | icon | wxSTAY_ON_TOP );
359
360 dlg.SetOKCancelLabels( _( "Yes" ), _( "No" ) );
361
362
363 return dlg.ShowModal() == wxID_OK;
364}

References _.

Referenced by PANEL_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(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), 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_SYMBOL_FIELDS_TABLE::OnRemoveField(), DIALOG_SHEET_PROPERTIES::onSheetFilenameChanged(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), CVPCB_MAINFRAME::readNetListAndFpFiles(), SCH_EDIT_FRAME::ReadyToNetlist(), DIALOG_BOARD_REANNOTATE::ReannotateBoard(), SCH_EDITOR_CONTROL::Revert(), 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 253 of file confirm.cpp.

256{
257 wxRichMessageDialog dlg( aParent, aMessage, aWarning,
258 wxOK | wxCANCEL | wxOK_DEFAULT | wxICON_WARNING | wxCENTER );
259
260 dlg.SetOKCancelLabels( ( aOKLabel.IsEmpty() ) ? _( "OK" ) : aOKLabel,
261 ( aCancelLabel.IsEmpty() ) ? _( "Cancel" ) : aCancelLabel );
262
263 if( !aDetailedMessage.IsEmpty() )
264 dlg.SetExtendedMessage( aDetailedMessage );
265
266 if( aApplyToAll )
267 dlg.ShowCheckBox( _( "Apply to all" ), true );
268
269 int ret = dlg.ShowModal();
270
271 if( aApplyToAll )
272 *aApplyToAll = dlg.IsCheckBoxChecked();
273
274 // Returns wxID_OK or wxID_CANCEL
275 return ret;
276}

References _.

Referenced by PANEL_FP_LIB_TABLE::browseLibrariesHandler(), PANEL_SYM_LIB_TABLE::browseLibrariesHandler(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), 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 155 of file confirm.cpp.

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

References _.

Referenced by SCH_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::OpenProjectFiles(), and PCB_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 367 of file confirm.cpp.

369{
370 wxSingleChoiceDialog dlg( aParent, aMessage, aTitle, aOptions );
371
372 if( dlg.ShowModal() != wxID_OK )
373 return -1;
374
375 return dlg.GetSelection();
376}

◆ UnsavedChangesDialog() [1/2]

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

Definition at line 203 of file confirm.cpp.

204{
205#ifdef __APPLE__
206 // wxMessageDialog gets the button order (and spacing) wrong on Mac so we have to use
207 // wxRichMessageDialog.
208 return UnsavedChangesDialog( parent, aMessage, nullptr );
209#else
210 #ifdef _WIN32
211 // wxMessageDialog on windows invokes TaskDialogIndirect which is a native function for a dialog
212 // As a result it skips wxWidgets for modal management...and we don't parent frames properly
213 // among other things for Windows to do the right thing by default
214 // Disable all the windows manually to avoid being able to hit this dialog from the tool frame and kicad frame at the same time
215 wxWindowDisabler disable( true );
216 #endif
217
218 wxMessageDialog dlg( parent, aMessage, _( "Save Changes?" ),
219 wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxICON_WARNING | wxCENTER );
220 dlg.SetExtendedMessage( _( "If you don't save, all your changes will be permanently lost." ) );
221 dlg.SetYesNoLabels( _( "Save" ), _( "Discard Changes" ) );
222
223 // Returns wxID_YES, wxID_NO, or wxID_CANCEL
224 return dlg.ShowModal();
225#endif
226}

References _, and UnsavedChangesDialog().

◆ UnsavedChangesDialog() [2/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 177 of file confirm.cpp.

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

References _.

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