/[papo]/gnue/forms/src/GFForm.py
ViewVC logotype

Diff of /gnue/forms/src/GFForm.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14.2.9 by styxman, Fri Jun 6 21:02:12 2003 UTC revision 1.14.2.10 by styxman, Fri Jun 13 20:09:23 2003 UTC
# Line 1  Line 1 
1    from __future__ import nested_scopes
2    
3  #  #
4  # This file is part of GNU Enterprise.  # This file is part of GNU Enterprise.
5  #  #
# Line 28  Line 30 
30  # NOTES:  # NOTES:
31  #  #
32    
33    
34  import sys  import sys
35  import string  import string
36  import traceback  import traceback
# Line 667  class GFForm(GFObj, GRootObj, GFEventAwa Line 670  class GFForm(GFObj, GRootObj, GFEventAwa
670            r= x            r= x
671      return r      return r
672    
673      def sortByYAndThenByX (self, a, b):
674        # 2= x, 1= y
675        if a.yabs<b.yabs:
676          return -1
677        elif a.yabs==b.yabs:
678          if a.xabs<b.xabs:
679            return -1
680          elif a.xabs==b.xabs:
681            return 0
682          elif a.xabs>b.xabs:
683            return 1
684        elif a.yabs>b.yabs:
685          return 1
686          
687      def absolutize (self, entry, xoff, yoff):
688        try:
689          entry.xabs= entry.x+xoff
690          entry.yabs= entry.y+yoff
691        except:
692          entry.xabs= xoff
693          entry.yabs= yoff
694        return entry
695    
696    def _getFocusableEntries (self, children):    def _getFocusableEntries (self, children, xoff, yoff):
     # I *hate* debug  
   
     # GDebug.printMesg (1, "_gFE: children: %s" % map (self.gimmeNames, children))  
697      entryNo= 0      entryNo= 0
698        children= map (lambda x: self.absolutize (x, xoff, yoff), children)
699      result= children      result= children
700      for entry in children:      for entry in children:
701        # shouldn't this be 'in containers'?        # shouldn't this be 'in containers'?
702        if entry._type in [ 'GFBox', 'GFBlock' ]:        if entry._type in [ 'GFBox', 'GFBlock' ]:
703          next= self._getFocusableEntries (entry._children)          next= self._getFocusableEntries (entry._children, entry.xabs, entry.yabs)
704          # replace the box with its children recursively          # replace the box with its children recursively
705          result= result[:entryNo]+next+result[entryNo+1:]          result= result[:entryNo]+next+result[entryNo+1:]
706          entryNo= entryNo+len (next)          entryNo= entryNo+len (next)
707        entryNo= entryNo+1        entryNo= entryNo+1
708    
709      # GDebug.printMesg (1, "_gFE: result: %s" % map (self.gimmeNames, result))      # GDebug.printMesg (1, "_gFE: result: %s" % map (self.gimmeNames, result))
710      return filter (      result= filter (
711        lambda x: x._type=="GFButton" or        lambda x: x._type=="GFButton" or
712          (x._type=="GFEntry" and not x.style=="label" and not x.hidden and not x.style=='textlookup'),          (x._type=="GFEntry" and not x.style=="label" and not x.hidden and not x.style=='textlookup'),
713        result)        result)
714        result.sort (self.sortByYAndThenByX)
715    #    print map (
716    #      lambda x:
717    #        "%s, %d:%d, %d:%d" % (x.name, x.xabs, x.x, x.yabs, x.y)
718    #      , result
719    #    )
720        return result
721    
722    #    #
723    # nextEntry    # nextEntry
# Line 700  class GFForm(GFObj, GRootObj, GFEventAwa Line 730  class GFForm(GFObj, GRootObj, GFEventAwa
730      nextEntry = None      nextEntry = None
731      keepNext = 0      keepNext = 0
732    
733      entryList= self._getFocusableEntries (self._currentPage._children)      entryList= self._getFocusableEntries (self._currentPage._children, 0, 0)
734      # print entryList      # print entryList
735      # print TabStops      # print TabStops
736      for object in entryList:      for object in entryList:
# Line 735  class GFForm(GFObj, GRootObj, GFEventAwa Line 765  class GFForm(GFObj, GRootObj, GFEventAwa
765      nextEntry = None      nextEntry = None
766      lastEntry = self._currentEntry      lastEntry = self._currentEntry
767    
768      entryList= self._getFocusableEntries (self._currentPage._children)      entryList= self._getFocusableEntries (self._currentPage._children, 0, 0)
769      for object in entryList:      for object in entryList:
770        if (object._type in TabStops and (not object.hidden)):        if (object._type in TabStops and (not object.hidden)):
771          nextEntry = object          nextEntry = object

Legend:
Removed from v.1.14.2.9  
changed lines
  Added in v.1.14.2.10

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26