CVS: anygui/lib/anygui/frontend_wrappers ComboBoxWrapper.py,1.1,1.2

"Dallas T. Johnston" <[email protected]> Sat, 16 Nov 2002 08:45:01 -0800
Newsgroups gmane.comp.python.anygui.cvs
Message-ID <[email protected]>
Update of /cvsroot/anygui/anygui/lib/anygui/frontend_wrappers
In directory usw-pr-cvs1:/tmp/cvs-serv9861/lib/anygui/frontend_wrappers

Modified Files:
	ComboBoxWrapper.py 
Log Message:
things are looking pretty good now.
i decided to just make the file selection ('open') a callback
via link & send. the client has to specify the link, of course.
we still need to figure out a way to fix tkinter's focus deal.




Index: ComboBoxWrapper.py
===================================================================
RCS file: /cvsroot/anygui/anygui/lib/anygui/frontend_wrappers/ComboBoxWrapper.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ComboBoxWrapper.py	16 Nov 2002 12:41:11 -0000	1.1
--- ComboBoxWrapper.py	16 Nov 2002 16:44:59 -0000	1.2
***************
*** 58,83 ****
      def _createWidgets(self):
          state = self.proxy.state
!         lx = state['x']
!         ly = state['y']
!         lwidth = state['width']
!         lheight = state['height']
!         self._btnWidth = state['btnWidth']
          self._lbxHeight = state['lbxHeight']
!         self._cbxHeight = state['cbxHeight']
!         litems = list(self.proxy.items)
          self._popupBtn = anygui.Button(text = 'v',
!                                        geometry = ( lx + lwidth - self._btnWidth,
!                                                     ly,
!                                                     self._btnWidth,
!                                                     self._cbxHeight ))
!         self._textFld  = anygui.TextField(geometry = ( lx,
!                                                        ly,
!                                                        lwidth - self._btnWidth,
!                                                        self._cbxHeight ))
          self._itemLbx = anygui.ListBox(visible = 0,
!                                        items = litems,
!                                        geometry = ( lx,
!                                                     ly + lheight,
!                                                     lwidth,
                                                      self._lbxHeight ))
  
--- 58,81 ----
      def _createWidgets(self):
          state = self.proxy.state
!         x = state['x']
!         y = state['y']
!         width = state['width']
!         height = state['height']
          self._lbxHeight = state['lbxHeight']
!         items = list(self.proxy.items)
!         self._textFld  = anygui.TextField(geometry = ( x,
!                                                        y,
!                                                        width - height,
!                                                        height ))
          self._popupBtn = anygui.Button(text = 'v',
!                                        geometry = ( x + width - height,
!                                                     y,
!                                                     height,
!                                                     height ))
          self._itemLbx = anygui.ListBox(visible = 0,
!                                        items = items,
!                                        geometry = ( x,
!                                                     y + height,
!                                                     width,
                                                      self._lbxHeight ))
  
***************
*** 85,100 ****
      def _setupBtn(self):
          self._popupBtn.container = self.proxy.container
-         self.proxy.container.contents.append(self._popupBtn)
  
      def _setupTxtFld(self):
          self._textFld.container = self.proxy.container
-         self.proxy.container.contents.append(self._textFld)
  
      def _setupLbx(self):
          self._itemLbx.container = self.proxy.container
-         self.proxy.container.contents.append(self._itemLbx)
  
      def widgetFactory(self, *args, **kws):
!         print '>> in widgetFactory...'
          self._createWidgets()
          self._comps = 1
--- 83,95 ----
      def _setupBtn(self):
          self._popupBtn.container = self.proxy.container
  
      def _setupTxtFld(self):
          self._textFld.container = self.proxy.container
  
      def _setupLbx(self):
          self._itemLbx.container = self.proxy.container
  
      def widgetFactory(self, *args, **kws):
!         #print '>> in widgetFactory...'
          self._createWidgets()
          self._comps = 1
***************
*** 105,112 ****
      def widgetSetUp(self):
          if self._comps and not self._connected:
!             print '>> in widgetSetUp'
!             #self._popupBtn._ensure_events()
              link(self._popupBtn, self._handlePopup)
-             #self._itemLbx._ensure_events()
              link(self._itemLbx, self._handleSelection)
              self._connected = 1
--- 100,105 ----
      def widgetSetUp(self):
          if self._comps and not self._connected:
!             #print '>> in widgetSetUp'
              link(self._popupBtn, self._handlePopup)
              link(self._itemLbx, self._handleSelection)
              self._connected = 1
***************
*** 114,118 ****
      def setupChildWidgets(self):
          if self._comps:
!             print '>> in setupChildWidgets'
              self._setupTxtFld()
              self._setupBtn()
--- 107,111 ----
      def setupChildWidgets(self):
          if self._comps:
!             #print '>> in setupChildWidgets'
              self._setupTxtFld()
              self._setupBtn()
***************
*** 129,156 ****
              self.setupChildWidgets()
  
