CVS: anygui/lib/anygui/backends tkgui.py,1.82,1.83

Samuele Pedroni <[email protected]> Tue, 10 Sep 2002 13:17:23 -0700
Newsgroups gmane.comp.python.anygui.cvs
Message-ID <[email protected]>
Update of /cvsroot/anygui/anygui/lib/anygui/backends
In directory usw-pr-cvs1:/tmp/cvs-serv21619/backends

Modified Files:
	tkgui.py 
Log Message:
* wrapper.widget now uses None to signal widget absence. Replaced widget presence detection exception checking control flows with if <>.widget/if not <>.widget 
* fixed tk bug: geometry x,y can be negative => capture re adjusted




Index: tkgui.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/backends/tkgui.py,v
retrieving revision 1.82
retrieving revision 1.83
diff -C2 -r1.82 -r1.83
*** tkgui.py	25 Aug 2002 05:26:25 -0000	1.82
--- tkgui.py	10 Sep 2002 20:17:21 -0000	1.83
***************
*** 25,29 ****
  import Tkinter, re
  from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper, DummyWidget, isDummy
  from anygui.Events import *
  from anygui.Windows import Window
--- 25,29 ----
  import Tkinter, re
  from anygui.Applications import AbstractApplication
! from anygui.Wrappers import AbstractWrapper
  from anygui.Events import *
  from anygui.Windows import Window
***************
*** 79,83 ****
  
      def __str__(self):
!         if self.noWidget():
              widg = "NOWIDGET"
          else:
--- 79,83 ----
  
      def __str__(self):
!         if not self.widget:
              widg = "NOWIDGET"
          else:
***************
*** 86,117 ****
--- 86,125 ----
  
      def setX(self, x):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(x=x)
  
      def setY(self, y):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(y=y)
  
      def setWidth(self, width):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(width=width)
  
      def setHeight(self, height):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(height=height)
  
      def setPosition(self, x, y):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(x=x, y=y)
  
      def setSize(self, width, height):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(width=width, height=height)
  
      def setGeometry(self, x, y, width, height):
+         if not self.widget: return
          if not self.visible: return
          self.widget.place(x=x, y=y, width=width, height=height)
  
      def setVisible(self, visible):
+         if not self.widget: return
          if not visible:
              self.widget.place_forget()
***************
*** 129,135 ****
              return
          parent = container.wrapper.widget
!         try:
!             assert parent.isDummy()
!         except (AttributeError, AssertionError):
              self.destroy()
              self.create(parent)
--- 137,141 ----
              return
          parent = container.wrapper.widget
!         if parent:
              self.destroy()
              self.create(parent)
***************
*** 137,140 ****
--- 143,147 ----
  
      def setEnabled(self, enabled):
+         if not self.widget: return
          if enabled: newstate = Tkinter.NORMAL
          else: newstate = Tkinter.DISABLED
***************
*** 145,148 ****
--- 152,156 ----
  
      def setText(self, text):
+         if not self.widget: return
          try:
              self.widget.configure(text=text)
