docs: void callOnClose() {
          if (projectChanged && !SystemProperties.getBoolean("findbugs.skipSaveChangesWarning")) {
              Object[] options = {
                      L10N.getLocalString("dlg.save_btn", "Save"),
                      L10N.getLocalString("dlg.dontsave_btn", "Don't Save"),
                      L10N.getLocalString("dlg.cancel_btn", "Cancel"),
              };
              int value = JOptionPane.showOptionDialog(this, getActionWithoutSavingMsg("closing"),
                      L10N.getLocalString("msg.confirm_save_txt", "Do you want to save?"),
                      JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
  
              if (value == 2 || value == JOptionPane.CLOSED_OPTION) {
                  return;
              } else if (value == 0) {
  
                  if (saveFile == null) {
                      if (!mainFrameLoadSaveHelper.saveAs()) {
                          return;
                      }
                  } else {
                      mainFrameLoadSaveHelper.save();
                  }
              }
          }
  
          GUISaveState guiSaveState = GUISaveState.getInstance();
          guiLayout.saveState();
          guiSaveState.setFrameBounds(getBounds());
          guiSaveState.setExtendedWindowState(getExtendedState());
          guiSaveState.save();
          System.exit(0);
      }