-     def getSelection(self):
-         if self._comps:
-             return self._itemLbx.selection
- 
-     def setSelection(self, selection):
-         if self._comps:
-             self._loop = 1
-             self._itemLbx.selection = selection
-             self._textFld.text = self._itemLbx.items[selection]
-             self._loop = 0
- 
-     def getItems(self):
-         if self._comps:
-             return self._itemLbx.items
- 
-     def setItems(self, items):
-         if self._comps:
-             print '>> in setItems(items) -> ', items
-             self._loop = 1
-             self._itemLbx.items = items
-             self._loop = 0
- 
      def _handlePopup(self, event):
!         print '>> handling Popup...'
          self._loop = 1
          self._itemLbx.visible = self._popupOpen = not self._popupOpen
--- 122,127 ----
              self.setupChildWidgets()
  
      def _handlePopup(self, event):
!         #print '>> handling Popup...'
          self._loop = 1
          self._itemLbx.visible = self._popupOpen = not self._popupOpen
***************
*** 158,162 ****
  
      def _handleSelection(self, event):
!         print '>> handling Selection...'
          if not self._loop:
              self._loop = 1
--- 129,133 ----
  
      def _handleSelection(self, event):
!         #print '>> handling Selection...'
          if not self._loop:
              self._loop = 1
***************
*** 202,206 ****
              x, y, dummy, height = self._textFld.geometry
              d, d1, width, d2   = self._itemLbx.geometry
!             return (x, y, height, width)
  
      def setGeometry(self, x, y, width, height):
--- 173,177 ----
              x, y, dummy, height = self._textFld.geometry
              d, d1, width, d2   = self._itemLbx.geometry
!             return (x, y, width, height)
  
      def setGeometry(self, x, y, width, height):
***************
*** 209,224 ****
              self._textFld.geometry  = (x,
                                         y,
!                                        width - self._btnWidth,
!                                        self._cbxHeight)
!             self._popupBtn.geometry = (x + width - self._btnWidth,
                                         y,
!                                        self._btnWidth,
!                                        self._cbxHeight)
              self._itemLbx.geometry =  (x,
!                                        y + self._cbxHeight,
                                         width,
                                         self._lbxHeight)
              self._loop = 0
  
      def getVisible(self):
          return self._visible
--- 180,237 ----
              self._textFld.geometry  = (x,
                                         y,
!                                        width - height,
!                                        height)
!             self._popupBtn.geometry = (x + width - height,
                                         y,
!                                        height,
!                                        height)
              self._itemLbx.geometry =  (x,
!                                        y + height,
                                         width,
                                         self._lbxHeight)
              self._loop = 0
  
+     def getSelection(self):
+         if self._comps:
+             return self._itemLbx.selection
+ 
+     def setSelection(self, selection):
+         if self._comps:
+             self._loop = 1
+             self._itemLbx.selection = selection
+             self._textFld.text = self._itemLbx.items[selection]
+             self._loop = 0
+ 
+     def getItems(self):
+         if self._comps:
+             return self._itemLbx.items
+ 
+     def setItems(self, items):
+         if self._comps:
+             #print '>> in setItems(items) -> ', items
+             self._loop = 1
+             self._itemLbx.items = items
+             self._loop = 0
+ 
+     def getText(self):
+         items = list(self._itemLbx.items)
+         text = self._textFld.text
+         if text in items:
+             return text
+         else:
+             return items[self._itemLbx.selection]
+ 
+     def getLbxHeight(self):
+         return self._lbxHeight
+ 
+     def setLbxHeight(self, lbxHeight):
+         if self._comps:
+             self._lbxHeight = lbxHeight
+             x, y, width, height = self.proxy.geometry
+             self._itemLbx.geometry = ( x,
+                                        y + height,
+                                        width,
+                                        lbxHeight)
+ 
      def getVisible(self):
          return self._visible
***************
*** 227,241 ****
          if self._comps:
              self._visible = visible
              self._textFld.visible = visible
              self._popupBtn.visible = visible
  
      def setEnabled(self, enabled):
          if self._comps:
              self._enabled = enabled
              self._textFld.enabled  = enabled
              self._popupBtn.enabled = enabled
- 
-     def getEnabled(self):
-         return self._enabled
  
      def internalDestroy(self):
--- 240,260 ----
          if self._comps:
              self._visible = visible
+             if self._popupOpen:
+                 self._itemLbx.visible = visible
+                 self._popupOpen = visible
              self._textFld.visible = visible
              self._popupBtn.visible = visible
  
+     def getEnabled(self):
+         return self._enabled
+ 
      def setEnabled(self, enabled):
          if self._comps:
+             if self._popupOpen:
+                 self._itemLbx.visible = 0
+                 self._popupOpen = 0
              self._enabled = enabled
              self._textFld.enabled  = enabled
              self._popupBtn.enabled = enabled
  
      def internalDestroy(self):



-------------------------------------------------------
This sf.net email is sponsored by: To learn the basics of securing 
your web site with SSL, click here to get a FREE TRIAL of a Thawte 
Server Certificate: http://www.gothawte.com/rd524.html