[Python-checkins] python/dist/src/Lib/idlelib Bindings.py, 1.19, 1.20 EditorWindow.py, 1.57, 1.58 extend.txt, 1.4, 1.5

kbk at users.sourceforge.net kbk at users.sourceforge.net
Fri Apr 23 23:01:50 EDT 2004


Update of /cvsroot/python/python/dist/src/Lib/idlelib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8492

Modified Files:
	Bindings.py EditorWindow.py extend.txt 
Log Message:
1. Polish variables in EditorWindow extension loading and Tkinter variable code.
2. Add exception handling to EditorWindow Tkinter variable setvar() and getvar() fcns.
3. EditorWindow: remove some unneeded comments.
4. Add a separator to the Options menu
5. extend.txt: describe how to create a menu entry which has no keybinding.

M Bindings.py
M EditorWindow.py
M extend.txt


Index: Bindings.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/Bindings.py,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** Bindings.py	12 Jun 2003 04:03:48 -0000	1.19
--- Bindings.py	24 Apr 2004 03:01:48 -0000	1.20
***************
*** 71,74 ****
--- 71,75 ----
   ('options', [
     ('_Configure IDLE...', '<<open-config-dialog>>'),
+    None,
     ]),
   ('help', [

Index: EditorWindow.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/EditorWindow.py,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** EditorWindow.py	11 Apr 2004 03:16:07 -0000	1.57
--- EditorWindow.py	24 Apr 2004 03:01:48 -0000	1.58
***************
*** 47,51 ****
      from MultiStatusBar import MultiStatusBar
  
-     vars = {}
      help_url = None
  
--- 47,50 ----
***************
*** 79,86 ****
          self.top = top = self.Toplevel(root, menu=self.menubar)
          if flist:
!             self.vars = flist.vars
              #self.top.instance_dict makes flist.inversedict avalable to
              #configDialog.py so it can access all EditorWindow instaces
              self.top.instance_dict=flist.inversedict
          self.recent_files_path=os.path.join(idleConf.GetUserCfgDir(),
                  'recent-files.lst')
--- 78,88 ----
          self.top = top = self.Toplevel(root, menu=self.menubar)
          if flist:
!             self.tkinter_vars = flist.vars
              #self.top.instance_dict makes flist.inversedict avalable to
              #configDialog.py so it can access all EditorWindow instaces
              self.top.instance_dict=flist.inversedict
+         else:
+             self.tkinter_vars = {}  # keys: Tkinter event names
+                                     # values: Tkinter variable instances
          self.recent_files_path=os.path.join(idleConf.GetUserCfgDir(),
                  'recent-files.lst')
***************
*** 554,561 ****
                                  event=menuEventDict[menubarItem][itemName]
                          if event:
-                             #print 'accel was:',accel
                              accel=get_accelerator(keydefs, event)
                              menu.entryconfig(index,accelerator=accel)
-                             #print 'accel now:',accel,'\n'
  
      def reset_help_menu_entries(self):
--- 556,561 ----
***************
*** 712,716 ****
  
      def _close(self):
-         #print self.io.filename
          if self.io.filename:
              self.update_recent_files_list(new_file=self.io.filename)
--- 712,715 ----
***************
*** 728,732 ****
              self.color.close(doh) # Cancel colorization
          self.text = None
!         self.vars = None
          self.per.close(); self.per = None
          if not colorizing:
--- 727,731 ----
              self.color.close(doh) # Cancel colorization
          self.text = None
!         self.tkinter_vars = None
          self.per.close(); self.per = None
          if not colorizing:
***************
*** 785,817 ****
                  text.event_add(event, *keylist)
  
!     def fill_menus(self, defs=None, keydefs=None):
          """Add appropriate entries to the menus and submenus
  
          Menus that are absent or None in self.menudict are ignored.
          """
!         if defs is None:
!             defs = self.Bindings.menudefs
          if keydefs is None:
              keydefs = self.Bindings.default_keydefs
          menudict = self.menudict
          text = self.text
!         for mname, itemlist in defs:
              menu = menudict.get(mname)
              if not menu:
                  continue
!             for item in itemlist:
!                 if not item:
                      menu.add_separator()
                  else:
!                     label, event = item
                      checkbutton = (label[:1] == '!')
                      if checkbutton:
                          label = label[1:]
                      underline, label = prepstr(label)
!                     accelerator = get_accelerator(keydefs, event)
!                     def command(text=text, event=event):
!                         text.event_generate(event)
                      if checkbutton:
!                         var = self.getrawvar(event, BooleanVar)
                          menu.add_checkbutton(label=label, underline=underline,
                              command=command, accelerator=accelerator,
--- 784,816 ----
                  text.event_add(event, *keylist)
  
!     def fill_menus(self, menudefs=None, keydefs=None):
          """Add appropriate entries to the menus and submenus
  
          Menus that are absent or None in self.menudict are ignored.
          """
!         if menudefs is None:
!             menudefs = self.Bindings.menudefs
          if keydefs is None:
              keydefs = self.Bindings.default_keydefs
          menudict = self.menudict
          text = self.text
!         for mname, entrylist in menudefs:
              menu = menudict.get(mname)
              if not menu:
                  continue
!             for entry in entrylist:
!                 if not entry:
                      menu.add_separator()
                  else:
!                     label, eventname = entry
                      checkbutton = (label[:1] == '!')
                      if checkbutton:
                          label = label[1:]
                      underline, label = prepstr(label)
!                     accelerator = get_accelerator(keydefs, eventname)
!                     def command(text=text, eventname=eventname):
!                         text.event_generate(eventname)
                      if checkbutton:
!                         var = self.get_var_obj(eventname, BooleanVar)
                          menu.add_checkbutton(label=label, underline=underline,
                              command=command, accelerator=accelerator,
***************
*** 823,839 ****
  
      def getvar(self, name):
!         var = self.getrawvar(name)
          if var:
!             return var.get()
  
      def setvar(self, name, value, vartype=None):
!         var = self.getrawvar(name, vartype)
          if var:
              var.set(value)
  
!     def getrawvar(self, name, vartype=None):
!         var = self.vars.get(name)
          if not var and vartype:
!             self.vars[name] = var = vartype(self.text)
          return var
  
--- 822,844 ----
  
      def getvar(self, name):
!         var = self.get_var_obj(name)
          if var:
!             value = var.get()
!             return value
!         else:
!             raise NameError, name
  
      def setvar(self, name, value, vartype=None):
!         var = self.get_var_obj(name, vartype)
          if var:
              var.set(value)
+         else:
+             raise NameError, name
  
!     def get_var_obj(self, name, vartype=None):
!         var = self.tkinter_vars.get(name)
          if not var and vartype:
!             # create a Tkinter variable object with self.text as master:
!             self.tkinter_vars[name] = var = vartype(self.text)
          return var
  
***************
*** 1368,1373 ****
  }
  
! def get_accelerator(keydefs, event):
!     keylist = keydefs.get(event)
      if not keylist:
          return ""
--- 1373,1378 ----
  }
  
! def get_accelerator(keydefs, eventname):
!     keylist = keydefs.get(eventname)
      if not keylist:
          return ""

Index: extend.txt
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/idlelib/extend.txt,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** extend.txt	16 Jul 2003 03:10:43 -0000	1.4
--- extend.txt	24 Apr 2004 03:01:48 -0000	1.5
***************
*** 52,57 ****
  
  Extensions are not required to define menu entries for all the events they
! implement. (XXX KBK 15Jul03: But it appears they must have keybindings for each
! virtual event?)
  
  Here is a complete example example:
--- 52,57 ----
  
  Extensions are not required to define menu entries for all the events they
! implement.  (They are also not required to create keybindings, but in that
! case there must be empty bindings in cofig-extensions.def)
  
  Here is a complete example example:




More information about the Python-checkins mailing list