***************
*** 152,155 ****
--- 160,164 ----
  
      def getText(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          try:
              return self.widget.cget('text')
***************
*** 175,178 ****
--- 184,188 ----
  
      def setText(self, text):
+         if not self.widget: return
          self.widget.configure(text=text)
  
***************
*** 183,186 ****
--- 193,197 ----
  
      def setText(self, text):
+         if not self.widget: return
          self.widget.configure(text=text)
  
***************
*** 277,280 ****
--- 288,292 ----
  
      def setText(self, text):
+         if not self.widget: return
          disabled=0
          if self.widget.cget('state') != Tkinter.NORMAL:
***************
*** 287,299 ****
--- 299,315 ----
  
      def getText(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self.widget.get()
  
      def setEditable(self, editable):
+         if not self.widget: return # @@@ really needed?
          self.editable=editable
  
      def setSelection(self, selection):
+         if not self.widget: return
          self.widget.selection_range(*selection)
  
      def getSelection(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          if self.widget.select_present():
              start = self.widget.index('sel.first')
***************
*** 338,341 ****
--- 354,358 ----
  
      def getText(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self.widget.get(1.0, Tkinter.END)[:-1] # Remove the extra newline. (Always?)
  
***************
*** 355,358 ****
--- 372,376 ----
  
      def getSelection(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          try:
              start = self.widget.index('sel.first')
***************
*** 368,371 ****
--- 386,390 ----
  
      def setText(self, text):
+         if not self.widget: return
          disabled=0
          if self.widget.cget('state') != Tkinter.NORMAL:
***************
*** 378,381 ****
--- 397,401 ----
  
      def setSelection(self, selection):
+         if not self.widget: return
          start, end = selection
          self.widget.tag_remove('sel', '1.0', 'end')
***************
*** 391,394 ****
--- 411,415 ----
  
      def setEditable(self, editable):
+         if not self.widget: return # @@@ really needed?
          self.editable=editable
  
***************
*** 406,409 ****
--- 427,431 ----
  
      def setItems(self, items):
+         if not self.widget: return
          self.widget.delete(0, Tkinter.END)
          self.items = items[:]
***************
*** 412,422 ****
--- 434,447 ----
  
      def getItems(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self.items
  
      def setSelection(self, selection):
+         if not self.widget: return
          self.widget.select_clear(0, Tkinter.END)
          self.widget.select_set(selection)
  
      def getSelection(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          selection = self.widget.curselection()[0]
          try:
***************
*** 442,445 ****
--- 467,471 ----
                  
      def setOn(self, on):
+         if not self.widget: return
          if on:
              self.widget.select()
***************
*** 448,451 ****
--- 474,478 ----
  
      def getOn(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self._var.get()
  
***************
*** 469,475 ****
--- 496,504 ----
  
      def getOn(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self._var.get() == int(self.widget.cget('value'))
  
      def setGroup(self, group):
+         if not self.widget: return
          if group is None:
              self._var = Tkinter.IntVar()
***************
*** 487,493 ****
--- 516,524 ----
  
      def setValue(self, value):
+         if not self.widget: return
          self.widget.configure(value=int(value))
  
      def getValue(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return int(self.widget.cget('value'))
  
***************
*** 511,514 ****
--- 542,546 ----
  
      def getOn(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          return self._var.get() == int(self.widget.cget('onvalue'))
  
***************
*** 539,543 ****
  
      def internalProd(self):
!         # Should check for None, but not properly implemented yet...
          try: self.proxy.container
          except AttributeError: return
--- 571,575 ----
  
      def internalProd(self):
!         # @@@ Should check for None, but not properly implemented yet...
          try: self.proxy.container
          except AttributeError: return
***************
*** 579,584 ****
  
      def getGeometry(self):
          g = self.widget.geometry()
!         m = re.match('^(\d+)x(\d+)\+(\d+)\+(\d+)', g) # Hm...
          w = int(m.group(1))
          h = int(m.group(2))
--- 611,619 ----
  
      def getGeometry(self):
+         assert self.widget,"?! wrapper getXxx w/o widget"
          g = self.widget.geometry()
!         # geometry x,y can be negative
!         m = re.match('^(\d+)x(\d+)\+(-?\d+)\+(-?\d+)', g) # Hm...
!         assert m,"geometry capture mismatch" # @@@
          w = int(m.group(1))
          h = int(m.group(2))
***************
*** 588,607 ****
--- 623,647 ----
      
      def setX(self, x):
+         if not self.widget: return
          ox, y, w, h = self.getGeometry()
          self.setGeometry(x, y, w, h)
  
      def setY(self, y):
+         if not self.widget: return
          x, oy, w, h = self.getGeometry()
          self.setGeometry(x, y, w, h)
  
      def setWidth(self, width):
+         if not self.widget: return        
          x, y, ow, h = self.getGeometry()
          self.setGeometry(x, y, width, h)
  
      def setHeight(self, height):
+         if not self.widget: return
          x, y, w, oh = self.getGeometry()
          self.setGeometry(x, y, w, height)
  
      def setPosition(self, x, y):
+         if not self.widget: return
          ox, oy, w, h = self.getGeometry()
          geometry = "%dx%d+%d+%d" % (w, h, x, y)
***************
*** 609,612 ****
--- 649,653 ----
  
      def setSize(self, width, height):
+         if not self.widget: return
          x, y, ow, oh = self.getGeometry()
          geometry = "%dx%d+%d+%d" % (width, height, x, y)
***************
*** 614,617 ****
--- 655,659 ----
      
      def setGeometry(self, x, y, width, height):
+         if not self.widget: return
          geometry = "%dx%d+%d+%d" % (width, height, x, y)
          self.widget.geometry(geometry)
***************
*** 619,633 ****
      
      def setTitle(self, title):
          self.widget.title(title)
  
      def setContainer(self, container):
          if container is None: return
!         try:
!             assert(self.widget.isDummy())
              self.create()
-         except (AttributeError):
-             self.create()
-         except (AssertionError):
-             pass
          self.proxy.push(blocked=['container'])
          # Ensure contents are properly created.
--- 661,671 ----
      
      def setTitle(self, title):
+         if not self.widget: return
          self.widget.title(title)
  
      def setContainer(self, container):
          if container is None: return
!         if not self.widget:
              self.create()
          self.proxy.push(blocked=['container'])
          # Ensure contents are properly created.
***************
*** 636,639 ****
--- 674,678 ----
  
      def setVisible(self, visible):
+         if not self.widget: return
          if visible: self.widget.deiconify()
          else: self.widget.withdraw()
***************
*** 645,649 ****
  
      def __str__(self):
!         if self.noWidget():
              widg = "NOWIDGET"
          else:
--- 684,688 ----
  
      def __str__(self):
!         if not self.widget:
              widg = "NOWIDGET"
          else:
***************
*** 660,664 ****
  
      def createIfNeeded(self):
!         if self.noWidget(): self.create()
  
      def tryRebuild(self):
--- 699,703 ----
  
      def createIfNeeded(self):
!         if not self.widget: self.create()
  
      def tryRebuild(self):
***************
*** 673,677 ****
              if self.proxy.container is None:
                  return
!             self.widget = DummyWidget()
              self.proxy.container.wrapper.rebuild()
          else:
--- 712,716 ----
              if self.proxy.container is None:
                  return
!             self.widget = None
              self.proxy.container.wrapper.rebuild()
          else:
***************
*** 710,717 ****
      def setContainer(self,container):
          if container is None:
!             if not self.noWidget():
                  self.widget.destroy()
              return
!         if container.wrapper.noWidget():
              return
          container.wrapper.rebuild()
--- 749,756 ----
      def setContainer(self,container):
          if container is None:
!             if self.widget:
                  self.widget.destroy()
              return
!         if not container.wrapper.widget:
              return
          container.wrapper.rebuild()
***************
*** 731,737 ****
          if self.proxy.container is None:
              return
!         if self.proxy.container.wrapper.noWidget():
              return
!         if self.noWidget():
              return
          self.widget.delete(0,'end')
--- 770,776 ----
          if self.proxy.container is None:
              return
!         if not self.proxy.container.wrapper.widget:
              return
!         if not self.widget:
              return
          self.widget.delete(0,'end')
***************
*** 746,753 ****
      def setContainer(self,container):
          if container is None:
!             if not self.noWidget():
                  self.widget.destroy()
              return
!         if container.wrapper.noWidget():
              return
          self.createIfNeeded()
--- 785,792 ----
      def setContainer(self,container):
          if container is None:
!             if self.widget:
                  self.widget.destroy()
              return
!         if not container.wrapper.widget:
              return
          self.createIfNeeded()



-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390