(self)
Return frame of widgets for Shell/Ed tab.

        Enable users to provisionally change shell and editor options.
        Function load_shed_cfg initializes tk variables using idleConf.
        Entry box auto_squeeze_min_lines_int sets
        auto_squeeze_min_lines_int.  Setting var_name invokes the
        default callback that adds option to changes.

        Widgets for ShedPage(Frame):  (*) widgets bound to self
            frame_shell: LabelFrame
                frame_auto_squeeze_min_lines: Frame
                    auto_squeeze_min_lines_title: Label
                    (*)auto_squeeze_min_lines_int: Entry -
                       auto_squeeze_min_lines
            frame_editor: LabelFrame
                frame_save: Frame
                    run_save_title: Label
                    (*)save_ask_on: Radiobutton - autosave
                    (*)save_auto_on: Radiobutton - autosave
                frame_format: Frame
                    format_width_title: Label
                    (*)format_width_int: Entry - format_width
                frame_line_numbers_default: Frame
                    line_numbers_default_title: Label
                    (*)line_numbers_default_bool: Checkbutton - line_numbers_default
                frame_context: Frame
                    context_title: Label
                    (*)context_int: Entry - context_lines
Return frame of widgets for Shell/Ed tab.
Return frame of widgets for Shell / Ed tab .
def create_page_shed(self):
        """Return frame of widgets for Shell/Ed tab.

        Enable users to provisionally change shell and editor options.
        Function load_shed_cfg initializes tk variables using idleConf.
        Entry box auto_squeeze_min_lines_int sets
        auto_squeeze_min_lines_int.  Setting var_name invokes the
        default callback that adds option to changes.

        Widgets for ShedPage(Frame):  (*) widgets bound to self
            frame_shell: LabelFrame
                frame_auto_squeeze_min_lines: Frame
                    auto_squeeze_min_lines_title: Label
                    (*)auto_squeeze_min_lines_int: Entry -
                       auto_squeeze_min_lines
            frame_editor: LabelFrame
                frame_save: Frame
                    run_save_title: Label
                    (*)save_ask_on: Radiobutton - autosave
                    (*)save_auto_on: Radiobutton - autosave
                frame_format: Frame
                    format_width_title: Label
                    (*)format_width_int: Entry - format_width
                frame_line_numbers_default: Frame
                    line_numbers_default_title: Label
                    (*)line_numbers_default_bool: Checkbutton - line_numbers_default
                frame_context: Frame
                    context_title: Label
                    (*)context_int: Entry - context_lines
        """
        # Integer values need StringVar because int('') raises.
        self.auto_squeeze_min_lines = tracers.add(
                StringVar(self), ('main', 'PyShell', 'auto-squeeze-min-lines'))

        self.autosave = tracers.add(
                IntVar(self), ('main', 'General', 'autosave'))
        self.line_numbers_default = tracers.add(
                BooleanVar(self),
                ('main', 'EditorWindow', 'line-numbers-default'))
        self.context_lines = tracers.add(
                StringVar(self), ('extensions', 'CodeContext', 'maxlines'))

        # Create widgets:
        frame_shell = LabelFrame(self, borderwidth=2, relief=GROOVE,
                                 text=' Shell Preferences')
        frame_editor = LabelFrame(self, borderwidth=2, relief=GROOVE,
                                  text=' Editor Preferences')
        # Frame_shell.
        frame_auto_squeeze_min_lines = Frame(frame_shell, borderwidth=0)
        auto_squeeze_min_lines_title = Label(frame_auto_squeeze_min_lines,
                                             text='Auto-Squeeze Min. Lines:')
        self.auto_squeeze_min_lines_int = Entry(
                frame_auto_squeeze_min_lines, width=4,
                textvariable=self.auto_squeeze_min_lines,
                validatecommand=self.digits_only, validate='key',
        )
        # Frame_editor.
        frame_save = Frame(frame_editor, borderwidth=0)
        run_save_title = Label(frame_save, text='At Start of Run (F5)  ')

        self.save_ask_on = Radiobutton(
                frame_save, variable=self.autosave, value=0,
                text="Prompt to Save")
        self.save_auto_on = Radiobutton(
                frame_save, variable=self.autosave, value=1,
                text='No Prompt')

        frame_line_numbers_default = Frame(frame_editor, borderwidth=0)
        line_numbers_default_title = Label(
            frame_line_numbers_default, text='Show line numbers in new windows')
        self.line_numbers_default_bool = Checkbutton(
                frame_line_numbers_default,
                variable=self.line_numbers_default,
                width=1)

        frame_context = Frame(frame_editor, borderwidth=0)
        context_title = Label(frame_context, text='Max Context Lines :')
        self.context_int = Entry(
                frame_context, textvariable=self.context_lines, width=3,
                validatecommand=self.digits_only, validate='key',
        )

        # Pack widgets:
        frame_shell.pack(side=TOP, padx=5, pady=5, fill=BOTH)
        Label(self).pack()  # Spacer -- better solution?
        frame_editor.pack(side=TOP, padx=5, pady=5, fill=BOTH)
        # frame_auto_squeeze_min_lines
        frame_auto_squeeze_min_lines.pack(side=TOP, padx=5, pady=0, fill=X)
        auto_squeeze_min_lines_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
        self.auto_squeeze_min_lines_int.pack(side=TOP, padx=5, pady=5)
        # frame_save.
        frame_save.pack(side=TOP, padx=5, pady=0, fill=X)
        run_save_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
        self.save_auto_on.pack(side=RIGHT, anchor=W, padx=5, pady=5)
        self.save_ask_on.pack(side=RIGHT, anchor=W, padx=5, pady=5)
        # frame_line_numbers_default.
        frame_line_numbers_default.pack(side=TOP, padx=5, pady=0, fill=X)
        line_numbers_default_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
        self.line_numbers_default_bool.pack(side=LEFT, padx=5, pady=5)
        # frame_context.
        frame_context.pack(side=TOP, padx=5, pady=0, fill=X)
        context_title.pack(side=LEFT, anchor=W, padx=5, pady=5)
        self.context_int.pack(side=TOP, padx=5, pady=5)
