def on_add_cols(self, event):
        """
        Show simple dialog that allows user to add a new column name
        """
        col_labels = self.grid.col_labels
        # do not list headers that are already column labels in the grid
        er_items = [head for head in self.grid_headers[self.grid_type]['er'][2] if head not in col_labels]
        # remove unneeded headers
        er_items = builder.remove_list_headers(er_items)
        pmag_headers = sorted(list(set(self.grid_headers[self.grid_type]['pmag'][2]).union(self.grid_headers[self.grid_type]['pmag'][1])))
        # do not list headers that are already column labels in the grid
        # make sure that pmag_specific columns are marked with '++'
        to_add = [i + '++' for i in self.er_magic.double if i in pmag_headers and i + '++' not in col_labels]
        pmag_headers.extend(to_add)
        pmag_items = [head for head in pmag_headers if head not in er_items and head not in col_labels]
        # remove unneeded headers
        pmag_items = sorted(builder.remove_list_headers(pmag_items))
        dia = pw.HeaderDialog(self, 'columns to add', items1=er_items, items2=pmag_items)
        dia.Centre()
        result = dia.ShowModal()
        new_headers = []
        if result == 5100:
            new_headers = dia.text_list
        if not new_headers:
            return
        errors = self.add_new_grid_headers(new_headers, er_items, pmag_items)
        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()