code: def _set_aspect_cb(self):
          
          wd, ht = self.get_wdht()
          aspect = self.get_aspect()
          if aspect is not None:
              wd, ht = self.calc_size_aspect(wd, ht, aspect)
              self.shot_generator.configure_surface(wd, ht)
              self._sg_wd, self._sg_ht = wd, ht
              self.w.width.set_text(str(wd))
              self.w.height.set_text(str(ht))
  
          self._sg_aspect = aspect
docs: This function is called when the user enters a value into the
          'Aspect' entry field.  (this is only possible when 'Lock aspect' is
          checked)
  
          We calculate the width or aspect, depending on whether 'Lock aspect'
          is checked and update the shot generator viewer and UI.