back in harness on new config system
diff --git a/Lib/idlelib/Bindings.py b/Lib/idlelib/Bindings.py
index 1bb926d..7baa913 100644
--- a/Lib/idlelib/Bindings.py
+++ b/Lib/idlelib/Bindings.py
@@ -50,6 +50,11 @@
    ('!_Debugger', '<<toggle-debugger>>'),
    ('!_Auto-open stack viewer', '<<toggle-jit-stack-viewer>>' ),
   ]),
+# ('settings', [
+#   ('_Configure Idle...', '<<open-config-dialog>>'),
+#   None,
+#   ('Revert to _Default Settings', '<<revert-all-settings>>'),
+#  ]),
  ('help', [
    ('_IDLE Help...', '<<help>>'),
    ('Python _Documentation...', '<<python-docs>>'),
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index ed90d27..2fe1810 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -17,7 +17,7 @@
 import idlever
 import WindowList
 from IdleConf import idleconf
-import aboutDialog, textView
+import aboutDialog, textView, configDialog
 
 # The default tab setting for a Text widget, in average-width characters.
 TK_TABWIDTH_DEFAULT = 8
@@ -123,6 +123,7 @@
         text.bind("<<view-readme>>", self.view_readme)
         text.bind("<<python-docs>>", self.python_docs)
         text.bind("<<about-idle>>", self.about_dialog)
+        text.bind("<<open-config-dialog>>", self.config_dialog)
         text.bind("<<open-module>>", self.open_module)
         text.bind("<<do-nothing>>", lambda event: "break")
         text.bind("<<select-all>>", self.select_all)
@@ -220,6 +221,7 @@
         ("edit", "_Edit"),
         ("format", "F_ormat"),
         ("run", "_Run"),
+        #("settings", "_Settings"),
         ("windows", "_Windows"),
         ("help", "_Help"),
     ]
@@ -278,6 +280,9 @@
     def about_dialog(self, event=None):
         aboutDialog.AboutDialog(self.top,'About IDLEfork')
         
+    def config_dialog(self, event=None):
+        configDialog.ConfigDialog(self.top,'Settings')
+        
     def good_advice(self, event=None):
         tkMessageBox.showinfo('Advice', "Don't Panic!", master=self.text)
 
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index f349bd6..5037806 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -328,7 +328,7 @@
 
     # Override menu bar specs
     menu_specs = PyShellEditorWindow.menu_specs[:]
-    menu_specs.insert(len(menu_specs)-2, ("debug", "_Debug"))
+    menu_specs.insert(len(menu_specs)-3, ("debug", "_Debug"))
 
     # New classes
     from IdleHistory import History
diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
index c5953af..384f1b0 100644
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -17,10 +17,7 @@
     """
     configuration dialog for idle
     """ 
-    def __init__(self,parent,title,configDict):
-        """
-        configDict - dictionary of configuration items
-        """
+    def __init__(self,parent,title):
         Toplevel.__init__(self, parent)
         self.configure(borderwidth=5)
         self.geometry("+%d+%d" % (parent.winfo_rootx()+20,
@@ -160,6 +157,18 @@
             self.radioFg.config(state=NORMAL)
             self.radioBg.config(state=NORMAL)
             self.fgHilite.set(1) #default to setting foreground attribute
+        self.SetColourSample()
+    
+    def SetColourSampleBinding(self,*args):
+        self.SetColourSample()
+        
+    def SetColourSample(self):
+        #set the colour smaple area
+        tag=self.themeElements[self.highlightTarget.get()][0]
+        if self.fgHilite.get(): plane='foreground'
+        else: plane='background'
+        colour=self.textHighlightSample.tag_cget(tag,plane)
+        self.frameColourSet.config(bg=colour)
     
     def CreateWidgets(self):
         self.framePages = Frame(self)
@@ -175,7 +184,7 @@
         self.buttonCancel = Button(frameActionButtons,text='Cancel',
                 command=self.Cancel,takefocus=FALSE)
         #page buttons
-        self.pageNum=IntVar()
+        self.pageNum=IntVar(self)
         self.pageNum.set(0)
         pageButtonNames=('Fonts/Tabs','Highlighting','Keys','General')
         self.pageButtons=[]
@@ -211,11 +220,11 @@
         
     def CreatePageFontTab(self):
         #tkVars
-        self.fontSize=StringVar()
-        self.fontBold=StringVar()
-        self.spaceNum=IntVar()
-        self.tabCols=IntVar()
-        self.indentType=IntVar() 
+        self.fontSize=StringVar(self)
+        self.fontBold=StringVar(self)
+        self.spaceNum=IntVar(self)
+        self.tabCols=IntVar(self)
+        self.indentType=IntVar(self) 
         self.editFont=tkFont.Font(self,('courier',12,'normal'))
         ##widget creation
         #body frame
@@ -295,13 +304,13 @@
         return frame
 
     def CreatePageHighlight(self):
-        self.builtinTheme=StringVar()
-        self.customTheme=StringVar()
-        self.fgHilite=IntVar()
-        self.colour=StringVar()
-        self.fontName=StringVar()
-        self.themeIsBuiltin=IntVar() 
-        self.highlightTarget=StringVar()
+        self.builtinTheme=StringVar(self)
+        self.customTheme=StringVar(self)
+        self.fgHilite=IntVar(self)
+        self.colour=StringVar(self)
+        self.fontName=StringVar(self)
+        self.themeIsBuiltin=IntVar(self) 
+        self.highlightTarget=StringVar(self)
         self.highlightTarget.trace_variable('w',self.SetHighlightTargetBinding)
         ##widget creation
         #body frame
@@ -340,9 +349,9 @@
         self.optMenuHighlightTarget=DynOptionMenu(self.frameColourSet,
             self.highlightTarget,None,highlightthickness=0)#,command=self.SetHighlightTargetBinding
         self.radioFg=Radiobutton(frameFgBg,variable=self.fgHilite,
-            value=1,text='Foreground')#,command=self.SetFgBg
+            value=1,text='Foreground',command=self.SetColourSampleBinding)
         self.radioBg=Radiobutton(frameFgBg,variable=self.fgHilite,
-            value=0,text='Background')#,command=self.SetFgBg
+            value=0,text='Background',command=self.SetColourSampleBinding)
         self.fgHilite.set(1)
         buttonSaveCustomTheme=Button(frameCustom, 
             text='Save as a Custom Theme')
@@ -385,14 +394,14 @@
 
     def CreatePageKeys(self):
         #tkVars
-        self.bindingTarget=StringVar()
-        self.builtinKeys=StringVar()
-        self.customKeys=StringVar()
-        self.keyChars=StringVar()
-        self.keyCtrl=StringVar()
-        self.keyAlt=StringVar()
-        self.keyShift=StringVar()
-        self.keysAreDefault=IntVar() 
+        self.bindingTarget=StringVar(self)
+        self.builtinKeys=StringVar(self)
+        self.customKeys=StringVar(self)
+        self.keyChars=StringVar(self)
+        self.keyCtrl=StringVar(self)
+        self.keyAlt=StringVar(self)
+        self.keyShift=StringVar(self)
+        self.keysAreDefault=IntVar(self) 
         ##widget creation
         #body frame
         frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
@@ -460,10 +469,10 @@
 
     def CreatePageGeneral(self):
         #tkVars        
-        self.runType=IntVar()       
-        self.winWidth=StringVar()       
-        self.winHeight=StringVar()
-        self.extState=IntVar()       
+        self.runType=IntVar(self)       
+        self.winWidth=StringVar(self)       
+        self.winHeight=StringVar(self)
+        self.extState=IntVar(self)       
         #widget creation
         #body
         frame=Frame(self.framePages,borderwidth=2,relief=RAISED)
@@ -663,5 +672,5 @@
     #test the dialog
     root=Tk()
     Button(root,text='Dialog',
-            command=lambda:ConfigDialog(root,'Settings',None)).pack()
+            command=lambda:ConfigDialog(root,'Settings')).pack()
     root.mainloop()