code: def fold_all(self):
          
  
          line_count = self.GetLineCount()
          expanding = True
  
          # find out if we are folding or unfolding
          for line_num in range(line_count):
              if self.GetFoldLevel(line_num) & stc.STC_FOLDLEVELHEADERFLAG:
                  expanding = not self.GetFoldExpanded(line_num)
                  break
  
          line_num = 0
  
          while line_num < line_count:
              level = self.GetFoldLevel(line_num)
              if level & stc.STC_FOLDLEVELHEADERFLAG and \
                 (level & stc.STC_FOLDLEVELNUMBERMASK) == stc.STC_FOLDLEVELBASE:
  
                  if expanding:
                      self.SetFoldExpanded(line_num, True)
                      line_num = self.expand(line_num, True)
                      line_num = line_num - 1
                  else:
                      last_child = self.GetLastChild(line_num, -1)
                      self.SetFoldExpanded(line_num, False)
  
                      if last_child > line_num:
                          self.HideLines(line_num + 1, last_child)
  
              line_num = line_num + 1
docs: Folds/unfolds all levels in the editor