code: def on_add_cols(self, event):
          
          col_labels = self.grid.col_labels
          dia = pw.ChooseOne(self, yes="Add single columns", no="Add groups")
          result1 = dia.ShowModal()
          if result1 == wx.ID_CANCEL:
              return
          elif result1 == wx.ID_YES:
              items = sorted([col_name for col_name in self.dm.index if col_name not in col_labels])
              dia = pw.HeaderDialog(self, 'columns to add',
                                    items1=list(items), groups=[])
              dia.Centre()
              result2 = dia.ShowModal()
          else:
              groups = self.dm['group'].unique()
              dia = pw.HeaderDialog(self, 'groups to add',
                                    items1=list(groups), groups=True)
              dia.Centre()
              result2 = dia.ShowModal()
          new_headers = []
          if result2 == 5100:
              new_headers = dia.text_list
          # if there is nothing to add, quit
          if not new_headers:
              return
          if result1 == wx.ID_YES:
              # add individual headers
              errors = self.add_new_grid_headers(new_headers)
          else:
              # add header groups
              errors = self.add_new_header_groups(new_headers)
          if errors:
              errors_str = ', '.join(errors)
              pw.simple_warning('You are already using the following headers: {}\nSo they will not be added'.format(errors_str))
  
          # problem: if widgets above the grid are too wide,
          # the grid does not re-size when adding columns
          # awkward solution (causes flashing):
          if self.grid.GetWindowStyle() != wx.DOUBLE_BORDER:
              self.grid.SetWindowStyle(wx.DOUBLE_BORDER)
          self.main_sizer.Fit(self)
          self.grid.SetWindowStyle(wx.NO_BORDER)
          self.Centre()
          self.main_sizer.Fit(self)
          #
          self.grid.changes = set(range(self.grid.GetNumberRows()))
          dia.Destroy()
docs: Show simple dialog that allows user to add a new column name