docs: def set_contrast_levels(self, contrast_level=None):
          """enhance contrast levels, or use full data range
          according to value of self.panel.conf.contrast_level
          """
          if contrast_level is None:
              clevel = self.contrast_panel.choice.GetStringSelection()
              if clevel == 'None':
                  contrast_level = 0
              else:
                  contrast_level = float(clevel)
  
          conf = self.panel.conf
          img  = self.panel.conf.data
          if contrast_level is None:
              contrast_level = 0
          conf.contrast_level = contrast_level
          clevels = [contrast_level, 100.0-contrast_level]
  
          if len(img.shape) == 2: # intensity map
              col = 0
              jmin = imin = img.min()
              jmax = imax = img.max()
              self.cmap_panels[col].imin_val.SetValue('%.4g' % imin)
              self.cmap_panels[col].imax_val.SetValue('%.4g' % imax)
  
              jmin, jmax = np.percentile(img, clevels)
              if imax == imin:
                  imax = imin + 0.5
              conf.cmap_lo[col] = xlo = (jmin-imin)*conf.cmap_range/(imax-imin)
              conf.cmap_hi[col] = xhi = (jmax-imin)*conf.cmap_range/(imax-imin)
  
  
              self.cmap_panels[col].cmap_hi.SetValue(xhi)
              self.cmap_panels[col].cmap_lo.SetValue(xlo)
              self.cmap_panels[col].islider_range.SetLabel('Shown: [ %.4g :  %.4g ]' % (jmin, jmax))
              self.cmap_panels[col].redraw_cmap()
  
          if len(img.shape) == 3: # rgb map
              for ix in range(3):
                  jmin = imin = img[:,:,ix].min()
                  jmax = imax = img[:,:,ix].max()
                  self.cmap_panels[ix].imin_val.SetValue('%.4g' % imin)
                  self.cmap_panels[ix].imax_val.SetValue('%.4g' % imax)
  
                  jmin, jmax = np.percentile(img[:,:,ix], clevels)
                  if imax == imin:
                      imax = imin + 0.5
                  conf.cmap_lo[ix] = xlo = (jmin-imin)*conf.cmap_range/(imax-imin)
                  conf.cmap_hi[ix] = xhi = (jmax-imin)*conf.cmap_range/(imax-imin)
                  self.cmap_panels[ix].cmap_hi.SetValue(xhi)
                  self.cmap_panels[ix].cmap_lo.SetValue(xlo)
  
                  self.cmap_panels[ix].islider_range.SetLabel('Shown: [ %.4g :  %.4g ]' % (jmin, jmax))
                  self.cmap_panels[ix].redraw_cmap()
          self.panel.redraw()