code: def makeTextFrame(self, root):
      self.text_frame = text_frame = Frame(root)
      self.text = text = Text(
          text_frame, name="text", padx=5, wrap="none", width=45
      )
      color_config(text)
  
      self.vbar = vbar = Scrollbar(text_frame, name="vbar")
      vbar["command"] = text.yview
      vbar.pack(side=LEFT, fill=Y)
      self.hbar = hbar = Scrollbar(
          text_frame, name="hbar", orient=HORIZONTAL
      )
      hbar["command"] = text.xview
      hbar.pack(side=BOTTOM, fill=X)
      text["yscrollcommand"] = vbar.set
      text["xscrollcommand"] = hbar.set
  
      text["font"] = tuple(txtfont)
      shortcut = "Command" if darwin else "Control"
      text.bind_all("<%s-minus>" % shortcut, self.decrease_size)
      text.bind_all("<%s-underscore>" % shortcut, self.decrease_size)
      text.bind_all("<%s-equal>" % shortcut, self.increase_size)
      text.bind_all("<%s-plus>" % shortcut, self.increase_size)
      text.bind("<Control-MouseWheel>", self.update_mousewheel)
      text.bind("<Control-Button-4>", self.increase_size)
      text.bind("<Control-Button-5>", self.decrease_size)
  
      text.pack(side=LEFT, fill=BOTH, expand=1)
      return text_frame
  
imports: import sys
  import os
  from tkinter import *
  from idlelib.colorizer import ColorDelegator, color_config
  from idlelib.percolator import Percolator
  from idlelib.textview import view_text
  from turtledemo import __doc__
  import turtle
label_desc: Use image node_id 3 for calling the DemoWindow obj's underlying member method code with example usage: obj.makeTextFrame(root) and returns: text_frame