def create_page_shed ( self ) : # Integer values need StringVar because int('') raises. self . auto_squeeze_min_lines = tracers . add ( StringVar ( self ) , ( 'main' , 'PyShell' , 'auto-squeeze-min-lines' ) ) self . autosave = tracers . add ( IntVar ( self ) , ( 'main' , 'General' , 'autosave' ) ) self . line_numbers_default = tracers . add ( BooleanVar ( self ) , ( 'main' , 'EditorWindow' , 'line-numbers-default' ) ) self . context_lines = tracers . add ( StringVar ( self ) , ( 'extensions' , 'CodeContext' , 'maxlines' ) ) # Create widgets: frame_shell = LabelFrame ( self , borderwidth = 2 , relief = GROOVE , text = ' Shell Preferences' ) frame_editor = LabelFrame ( self , borderwidth = 2 , relief = GROOVE , text = ' Editor Preferences' ) # Frame_shell. frame_auto_squeeze_min_lines = Frame ( frame_shell , borderwidth = 0 ) auto_squeeze_min_lines_title = Label ( frame_auto_squeeze_min_lines , text = 'Auto-Squeeze Min. Lines:' ) self . auto_squeeze_min_lines_int = Entry ( frame_auto_squeeze_min_lines , width = 4 , textvariable = self . auto_squeeze_min_lines , validatecommand = self . digits_only , validate = 'key' , ) # Frame_editor. frame_save = Frame ( frame_editor , borderwidth = 0 ) run_save_title = Label ( frame_save , text = 'At Start of Run (F5)  ' ) self . save_ask_on = Radiobutton ( frame_save , variable = self . autosave , value = 0 , text = "Prompt to Save" ) self . save_auto_on = Radiobutton ( frame_save , variable = self . autosave , value = 1 , text = 'No Prompt' ) frame_line_numbers_default = Frame ( frame_editor , borderwidth = 0 ) line_numbers_default_title = Label ( frame_line_numbers_default , text = 'Show line numbers in new windows' ) self . line_numbers_default_bool = Checkbutton ( frame_line_numbers_default , variable = self . line_numbers_default , width = 1 ) frame_context = Frame ( frame_editor , borderwidth = 0 ) context_title = Label ( frame_context , text = 'Max Context Lines :' ) self . context_int = Entry ( frame_context , textvariable = self . context_lines , width = 3 , validatecommand = self . digits_only , validate = 'key' , ) # Pack widgets: frame_shell . pack ( side = TOP , padx = 5 , pady = 5 , fill = BOTH ) Label ( self ) . pack ( ) # Spacer -- better solution? frame_editor . pack ( side = TOP , padx = 5 , pady = 5 , fill = BOTH ) # frame_auto_squeeze_min_lines frame_auto_squeeze_min_lines . pack ( side = TOP , padx = 5 , pady = 0 , fill = X ) auto_squeeze_min_lines_title . pack ( side = LEFT , anchor = W , padx = 5 , pady = 5 ) self . auto_squeeze_min_lines_int . pack ( side = TOP , padx = 5 , pady = 5 ) # frame_save. frame_save . pack ( side = TOP , padx = 5 , pady = 0 , fill = X ) run_save_title . pack ( side = LEFT , anchor = W , padx = 5 , pady = 5 ) self . save_auto_on . pack ( side = RIGHT , anchor = W , padx = 5 , pady = 5 ) self . save_ask_on . pack ( side = RIGHT , anchor = W , padx = 5 , pady = 5 ) # frame_line_numbers_default. frame_line_numbers_default . pack ( side = TOP , padx = 5 , pady = 0 , fill = X ) line_numbers_default_title . pack ( side = LEFT , anchor = W , padx = 5 , pady = 5 ) self . line_numbers_default_bool . pack ( side = LEFT , padx = 5 , pady = 5 ) # frame_context. frame_context . pack ( side = TOP , padx = 5 , pady = 0 , fill = X ) context_title . pack ( side = LEFT , anchor = W , padx = 5 , pady = 5 ) self . context_int . pack ( side = TOP , padx = 5 , pady = 5 )