commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/forms/src/uidrivers/win32 GFwin32App.py UI...


From: Bajusz Tamás
Subject: gnue/forms/src/uidrivers/win32 GFwin32App.py UI...
Date: Sun, 02 Mar 2003 17:45:13 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Bajusz Tamás <address@hidden>   03/03/02 17:45:12

Modified files:
        forms/src/uidrivers/win32: GFwin32App.py UIdriver.py common.py 
        forms/src/uidrivers/win32/widgets: _base.py box.py button.py 
                                           entry.py label.py 
        forms/src/uidrivers/win32/widgets/form: widget.py wrappers.py 

Log message:
        More work on win32 driver
        * statusbar
        * initFont
        * menubar/toolbar events

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/GFwin32App.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/UIdriver.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/common.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/_base.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/box.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/button.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/entry.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/label.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/form/widget.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: gnue/forms/src/uidrivers/win32/GFwin32App.py
diff -c gnue/forms/src/uidrivers/win32/GFwin32App.py:1.1 
gnue/forms/src/uidrivers/win32/GFwin32App.py:1.2
*** gnue/forms/src/uidrivers/win32/GFwin32App.py:1.1    Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/GFwin32App.py        Sun Mar  2 17:45:12 2003
***************
*** 1,30 ****
! import win32gui
  from gnue.common.apps import GDebug
  
  __win32App = None
  
  def getWin32App():
      global __win32App
- 
      if not __win32App:
-         GDebug.printMesg(7,"Win32App initializing")
          __win32App = GFwin32App()
      return __win32App
  
  class GFwin32App:
!     _mainLoop= None
!     
!     def OnInit(self):
!         GDebug.printMesg(7,"Win32App initializing")
!         #wxInitAllImageHandlers()
!         return true
  
!     def MainLoop (self):
          # just to launch one win32's mainloop
          # otherwise, the app does not finishes cleanly when several windows 
are open
          # 'cause the first mainloop gets all the events
          # and the others just sit and wait for something to happen
          #if self._mainLoop==None:
            #  self._mainLoop= 1
              win32gui.PumpMessages()
              
--- 1,29 ----
! import win32gui, win32con
  from gnue.common.apps import GDebug
  
  __win32App = None
  
  def getWin32App():
      global __win32App
      if not __win32App:
          __win32App = GFwin32App()
      return __win32App
  
+ 
  class GFwin32App:
!   _mainLoop= None
!   
!   def __init__(self):
!     print "Win32App initializing"
!     #wxInitAllImageHandlers()
  
!   def MainLoop (self):
          # just to launch one win32's mainloop
          # otherwise, the app does not finishes cleanly when several windows 
are open
          # 'cause the first mainloop gets all the events
          # and the others just sit and wait for something to happen
          #if self._mainLoop==None:
            #  self._mainLoop= 1
+             print "win32gui.PumpMessages()"
              win32gui.PumpMessages()
              
Index: gnue/forms/src/uidrivers/win32/UIdriver.py
diff -c gnue/forms/src/uidrivers/win32/UIdriver.py:1.1 
gnue/forms/src/uidrivers/win32/UIdriver.py:1.2
*** gnue/forms/src/uidrivers/win32/UIdriver.py:1.1      Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/UIdriver.py  Sun Mar  2 17:45:12 2003
***************
*** 50,63 ****
  _PROMPTFORRECORD = None
  def treeShow(object, uiDriver):
    try: 
! #    print "Object ",object, object.show(), object.GetParent(), 
uiDriver._IdToGFObj[object.GetId()]
!     object.show()
    except KeyError:
!     print "Object ",object, object.show(), object.GetParent(), 
"NONE!!!!!!!!!!!!!"
      
    for child in object.GetChildren():
      treeShow(child, uiDriver)
!    
  
  #
  # GFUserInterface
--- 50,85 ----
  _PROMPTFORRECORD = None
  def treeShow(object, uiDriver):
    try: 
!     print "Object ",object, object.Show(), object.GetParent(), 
uiDriver._IdToGFObj[object.GetId()]
    except KeyError:
!     print "Object ",object, object.Show(), object.GetParent(), 
"NONE!!!!!!!!!!!!!"
      
    for child in object.GetChildren():
      treeShow(child, uiDriver)
! 
! 
! def OnWMLButtonDown(hwnd, msg, wParam, lParam, widget):
!   print "OnWMLButtonDown hwnd,widget=",hwnd,widget
!   return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
! 
! def OnWMDestroy(hwnd, msg, wParam, lParam, widget):
!   win32gui.PostQuitMessage(0) # Terminate the app.
! 
! def OnWMClose(hwnd, msg, wParam, lParam, widget):
!   win32gui.DestroyWindow(hwnd)
! 
! #def OnWMPaint(hwnd, msg, wParam, lParam, widget):
! #  return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
! 
! #def OnWMSize(hwnd, msg, wParam, lParam, widget):
! #  return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
! 
! def OnWMCommand(hwnd, msg, wParam, lParam, widget):
!   return widget.OnWMCommand(hwnd, msg, wParam, lParam)
! 
! def OnWMDefault(hwnd, msg, wParam, lParam, widget):
!   return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
! 
  
  #
  # GFUserInterface
***************
*** 66,71 ****
--- 88,104 ----
  # All UIs must provide this class
  #
  class GFUserInterface(GFUserInterfaceBase):
+   _wndclass = None
+   
+   _message_map = {
+     win32con.WM_LBUTTONDOWN : OnWMLButtonDown,
+     win32con.WM_DESTROY : OnWMDestroy,
+     win32con.WM_CLOSE : OnWMClose,
+ #    win32con.WM_SIZE : OnWMSize,
+     win32con.WM_COMMAND : OnWMCommand,
+ #    win32con.WM_PAINT : OnWMPaint,
+     }
+ 
    def __init__(self, eventController, disableSplash = None):
      GFUserInterfaceBase.__init__(self,eventController)
  
***************
*** 83,127 ****
  
      self._disabledColour = afxres.AFX_IDC_COLOR_LIGHTGRAY
  
- 
-   def OnDestroy(self, hwnd, msg, wparam, lparam):
-     win32gui.PostQuitMessage(0) # Terminate the app.
- 
-   def OnPaint(self, hwnd, msg, wparam, lparam):
-     print 'OnPaint'
- 
-   def OnSize(self, hwnd, msg, wparam, lparam):
-     print 'OnSize'
- 
-   def OnCommand(self, hwnd, msg, wparam, lparam):
-     print 'OnCommand'
- 
-   def initialize(self):
      ################################################################
      # win32 Specifics
      ################################################################
      win32gui.InitCommonControls() 
-     self._win32app = getWin32App()
  
-     message_map = {
-       win32con.WM_DESTROY: self.OnDestroy,
-       win32con.WM_PAINT: self.OnPaint,
-       win32con.WM_SIZE: self.OnSize,
-       win32con.WM_COMMAND: self.OnCommand,
-       }
      # Register the "GNUeWindow" class.
      wc = win32gui.WNDCLASS()
      wc.lpszClassName = "GNUeWindow"
      wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW )
      wc.hIcon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)
      wc.hbrBackground = win32con.COLOR_WINDOW
!     wc.lpfnWndProc = message_map # could also specify a wndproc.
!     win32gui.RegisterClass(wc)
  
  
!     ##font = win32gui.GetStockObject(win32con.ANSI_FIXED_FONT) # Courier
!     ##font.setPointSize(int(gConfig('pointSize')))
!     ##setWidgetBaseFont(font)
  
      #
      # SplashScreen
--- 116,151 ----
  
      self._disabledColour = afxres.AFX_IDC_COLOR_LIGHTGRAY
  
      ################################################################
      # win32 Specifics
      ################################################################
      win32gui.InitCommonControls() 
  
      # Register the "GNUeWindow" class.
      wc = win32gui.WNDCLASS()
      wc.lpszClassName = "GNUeWindow"
      wc.hCursor = win32gui.LoadCursor( 0, win32con.IDC_ARROW )
      wc.hIcon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)
      wc.hbrBackground = win32con.COLOR_WINDOW
!     wc.lpfnWndProc = self._wndproc
!     self.__class__._wndclass = win32gui.RegisterClass(wc)
  
+   def _wndproc(self, hwnd, msg, wParam, lParam):
+     try:
+       widget = self._IdToWin32Obj[hwnd]
+       #print "idget calling _wndproc", widget, hwnd
+     except:
+       return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
+     try:
+       OnWM = self._message_map.get(msg, OnWMDefault)
+       x = OnWM(hwnd, msg, wParam, lParam, widget)
+     except:
+       x = -1
+     return x
  
! 
!   def initialize(self):
!     self._win32app = getWin32App()
  
      #
      # SplashScreen
***************
*** 135,162 ****
      #
      # Create a dummy window used to compute sizes 
      #
! ##    dummyWindow = wxFrame(NULL, -1, "", wxDefaultPosition)
! ##    initFont(dummyWindow,1)
!     
!     #
!     # Find the max size of printable characters
!     #  used to setup the grid
!     #
! ##    maxWidth, maxHeight, maxDescent, maxLeading = [0,0,0,0]
! ##    checkchars = string.printable
! ##    for letter in checkchars:
! ##      width,height,descent,leading = dummyWindow.GetFullTextExtent(letter)
! ##      maxWidth = max(maxWidth,width)
! ##      maxHeight = max(maxHeight,height)
! ##      maxDescent = max(maxDescent,descent)
! ##      maxLeading = max(maxLeading,leading)
! 
!     ### Made-up numbers :) 
!     maxWidth=12
!     maxHeight = 20
!     maxDescent = 4
!     maxLeading = 6
!     ###
  
      self.textWidth    = int(maxWidth+maxLeading)  # The pixel width of text 
inside a widget
      self.textHeight   = int(maxHeight+maxDescent) # The pixel height of text 
inside a widget
--- 159,177 ----
      #
      # Create a dummy window used to compute sizes 
      #
!     from pywin.mfc import window
!     font_spec = {'name':'Courier New', 'height':int(gConfig('pointSize'))}
!     font = win32ui.CreateFont (font_spec)
!     dummyWindow = window.Wnd(win32ui.CreateWnd())
!     dc = dummyWindow.GetWindowDC()
!     dc.SelectObject (font)
!     metrics = dc.GetTextMetrics()
!     print metrics.items()
!     maxWidth = metrics["tmMaxCharWidth"]
!     maxHeight = metrics["tmHeight"]
!     maxDescent = metrics["tmDescent"]
!     maxLeading = metrics["tmInternalLeading"]
!     print "GetFullTextExtent",maxWidth,maxHeight,maxDescent,maxLeading
  
      self.textWidth    = int(maxWidth+maxLeading)  # The pixel width of text 
inside a widget
      self.textHeight   = int(maxHeight+maxDescent) # The pixel height of text 
inside a widget
***************
*** 166,172 ****
      #
      # Close dummy window so app doesn't hang when all other windows closed
      #
! ##    dummyWindow.Close()
  
  
  
--- 181,187 ----
      #
      # Close dummy window so app doesn't hang when all other windows closed
      #
! #    dummyWindow.Close()
  
  
  
***************
*** 176,194 ****
      # Go ahead and display
  
      # TODO : hack!!!!!!!!!!!!!!
-     print self._formNameToUIForm.keys()
      for key in self._formNameToUIForm.keys():
        if self._formNameToUIForm[key]._form == form:
          break
-     print "key:",key
  
  ##    self._formNameToUIForm[key].mainWindow.Raise()
!     self._formNameToUIForm[key].mainWindow.show()
    
      self._formNameToUIForm[key].show()
  
      treeShow(self._formNameToUIForm[key].mainWindow, self)
! 
  
    
#############################################################################
    #
--- 191,207 ----
      # Go ahead and display
  
      # TODO : hack!!!!!!!!!!!!!!
      for key in self._formNameToUIForm.keys():
        if self._formNameToUIForm[key]._form == form:
          break
  
  ##    self._formNameToUIForm[key].mainWindow.Raise()
!     self._formNameToUIForm[key].mainWindow.Show()
    
      self._formNameToUIForm[key].show()
  
      treeShow(self._formNameToUIForm[key].mainWindow, self)
!     
  
    
#############################################################################
    #
***************
*** 206,212 ****
    def _exit(self):
      #TODO
      self._children[0].mainWindow.Close(true)
- #    
win32gui.SendMessage(self._children[0].mainWindow.GetId(),win32con.WM_DESTROY,0,0)
  
    # Can be used by UI drivers to add more attributes to the creation event.
    def _updateCreateEvent(self, event):
--- 219,224 ----
***************
*** 285,291 ****
    # Presents a dialog to user asking for the record number to jump to
    #
    def promptForRecordNumber(self, event=None):
!     pass
    #
    # closeTrap
    #
--- 297,303 ----
    # Presents a dialog to user asking for the record number to jump to
    #
    def promptForRecordNumber(self, event=None):
!     print "promptForRecordNumber"
    #
    # closeTrap
    #
***************
*** 294,300 ****
    # back an event closing the application
    #`
    def closeTrap(self,event):
!     pass
  #####################################################################
  ##
  ## Required Dialog box support
--- 306,318 ----
    # back an event closing the application
    #`
    def closeTrap(self,event):
!     if event.CanVeto():
!       self.dispatchEvent('requestEXIT',_form=self._form)
!     else:
!       object = _eventObjToWin32Window(event)
!       object.Destroy()
!       # wxExit() TODO: Try and work this into navigator or here if it still 
hangs
! 
  #####################################################################
  ##
  ## Required Dialog box support
***************
*** 320,326 ****
  #    wxMessageDialog.__init__(self, interface,
  #                             text % (programVersion, formName 
,formVersion,author,description),
  #                             _("About"), wxOK | wxICON_INFORMATION)
!     print text
  #
  # UImessageBox
  #
--- 338,346 ----
  #    wxMessageDialog.__init__(self, interface,
  #                             text % (programVersion, formName 
,formVersion,author,description),
  #                             _("About"), wxOK | wxICON_INFORMATION)
!     win32api.MessageBox(None,
!         text % (programVersion, formName ,formVersion,author,description),
!         _("About"), win32con.MB_OK)
  #
  # UImessageBox
  #
***************
*** 331,334 ****
    def __init__(self, interface, message, caption):
      message = lineWrap(message,60)
  #    wxMessageDialog.__init__(self, interface, message, caption, 
style=wxOK|wxICON_EXCLAMATION)
!     print message
--- 351,354 ----
    def __init__(self, interface, message, caption):
      message = lineWrap(message,60)
  #    wxMessageDialog.__init__(self, interface, message, caption, 
style=wxOK|wxICON_EXCLAMATION)
!     win32api.MessageBox(None, message, caption, win32con.MB_OK)
Index: gnue/forms/src/uidrivers/win32/common.py
diff -c gnue/forms/src/uidrivers/win32/common.py:1.1 
gnue/forms/src/uidrivers/win32/common.py:1.2
*** gnue/forms/src/uidrivers/win32/common.py:1.1        Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/common.py    Sun Mar  2 17:45:12 2003
***************
*** 1,7 ****
  import string
! import win32gui, win32ui, win32con
  from win32con import *
  from gnue.common import events
  
  # Finishing creation of dictionary for language font encodings
  encodings = {
--- 1,8 ----
  import string
! import win32gui, win32con, win32ui
  from win32con import *
  from gnue.common import events
+ from gnue.common.apps import GConfig
  
  # Finishing creation of dictionary for language font encodings
  encodings = {
***************
*** 56,67 ****
  ##        
widget.SetFont(wxFont(int(gConfigForms('pointSize')),wxMODERN,wxNORMAL,\
  ##                              
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
    global _font
!   win32gui.SendMessage(widget.GetId(),
!                        WM_SETFONT,
!                        _font,
!                        0)
! 
! _font = win32gui.GetStockObject(SYSTEM_FIXED_FONT)
  
  def setWidgetBaseFont(font):
    global _font
--- 57,74 ----
  ##        
widget.SetFont(wxFont(int(gConfigForms('pointSize')),wxMODERN,wxNORMAL,\
  ##                              
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
    global _font
! #  win32gui.SendMessage(widget.GetId(),
! #                       WM_SETFONT,
! #                       _font,
! #                       0)
!   widget.SetFont(_font)
!   
! font_spec = {'name':'Courier New', 'height':int(gConfig('pointSize'))}
! _font = win32ui.CreateFont (font_spec)
! 
! #_font = win32gui.GetStockObject(SYSTEM_FIXED_FONT) #ANSI OEM SYSTEM
! #fn = win32gui.GetObject(_font)
! #print fn.lfHeight, fn.lfWidth,fn.lfCharSet,fn.lfPitchAndFamily
  
  def setWidgetBaseFont(font):
    global _font
Index: gnue/forms/src/uidrivers/win32/widgets/_base.py
diff -c gnue/forms/src/uidrivers/win32/widgets/_base.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/_base.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/_base.py:1.1 Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/_base.py     Sun Mar  2 17:45:12 2003
***************
*** 27,33 ****
  # NOTES:
  #
  
! import win32gui, win32con
  
  from gnue.common import events
  
--- 27,33 ----
  # NOTES:
  #
  
! import win32gui, win32con, win32ui
  
  from gnue.common import events
  
***************
*** 36,67 ****
  from gnue.forms.uidrivers.win32.common import *
  
  
! class Win32Window:
!   def __init__(self, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
!     print "params:",styleEx, className, windowTitle, style, x,y, 
width,height, parent
      if parent == 0:
        hparent = 0
      else:
        hparent = parent.GetId()
  
-     self._widget = win32gui.CreateWindowEx(styleEx, className, windowTitle, 
style, x,y, width,height, hparent, menu, instance, None)
      self._parent = parent
      self._children = []
      if parent:
        parent._children.append(self)
      
    def GetId(self):
!     return self._widget
  
!   def show(self):
      try:
!       win32gui.ShowWindow(self._widget, win32con.SW_SHOWNORMAL)
      except:
        pass
  
!   def hide(self):
      try:
!       win32gui.ShowWindow(self._widget, win32con.SW_HIDE)
      except:
        pass
  
--- 36,75 ----
  from gnue.forms.uidrivers.win32.common import *
  
  
! class Win32Base:
!   _connectTable = {}
! 
!   def Create(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
      if parent == 0:
        hparent = 0
      else:
        hparent = parent.GetId()
  
      self._parent = parent
      self._children = []
      if parent:
        parent._children.append(self)
+ 
+     self._whnd = win32gui.CreateWindowEx(styleEx, className, windowTitle, 
style, x,y, width,height, hparent, menu, instance, None)
+     self._PyCWnd = win32ui.CreateWindowFromHandle(self._whnd)
      
+     return self._whnd
+ 
+   def SetFont(self,font):
+     self._PyCWnd.SetFont(font,1)
+ 
    def GetId(self):
!     return self._whnd
  
!   def Show(self):
      try:
!       win32gui.ShowWindow(self._whnd, win32con.SW_SHOWNORMAL)
      except:
        pass
  
!   def Hide(self):
      try:
!       win32gui.ShowWindow(self._whnd, win32con.SW_HIDE)
      except:
        pass
  
***************
*** 71,76 ****
--- 79,169 ----
    def GetChildren(self):
      return self._children
  
+   def SetFocus(self):
+     win32gui.SendMessage(self._whnd, WM_SETFOCUS, 0, 0)
+ 
+   def SetValue(self, value):
+     win32gui.SetWindowText(self._whnd, str(value))
+ 
+   def GetValue(self):
+     return win32gui.GetWindowText(self._whnd)
+ 
+   def Enable(self, enabled):
+     if enabled:
+       win32gui.EnableWindow(self._whnd, 1)
+     else:
+       win32gui.EnableWindow(self._whnd, 0)
+ 
+   def Destroy(self):
+     win32gui.DestroyWindow(self._whnd)
+ 
+   def Connect(self, id, func):
+     self._connectTable[id] = func
+     
+ 
+ class Win32Window(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print "OnWMCommand Win32Window hwnd=", hwnd
+     self._connectTable[wParam]()
+ 
+ 
+ class Win32Box(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print "OnWMCommand Win32Box"
+     return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
+ 
+ 
+ class Win32Label(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print "OnWMCommand Win32Label"
+     return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
+ 
+ 
+ class Win32Entry(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print "OnWMCommand Win32Entry"
+     return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
+ 
+ 
+ class Win32Button(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print 'OnWMCommand in Win32Button', hwnd, wParam
+     if win32api.LOWORD(wParam) == win32con.BN_CLICKED:
+       print "button clicked"
+       gfObject = self._uiDriver._IdToGFObj[hwnd]
+       action = events.Event('buttonActivated',gfObject)
+       self._eventHandler(action)
+ 
+ 
+ class Win32Page(Win32Base):
+   def __init__(self, uidriver, styleEx, className, windowTitle, style, x,y, 
width,height, parent,menu=0,instance=0):
+     whnd=Win32Base.Create(self, uidriver, styleEx, className, windowTitle, 
style, x,y, width,height, parent,menu=0,instance=0)
+     uidriver._IdToWin32Obj[whnd] = self
+ 
+   def OnWMCommand(self, hwnd, msg, wParam, lParam):
+     print "OnWMCommand Win32Page", hwnd
+     return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
+ 
  #
  # UIHelper
  #
***************
*** 80,86 ****
  class UIHelper(UIWidget):
    def _addToCrossRef(self, widget, gfobject, uiobject):
      id = widget.GetId()
!     self._uiDriver._IdToWin32Obj[id]=widget
      self._uiDriver._IdToGFObj[id]=gfobject
      self._uiDriver._IdToUIObj[id]=uiobject
  #    widget.__origBackgroundColor = widget.GetBackgroundColour()
--- 173,179 ----
  class UIHelper(UIWidget):
    def _addToCrossRef(self, widget, gfobject, uiobject):
      id = widget.GetId()
! #    self._uiDriver._IdToWin32Obj[id]=widget
      self._uiDriver._IdToGFObj[id]=gfobject
      self._uiDriver._IdToUIObj[id]=uiobject
  #    widget.__origBackgroundColor = widget.GetBackgroundColour()
***************
*** 88,94 ****
    def _deleteFromCrossRef(self, widget, object):
      id = widget.GetId()
      try:
!       del self._uiDriver._IdToWin32Obj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
      except:
--- 181,187 ----
    def _deleteFromCrossRef(self, widget, object):
      id = widget.GetId()
      try:
! #      del self._uiDriver._IdToWin32Obj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
      except:
***************
*** 103,128 ****
    def show(self):
      print "showing", self.widgets
      for widget in self.widgets:
!       widget.show()
  
    def hide(self):
      print "hiding", self.widgets
      for widget in self.widgets:
!       widget.hide()
  
            
    def showModal(self):
      pass
  
!   def destroy(self):
!     win32gui.DestroyWindow(self)
  
  
    def indexedFocus(self, index):
      pass
  
    def setValue(self, value, index=0, enabled=1):
!     pass
  
    def setCursorPosition(self, position, index=0):
      pass
--- 196,260 ----
    def show(self):
      print "showing", self.widgets
      for widget in self.widgets:
!       widget.Show()
  
    def hide(self):
      print "hiding", self.widgets
      for widget in self.widgets:
!       widget.Hide()
  
            
    def showModal(self):
      pass
  
! #  def destroy(self):
! #    win32gui.DestroyWindow(self)
  
  
    def indexedFocus(self, index):
      pass
+ #    print "self.widgets[index]=",self.widgets,
+ #    print self.widgets[index], index, self.widgets[index].GetValue()
+ # TODO
+ #    self.widgets[index].SetFocus()
  
    def setValue(self, value, index=0, enabled=1):
!     # These must be here or dropdown style controls
!     # will get events they shouldn't and break.
!     widget = self.widgets[index]
! #    widget.SetEvtHandlerEnabled(FALSE)
! 
!     # Check if foreign key changed
! #    object = self._uiDriver._IdToGFObj[widget.GetId()]
! #    try:
! #      if object.style == "dropdown" and \
! #          not object._field._allowedValues == widget._origAllowedValues:
! #        try:
! #          # Not in wx 2.2.x
! #          widget.Freeze()
! #        except AttributeError:
! #          pass
! #        widget._origAllowedValues = object._field._allowedValues
! #        widget.Clear()
! #        for value in object._field._allowedValuesDescr:
! #          widget.Append(value)
! #        try:
! #          # Not in wx 2.2.x
! #          widget.Thaw()
! #        except AttributeError:
! #          pass
! #    except AttributeError:
! #      pass
! 
!     widget.SetValue(value)
!     widget.Enable(enabled)
! #    widget.SetEvtHandlerEnabled(TRUE)
! #    if enabled:
! #      widget.SetBackgroundColour(widget.__origBackgroundColor)
! #    else:
! #      widget.SetBackgroundColour(self._uiDriver._disabledColour)
! #    widget.Refresh()
! 
  
    def setCursorPosition(self, position, index=0):
      pass
***************
*** 140,146 ****
    def cleanup(self, object):
      for widget in self.widgets[:]:
        id = widget.GetId()
!       del self._uiDriver._IdToWin32Obj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
        self.widgets.pop(0)
--- 272,278 ----
    def cleanup(self, object):
      for widget in self.widgets[:]:
        id = widget.GetId()
! #      del self._uiDriver._IdToWin32Obj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
        self.widgets.pop(0)
Index: gnue/forms/src/uidrivers/win32/widgets/box.py
diff -c gnue/forms/src/uidrivers/win32/widgets/box.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/box.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/box.py:1.1   Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/box.py       Sun Mar  2 17:45:12 2003
***************
*** 28,34 ****
  #
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  
  #
  # UIBox
--- 28,34 ----
  #
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import *
  
  #
  # UIBox
***************
*** 40,53 ****
    def _createWidget(self, event, spacer):
  
      object = event.object
!     style = win32con.WS_CHILD | win32con.SS_BLACKFRAME
      styleEx = 0
!     newWidget = Win32Window(styleEx, 'STATIC', str(object.label), style,
                         object.Char__x*event.widgetWidth+(event.widgetWidth/2),
                         
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight+(event.widgetHeight/2),
                         (object.Char__width-1)*event.widgetWidth,
                         (object.Char__height-1)*event.widgetHeight,
                         event.container)
      return newWidget
  
  
--- 40,54 ----
    def _createWidget(self, event, spacer):
  
      object = event.object
!     style = win32con.WS_CHILD | win32con.SS_ETCHEDFRAME
      styleEx = 0
!     newWidget = Win32Box(self._uiDriver, styleEx, 'STATIC', 
str(object.label), style,
                         object.Char__x*event.widgetWidth+(event.widgetWidth/2),
                         
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight+(event.widgetHeight/2),
                         (object.Char__width-1)*event.widgetWidth,
                         (object.Char__height-1)*event.widgetHeight,
                         event.container)
+ 
      return newWidget
  
  
Index: gnue/forms/src/uidrivers/win32/widgets/button.py
diff -c gnue/forms/src/uidrivers/win32/widgets/button.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/button.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/button.py:1.1        Sun Feb 23 
18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/button.py    Sun Mar  2 17:45:12 2003
***************
*** 29,35 ****
  
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  from gnue.forms.uidrivers.win32.common import _eventObjToWin32Window
  from gnue.forms.uidrivers.win32.common import _setDefaultEventHandlers
  
--- 29,35 ----
  
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import *
  from gnue.forms.uidrivers.win32.common import _eventObjToWin32Window
  from gnue.forms.uidrivers.win32.common import _setDefaultEventHandlers
  
***************
*** 47,53 ****
  #                         )
      style = win32con.BS_PUSHBUTTON | win32con.WS_CHILD
      styleEx = 0
!     newWidget = Win32Window(styleEx, 'BUTTON', str(object.label), style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight, 
                          object.Char__width*event.widgetWidth,
--- 47,53 ----
  #                         )
      style = win32con.BS_PUSHBUTTON | win32con.WS_CHILD
      styleEx = 0
!     newWidget = Win32Button(self._uiDriver, styleEx, 'BUTTON', 
str(object.label), style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight, 
                          object.Char__width*event.widgetWidth,
Index: gnue/forms/src/uidrivers/win32/widgets/entry.py
diff -c gnue/forms/src/uidrivers/win32/widgets/entry.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/entry.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/entry.py:1.1 Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/entry.py     Sun Mar  2 17:45:12 2003
***************
*** 28,35 ****
  #
  
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  from gnue.forms.uidrivers.win32.common import _eventObjToWin32Window
  from gnue.forms.uidrivers.win32.common import _setDefaultEventHandlers
  
--- 28,36 ----
  #
  
  import win32gui, win32con
+ from gnue.common import events
  
! from gnue.forms.uidrivers.win32.widgets._base import *
  from gnue.forms.uidrivers.win32.common import _eventObjToWin32Window
  from gnue.forms.uidrivers.win32.common import _setDefaultEventHandlers
  
***************
*** 78,89 ****
                   win32con.WS_CHILD | win32con.WS_BORDER
      styleEx = win32con.WS_EX_CLIENTEDGE
  
!     newWidget = Win32Window(styleEx, 'EDIT', "", style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(object._gap*spacer))*event.widgetHeight,
                          self.itemWidth,
                          self.itemHeight,
                          event.container)
      return newWidget
  
  
--- 79,95 ----
                   win32con.WS_CHILD | win32con.WS_BORDER
      styleEx = win32con.WS_EX_CLIENTEDGE
  
!     newWidget = Win32Entry(self._uiDriver, styleEx, 'EDIT', "entry", style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(object._gap*spacer))*event.widgetHeight,
                          self.itemWidth,
                          self.itemHeight,
                          event.container)
+ 
+     value = ""
+ 
+     self._eventHandler = event.eventHandler
+     _setDefaultEventHandlers(newWidget, event.eventHandler, 
event.initialize,self._uiDriver)
      return newWidget
  
  
Index: gnue/forms/src/uidrivers/win32/widgets/form/widget.py
diff -c gnue/forms/src/uidrivers/win32/widgets/form/widget.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/form/widget.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/form/widget.py:1.1   Sun Feb 23 
18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/form/widget.py       Sun Mar  2 
17:45:12 2003
***************
*** 35,41 ****
  from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  import wrappers
  
! idPos = 101
  
  #
  # UIForm
--- 35,42 ----
  from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  import wrappers
  
! 
! idPos = 1001
  
  #
  # UIForm
***************
*** 51,83 ****
    #
    # Internal helper function to add a menu item and an event
    #
    def __addMenuItem(self, menu, text, help, event=None, form=None):
      global idPos
      id = idPos
      win32gui.AppendMenu(menu, win32con.MF_STRING, id, text)
      idPos +=1
- #    if event:
- #      EVT_MENU(self._uiDriver._wxapp, id,
- #        lambda event, l=self._uiDriver, e=event, f=self._form: 
l.dispatchEvent(events.Event(e,_form=f)))
- #      self.__eventMenuMapping[event] = id
      return id
! 
    def __appendSeparator(self, menu):
      win32gui.AppendMenu(menu, win32con.MF_SEPARATOR, 0, "")
  
!   def __addTBImageBitmap(self, image):
        hIcon = win32gui.LoadImage(0, self._uiDriver.images_dir+image, 
win32con.IMAGE_BITMAP, 24, 24, win32con.LR_LOADFROMFILE)
        tbab = struct.pack("ii", 0, hIcon)
!       win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_ADDBITMAP, 
1, tbab)
! 
!   def __addTBButton(self, iBitmap, idCommand):
  #    TBBUTTON stru (iBitmap, idCommand, fsState, fsStyle, dwData, iString)
        tbb=struct.pack("iiiili", iBitmap, idCommand, commctrl.TBSTATE_ENABLED, 
commctrl.TBSTYLE_BUTTON, 0, 0)
        win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_ADDBUTTONS, 
1, tbb)
  
    def __addTBSeparator(self):
!       tbb=struct.pack("iiiili", -1, 0, commctrl.TBSTATE_ENABLED, 
commctrl.TBSTYLE_SEP, 0, 0)
!       win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_ADDBUTTONS, 
1, tbb)
  
    #
    # _menuExitEvent
--- 52,91 ----
    #
    # Internal helper function to add a menu item and an event
    #
+   
    def __addMenuItem(self, menu, text, help, event=None, form=None):
      global idPos
      id = idPos
      win32gui.AppendMenu(menu, win32con.MF_STRING, id, text)
+     if event:
+ #      self.mainWindow.Connect(id, lambda event, l=self._uiDriver, e=event, 
f=self._form: l.dispatchEvent(events.Event(e,_form=f)))
+       self.mainWindow.Connect(id, lambda l=self._uiDriver, e=event, 
f=self._form: l.dispatchEvent(events.Event(e,_form=f)))
+       self.__eventMenuMapping[event] = id
      idPos +=1
      return id
!     
    def __appendSeparator(self, menu):
      win32gui.AppendMenu(menu, win32con.MF_SEPARATOR, 0, "")
  
!   def __addTBButton(self, idCommand, image, tip, text):
        hIcon = win32gui.LoadImage(0, self._uiDriver.images_dir+image, 
win32con.IMAGE_BITMAP, 24, 24, win32con.LR_LOADFROMFILE)
        tbab = struct.pack("ii", 0, hIcon)
!       iBitmap = win32gui.SendMessage(self._mainToolBar.GetId(), 
commctrl.TB_ADDBITMAP, 1, tbab)
!       
  #    TBBUTTON stru (iBitmap, idCommand, fsState, fsStyle, dwData, iString)
        tbb=struct.pack("iiiili", iBitmap, idCommand, commctrl.TBSTATE_ENABLED, 
commctrl.TBSTYLE_BUTTON, 0, 0)
        win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_ADDBUTTONS, 
1, tbb)
  
+       win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_ADDSTRING, 
0, tip); 
+ 
+   def __enableTBButton(self,index):
+       win32gui.SendMessage(self._mainToolBar.GetId(), commctrl.TB_HIDEBUTTON, 
0, index); 
+ 
    def __addTBSeparator(self):
!     pass
! # TODO: this doesn't work
! #      tbb=struct.pack("iiiili", 0, 0, commctrl.TBSTATE_ENABLED, 
commctrl.TBSTYLE_SEP, 0, 0)
! #      win32gui.SendMessage(self._mainToolBar.GetId(), 
commctrl.TB_ADDBUTTONS, 1, tbb)
  
    #
    # _menuExitEvent
***************
*** 85,106 ****
    # Catches the Exit event from the menu and make sure it closes in such a 
way to
    # trigger the closeTrap method
    #
!   def _menuExitEvent(self, event):
!     pass
! #    self.mainWindow.Close()
  
    def _createWidget(self, event, spacer):
      object = event.object
      #
      # Size based upon the form definition
      #
-     self.menu_sb_space = 0
- 
- ## TODO: This really isn't right...    
- ##    if not self._form._features['GUI:MENUBAR:SUPPRESS']:
- ##      self.menu_sb_space += 2
- ##    if not self._form._features['GUI:TOOLBAR:SUPPRESS']:
- ##      self.menu_sb_space += 2
        
      formWidth = int(self._form._layout.Char__width)
      formHeight = int(self._form._layout.Char__height)
--- 93,107 ----
    # Catches the Exit event from the menu and make sure it closes in such a 
way to
    # trigger the closeTrap method
    #
!   def _menuExitEvent(self):
! #    pass
!     self.mainWindow.Destroy()
  
    def _createWidget(self, event, spacer):
      object = event.object
      #
      # Size based upon the form definition
      #
        
      formWidth = int(self._form._layout.Char__width)
      formHeight = int(self._form._layout.Char__height)
***************
*** 108,139 ****
                        formHeight*self._uiDriver.widgetHeight)
      
      self._formSize = formSize = (formWidth*self._uiDriver.widgetWidth,
!                       
(formHeight+self.menu_sb_space)*self._uiDriver.widgetHeight)
! 
! 
!     # The main frame of this form
! #    self.mainWindow = wxFrame(NULL, -1, "", wxDefaultPosition)
!     ###self.mainWindow.SetSize(formSize)
! #    self.mainWindow.SetTitle(str(self._form.title))
! #    EVT_CLOSE(self.mainWindow,self.closeTrap)
! #    initFont(self.mainWindow,1)
  
  
      # Create the main window.
      style = win32con.WS_OVERLAPPEDWINDOW | win32con.WS_CLIPCHILDREN 
      styleEx = 0
!     self.mainWindow = Win32Window(styleEx, "GNUeWindow", 
str(self._form.title),
!       style,
!       0, 
!       0,
!       formWidth*self._uiDriver.widgetWidth,
!       (formHeight+self.menu_sb_space)*self._uiDriver.widgetHeight,0)
! 
!     # The status bar 
! #    self.statusBar = self.mainWindow.CreateStatusBar()
! #    self.statusBar.SetFieldsCount(5)
! #    self.statusBar.SetStatusWidths([-1,50,50,75,75])
! #    initFont(self.statusBar,0)
  
      # A window that provides the scrollbars 
  #    self._scrollWindow = self.mainWindow.panel = 
wxScrolledWindow(self.mainWindow,-1, wxDefaultPosition)
--- 109,132 ----
                        formHeight*self._uiDriver.widgetHeight)
      
      self._formSize = formSize = (formWidth*self._uiDriver.widgetWidth,
!                       formHeight*self._uiDriver.widgetHeight)
  
  
      # Create the main window.
+     if self._form._features['GUI:MENUBAR:SUPPRESS']:
+       buttonbarWidth = 0
+     else:
+       # TODO: calculate
+       buttonbarWidth = 12*(24+8)
+ 
      style = win32con.WS_OVERLAPPEDWINDOW | win32con.WS_CLIPCHILDREN 
      styleEx = 0
!     self.mainWindow = Win32Window(self._uiDriver, styleEx, 
self._uiDriver._wndclass, str(self._form.title),
!       style, 0, 0,
!       max(formWidth*self._uiDriver.widgetWidth+10, buttonbarWidth), # at 
least buttonbar width
!       formHeight*self._uiDriver.widgetHeight+100, # TODO: calculate +100 = 
space for buttonbar and statusbar
!       0)
! 
  
      # A window that provides the scrollbars 
  #    self._scrollWindow = self.mainWindow.panel = 
wxScrolledWindow(self.mainWindow,-1, wxDefaultPosition)
***************
*** 164,210 ****
        self.__eventMenuMapping = {}
  
        fileMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(fileMenu, _("&Save\tF6"),_('Save all changes to 
database.'),'requestCOMMIT', form=self._form)
!       self.__addMenuItem(fileMenu, _("&Clear Form\tF11"),_('Clear 
Form'),'requestROLLBACK', form=self._form)
        self.__appendSeparator(fileMenu)
  
!       self.__addMenuItem(fileMenu, _("&Print"),_('Perform print routine for 
this form.'),'requestPRINTOUT', form=self._form)
        self.__appendSeparator(fileMenu)
  
!       id = self.__addMenuItem(fileMenu, _("E&xit"),_('Leave the 
application.'), form=self._form)
  #      EVT_MENU(self._uiDriver._wxapp, id,  self._menuExitEvent)
        self.__eventMenuMapping['_exit_'] = id
  
        editMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(editMenu, _("C&ut"),_("Cut the selected 
text"),'requestCUT', form=self._form)
!       self.__addMenuItem(editMenu, _("&Copy"),_("Copy the selected text"), 
'requestCOPY', form=self._form)
!       self.__addMenuItem(editMenu, _("&Paste"),_("Paste 
text"),'requestPASTE', form=self._form)
  
        dataMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(dataMenu, _("&First Record\tCtrl+Up"),_('Navigate to 
first record in memory.'),'requestFIRSTRECORD', form=self._form)
!       self.__addMenuItem(dataMenu, _("&Previous Record\tUp"),_('Navigate to 
previous record in memory.'),'requestPREVRECORD', form=self._form)
!       self.__addMenuItem(dataMenu, _("&Next Record\tDown"),_('Navigate to 
next record in memory.'),'requestNEXTRECORD', form=self._form)
!       self.__addMenuItem(dataMenu, _("&Last Record\tCtrl+Down"),_('Navigate 
to last record in memory.'),'requestLASTRECORD', form=self._form)
!       id = self.__addMenuItem(dataMenu, _("&Jump to 
Record...\tF2"),_('Prompts for a record number to which the system should 
jump.'), form=self._form)
        
        #EVT_MENU(self._uiDriver._wxapp, id, _PROMPTFORRECORD)
        self.__eventMenuMapping['_promptForRecord_'] = id
  
!       self.__addMenuItem(dataMenu, _("N&ew Record\tF12"),_('Create a new 
record for data input.'),'requestNEWRECORD', form=self._form)
!       self.__addMenuItem(dataMenu, _("Mark Record for &Delete\tF5"),_('Mark 
record for removal at next commit.'),'requestMARKFORDELETE', form=self._form)
  
        self.__appendSeparator(dataMenu)
!       self.__addMenuItem(dataMenu, _("Next &Block\tPgDn"),_('Navigate to next 
data block.'),'requestNEXTBLOCK', form=self._form)
!       self.__addMenuItem(dataMenu, _("P&revious Block\tPgUp"),_('Navigate to 
previous data block.'),'requestPREVBLOCK', form=self._form)
  
        self.__appendSeparator(dataMenu)
!       self.__addMenuItem(dataMenu, _("&Enter Query\tF8"),_('Switch to input 
query mask mode.'),'requestENTERQUERY', form=self._form)
!       self.__addMenuItem(dataMenu, _("Execute &Query\tF9"), _('Execute query 
using current mask.'),'requestEXECQUERY', form=self._form)
  
        helpMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(helpMenu, _("&About..."), _('Display info about GNUe 
Forms.'),'requestABOUT', form=self._form)
  
        menuBar = win32gui.CreateMenu()
        style = win32con.MF_STRING | win32con.MF_POPUP
        win32gui.AppendMenu( menuBar, style, fileMenu, _("&File") )
        win32gui.AppendMenu( menuBar, style, editMenu, _("&Edit") )
--- 157,207 ----
        self.__eventMenuMapping = {}
  
        fileMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(fileMenu,_("&Save\tF6"),_('Save all changes to 
database.'),'requestCOMMIT', form=self._form)
!       self.__addMenuItem(fileMenu,_("&Clear Form\tF11"),_('Clear 
Form'),'requestROLLBACK', form=self._form)
        self.__appendSeparator(fileMenu)
  
!       self.__addMenuItem(fileMenu,_("&Print"),_('Perform print routine for 
this form.'),'requestPRINTOUT', form=self._form)
        self.__appendSeparator(fileMenu)
  
!       id = self.__addMenuItem(fileMenu,_("E&xit"),_('Leave the 
application.'), form=self._form)
  #      EVT_MENU(self._uiDriver._wxapp, id,  self._menuExitEvent)
+       self.mainWindow.Connect(id, self._menuExitEvent)
        self.__eventMenuMapping['_exit_'] = id
  
        editMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(editMenu,_("C&ut"),_("Cut the selected 
text"),'requestCUT', form=self._form)
!       self.__addMenuItem(editMenu,_("&Copy"),_("Copy the selected text"), 
'requestCOPY', form=self._form)
!       self.__addMenuItem(editMenu,_("&Paste"),_("Paste text"),'requestPASTE', 
form=self._form)
  
        dataMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(dataMenu,_("&First Record\tCtrl+Up"),_('Navigate to 
first record in memory.'),'requestFIRSTRECORD', form=self._form)
!       self.__addMenuItem(dataMenu,_("&Previous Record\tUp"),_('Navigate to 
previous record in memory.'),'requestPREVRECORD', form=self._form)
!       self.__addMenuItem(dataMenu,_("&Next Record\tDown"),_('Navigate to next 
record in memory.'),'requestNEXTRECORD', form=self._form)
!       self.__addMenuItem(dataMenu,_("&Last Record\tCtrl+Down"),_('Navigate to 
last record in memory.'),'requestLASTRECORD', form=self._form)
!       id = self.__addMenuItem(dataMenu,_("&Jump to Record...\tF2"),_('Prompts 
for a record number to which the system should jump.'), form=self._form)
        
        #EVT_MENU(self._uiDriver._wxapp, id, _PROMPTFORRECORD)
+       # TODO:
+       #self.mainWindow.Connect(id, _PROMPTFORRECORD)
        self.__eventMenuMapping['_promptForRecord_'] = id
  
!       self.__addMenuItem(dataMenu,_("N&ew Record\tF12"),_('Create a new 
record for data input.'),'requestNEWRECORD', form=self._form)
!       self.__addMenuItem(dataMenu,_("Mark Record for &Delete\tF5"),_('Mark 
record for removal at next commit.'),'requestMARKFORDELETE', form=self._form)
  
        self.__appendSeparator(dataMenu)
!       self.__addMenuItem(dataMenu,_("Next &Block\tPgDn"),_('Navigate to next 
data block.'),'requestNEXTBLOCK', form=self._form)
!       self.__addMenuItem(dataMenu,_("P&revious Block\tPgUp"),_('Navigate to 
previous data block.'),'requestPREVBLOCK', form=self._form)
  
        self.__appendSeparator(dataMenu)
!       self.__addMenuItem(dataMenu,_("&Enter Query\tF8"),_('Switch to input 
query mask mode.'),'requestENTERQUERY', form=self._form)
!       self.__addMenuItem(dataMenu,_("Execute &Query\tF9"), _('Execute query 
using current mask.'),'requestEXECQUERY', form=self._form)
  
        helpMenu = win32gui.CreatePopupMenu()
!       self.__addMenuItem(helpMenu,_("&About..."), _('Display info about GNUe 
Forms.'),'requestABOUT', form=self._form)
  
        menuBar = win32gui.CreateMenu()
+ 
        style = win32con.MF_STRING | win32con.MF_POPUP
        win32gui.AppendMenu( menuBar, style, fileMenu, _("&File") )
        win32gui.AppendMenu( menuBar, style, editMenu, _("&Edit") )
***************
*** 222,305 ****
        hinst = win32api.GetModuleHandle(None)
        style = win32con.WS_CHILD | commctrl.TBSTYLE_TOOLTIPS #| 
commctrl.TBSTYLE_FLAT
        styleEx = 0
!       self._mainToolBar = mainToolBar = Win32Window(styleEx, 
commctrl.TOOLBARCLASSNAME, "GNUe toolbar", 
          style, 0, 0, 0, 0,
!         self.mainWindow, 8001, hinst)
  
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_BUTTONSTRUCTSIZE, 
12, 0); 
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_SETBITMAPSIZE, 0, 
0x00180018); # 24x24
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_SETBUTTONSIZE, 0, 
0x00180018);  # 24x24
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_AUTOSIZE, 0, 0)
  
! #      iconPath = self._uiDriver.images_dir #+gConfigForms('tb_commit')
!       self.__addTBImageBitmap("tb_save.bmp")
!       self.__addTBImageBitmap("tb_new.bmp")
!       self.__addTBImageBitmap("tb_trash.bmp")
!       self.__addTBImageBitmap("tb_top.bmp")
!       self.__addTBImageBitmap("tb_up_arrow.bmp")
!       self.__addTBImageBitmap("tb_down_arrow.bmp")
!       self.__addTBImageBitmap("tb_bottom.bmp")
!       self.__addTBImageBitmap("tb_jump-to.bmp")
!       self.__addTBImageBitmap("tb_search.bmp")
!       self.__addTBImageBitmap("tb_exec.bmp")
!       self.__addTBImageBitmap("tb_undo.bmp")
!       self.__addTBImageBitmap("tb_exit.bmp")
! 
!       self.__addTBButton(0, 101)
!       self.__addTBButton(1, 113)
!       self.__addTBButton(2, 114)
! #      self.__addTBSeparator()
!       self.__addTBButton(3, 108)
!       self.__addTBButton(4, 109)
!       self.__addTBButton(5, 110)
!       self.__addTBButton(6, 111)
!       self.__addTBButton(7, 112)
! #      self.__addTBSeparator()
!       self.__addTBButton(8, 117)
!       self.__addTBButton(9, 118)
! #      self.__addTBSeparator()
!       self.__addTBButton(10, 102)
!       self.__addTBButton(11, 104)
!   
!       mainToolBar.show()
!       
! #      if sys.platform == 'win32':
! #        mainToolBar = wxToolBar(self.mainWindow, -1)
! #      else:
! #        mainToolBar = wxToolBar(self.mainWindow,-1, 
style=wxTB_HORIZONTAL|wxTB_DOCKABLE)
! 
! #      mainToolBar.SetToolBitmapSize(wxSize(24,24))
! #      mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestCOMMIT'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_commit'),
! #                                                                             
     wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Save  Changes"), _('Save all 
changes to database.'))
! #      mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestNEWRECORD'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_insert'),
! #                                                                             
        wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Insert Record"), _('Create a 
new record for data input.'))
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestMARKFORDELETE'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_delete'),
! #                                                                             
            wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Delete Record"), _('Mark 
record for removal at next commit.'))
! #      mainToolBar.AddSeparator()
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestFIRSTRECORD'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_first'),
! #                                                                             
          wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("First Record"),_('Navigate 
to first record in memory.'))
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestPREVRECORD'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_previous'),
! #                                                                             
         wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Previous Record"),_('Navigate 
to previous record in memory.'))
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestNEXTRECORD'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_next'),
! #                                                                             
         wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Next Record"),_('Navigate to 
next record in memory.'))
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestLASTRECORD'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_last'),
! #                                                                             
         wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Last Record"),_('Navigate to 
last record in memory.'))
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['_promptForRecord_'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_jump'),
! #                                                                             
         wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Jump to Record"),_('Navigate 
to user specified record in memory.'))
! #      mainToolBar.AddSeparator()
! #      
mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestENTERQUERY'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_query_prep'),
! #                                                                             
         wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Prepare Query"), _('Switch to 
input query mask mode.'))
! #      mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestEXECQUERY'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_query'),
! #                                                                             
        wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Execute Query"), _('Execute 
query using current mask.'))
! #      mainToolBar.AddSeparator()
! #      mainToolBar.AddSimpleTool(self.__eventMenuMapping['requestROLLBACK'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_rollback'),
! #                                                                             
       wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Clear Form"), _('Clear Form'))
! #      mainToolBar.AddSimpleTool(self.__eventMenuMapping['_exit_'], 
wxImage(self._uiDriver.images_dir+gConfigForms('tb_exit'),
! #                                                                           
wxBITMAP_TYPE_PNG).ConvertToBitmap(), _("Exit Form"), _('Exit Form'))
! 
! #      self._mainToolBar = mainToolBar
! #      self.mainWindow.SetToolBar( mainToolBar );
! #      self._mainToolBar.Realize()
  
      self._eventHandler = event.eventHandler
  
--- 219,275 ----
        hinst = win32api.GetModuleHandle(None)
        style = win32con.WS_CHILD | commctrl.TBSTYLE_TOOLTIPS #| 
commctrl.TBSTYLE_FLAT
        styleEx = 0
!       self._mainToolBar = mainToolBar = Win32Window(self._uiDriver, styleEx, 
commctrl.TOOLBARCLASSNAME, "GNUe toolbar", 
          style, 0, 0, 0, 0,
!         self.mainWindow, 8002, hinst)
  
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_BUTTONSTRUCTSIZE, 
12, 0); 
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_SETBITMAPSIZE, 0, 
0x00180018); # 24x24
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_SETBUTTONSIZE, 0, 
0x00180018);  # 24x24
        win32gui.SendMessage(mainToolBar.GetId(), commctrl.TB_AUTOSIZE, 0, 0)
  
!       self.__addTBButton(self.__eventMenuMapping["requestCOMMIT"], 
"tb_save.bmp",
!                                  _("Save  Changes"), _('Save all changes to 
database.'))
!       self.__addTBButton(self.__eventMenuMapping["requestNEWRECORD"], 
"tb_new.bmp",
!                                  _("Insert Record"), _('Create a new record 
for data input.'))
!       self.__addTBButton(self.__eventMenuMapping["requestMARKFORDELETE"], 
"tb_trash.bmp",
!                                  _("Delete Record"), _('Mark record for 
removal at next commit.'))
!       self.__addTBSeparator()
!       self.__addTBButton(self.__eventMenuMapping["requestFIRSTRECORD"], 
"tb_top.bmp",
!                                  _("First Record"),_('Navigate to first 
record in memory.'))
!       self.__addTBButton(self.__eventMenuMapping["requestPREVRECORD"], 
"tb_up_arrow.bmp",
!                                  _("Previous Record"),_('Navigate to previous 
record in memory.'))
!       self.__addTBButton(self.__eventMenuMapping["requestNEXTRECORD"], 
"tb_down_arrow.bmp",
!                                  _("Next Record"),_('Navigate to next record 
in memory.'))
!       self.__addTBButton(self.__eventMenuMapping["requestLASTRECORD"], 
"tb_bottom.bmp",
!                                  _("Last Record"),_('Navigate to last record 
in memory.'))
!       self.__addTBButton(self.__eventMenuMapping["_promptForRecord_"], 
"tb_jump-to.bmp",
!                                  _("Jump to Record"),_('Navigate to user 
specified record in memory.'))
!       self.__addTBSeparator()
!       self.__addTBButton(self.__eventMenuMapping["requestENTERQUERY"], 
"tb_search.bmp",
!                                  _("Prepare Query"), _('Switch to input query 
mask mode.'))
!       self.__addTBButton(self.__eventMenuMapping["requestEXECQUERY"], 
"tb_exec.bmp",
!                                  _("Execute Query"), _('Execute query using 
current mask.'))
!       self.__addTBSeparator()
!       self.__addTBButton(self.__eventMenuMapping["requestROLLBACK"], 
"tb_undo.bmp",
!                                  _("Clear Form"), _('Clear Form'))
!       self.__addTBButton(self.__eventMenuMapping["_exit_"], "tb_exit.bmp",
!                                  _("Exit Form"), _('Exit Form'))
!       mainToolBar.Show()
! 
! 
!     if not self._form._features['GUI:STATUSBAR:SUPPRESS']:
!       hinst = win32api.GetModuleHandle(None)
!       style = win32con.WS_CHILD | win32con.WS_VISIBLE | 
commctrl.SBARS_SIZEGRIP
!       styleEx = 0
!       self.statusBar = Win32Window(self._uiDriver, styleEx, 
commctrl.STATUSCLASSNAME, "", 
!         style, 0, 0, 0, 0,
!         self.mainWindow, 8001, hinst)
!       x=formWidth*self._uiDriver.widgetWidth
!       statwidths = 
struct.pack("iiiii",x-75-75-50-50,x-75-75-50,x-75-75,x-75,x)
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETPARTS, 5, 
statwidths)
!       win32gui.SendMessage(self.statusBar.GetId(), win32con.WM_SIZE, 0, 0)
! 
  
      self._eventHandler = event.eventHandler
  
***************
*** 333,375 ****
    # Makes the requested page visible while hiding the others
    #
    def gotoPage(self,event):
      
self._wrapper.setPage(self._uiDriver._gfObjToUIWidget[event.data].widgets[0])
      
! ##    if not self._notebook:
! ##      for page in self._uiPageList:
! ##        if page != uiPage:
! ##          page.hide()
! ##        else:
! ##          page.show()
! ##    else:
! ##      # uiPage widgets only contain 1 item
! ##      
! ##      pageId = uiPage.widgets[0].GetId()
! ##      
! ##      for count in range(self._notebook.GetPageCount()):
! ##        if pageId == self._notebook.GetPage(count).GetId():
! ##          self._notebook.SetSelection(count)
        
                       
    #
    # _setStatusBar
    #
    def _setStatusBar(self,tip, statusValue, insertValue, currentRecord, 
maxRecord, currentPage, maxPage):
!     pass
! #    if tip: self.statusBar.SetStatusText(str(tip),0)
  
! #    if statusValue:
! #      self.statusBar.SetStatusText(statusValue,1)
  
! #    if insertValue:
! #      self.statusBar.SetStatusText(insertValue,2)
  
! #    if currentRecord and  maxRecord:
! #      self.statusBar.SetStatusText(string.strip("%s/%s" % 
(currentRecord,maxRecord)),3)
  
! #    if currentPage and  maxPage:
! #      self.statusBar.SetStatusText(string.strip("%s/%s" % 
(currentPage,maxPage)),4)
  
      #
      # Adjust the status fields to reflect width of text in them
      #
--- 303,347 ----
    # Makes the requested page visible while hiding the others
    #
    def gotoPage(self,event):
+     print "gotoPage event=",event
      
self._wrapper.setPage(self._uiDriver._gfObjToUIWidget[event.data].widgets[0])
      
!     if not self._notebook:
!       for page in self._uiPageList:
!         if page != uiPage:
!           page.hide()
!         else:
!           page.show()
!     else:
!       # uiPage widgets only contain 1 item
!       
!       pageId = uiPage.widgets[0].GetId()
!       
!       for count in range(self._notebook.GetPageCount()):
!         if pageId == self._notebook.GetPage(count).GetId():
!           self._notebook.SetSelection(count)
        
                       
    #
    # _setStatusBar
    #
    def _setStatusBar(self,tip, statusValue, insertValue, currentRecord, 
maxRecord, currentPage, maxPage):
!     if tip:
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETTEXT, 0, 
str(tip))
  
!     if statusValue:
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETTEXT, 1, 
statusValue)
  
!     if insertValue:
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETTEXT, 2, 
insertValue)
  
!     if currentRecord and  maxRecord:
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETTEXT, 3, 
string.strip("%s/%s" % (currentRecord,maxRecord)))
  
!     if currentPage and  maxPage:
!       win32gui.SendMessage(self.statusBar.GetId(), commctrl.SB_SETTEXT, 4, 
string.strip("%s/%s" % (currentPage,maxPage)))
  
+     return
      #
      # Adjust the status fields to reflect width of text in them
      #
Index: gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py
diff -c gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py:1.1 Sun Feb 23 
18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/form/wrappers.py     Sun Mar  2 
17:45:12 2003
***************
*** 32,38 ****
  
  from gnue.common import events
  from gnue.common.apps import GDebug
! from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  
  class ScrollableWrapper(Win32Window): 
    def __init__(self, uiform): 
--- 32,38 ----
  
  from gnue.common import events
  from gnue.common.apps import GDebug
! from gnue.forms.uidrivers.win32.widgets._base import *
  
  class ScrollableWrapper(Win32Window): 
    def __init__(self, uiform): 
***************
*** 45,55 ****
      self.layoutSize = (formWidth*uiform._uiDriver.widgetWidth,
                        formHeight*uiform._uiDriver.widgetHeight)
  
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD
      styleEx = 0
!     self.sw=Win32Window(styleEx, "GNUeWindow", "ScrollableWrapper", style,
          0, 
!         24,
          formWidth*uiform._uiDriver.widgetWidth,
          formHeight*uiform._uiDriver.widgetHeight,
          frame)
--- 45,56 ----
      self.layoutSize = (formWidth*uiform._uiDriver.widgetWidth,
                        formHeight*uiform._uiDriver.widgetHeight)
  
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD #| 
win32con.WS_THICKFRAME
!                #| win32con.WS_VSCROLL | win32con.WS_HSCROLL
      styleEx = 0
!     self.sw=Win32Window(self.uiform._uiDriver, styleEx, 
self.uiform._uiDriver._wndclass, "ScrollableWrapper", style,
          0, 
!         33, # TODO: size of toolbar
          formWidth*uiform._uiDriver.widgetWidth,
          formHeight*uiform._uiDriver.widgetHeight,
          frame)
***************
*** 68,74 ****
      # not a wxPanel set per page right after this
  ##    self.SetVirtualSize(self.pane.GetSize())
  ##    tempx,tempy =  self.pane.GetSizeTuple()
!     self.show()
  ##    self.fixScrollbars()
      
            
--- 69,75 ----
      # not a wxPanel set per page right after this
  ##    self.SetVirtualSize(self.pane.GetSize())
  ##    tempx,tempy =  self.pane.GetSizeTuple()
!     self.Show()
  ##    self.fixScrollbars()
      
            
***************
*** 153,159 ****
                                       
  #
  # Single pages        win32con.CW_USEDEFAULT, 
- 
  #
  class PlainWrapper(ScrollableWrapper): 
    def __init__(self, *args, **parms): 
--- 154,159 ----
***************
*** 162,185 ****
  #    self.pane.Show()
      formWidth = int(self.form._layout.Char__width)
      formHeight = int(self.form._layout.Char__height)
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD
      styleEx = 0
!     self.pane = Win32Window(styleEx, "GNUeWindow", "PlainWrapper", style,
          0, 
          0,
          formWidth*self.uiform._uiDriver.widgetWidth,
          formHeight*self.uiform._uiDriver.widgetHeight,
          self.sw)
!     self.pane.show()
  
    def createPage(self, object): 
  #    newWidget = wxPanel(self.pane, -1,  size=self.layoutSize)
  
      formWidth = int(self.form._layout.Char__width)
      formHeight = int(self.form._layout.Char__height)
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD
      styleEx = 0
!     newWidget = Win32Window(styleEx, "GNUeWindow", "createPage", style,
          0, 
          0,
          formWidth*self.uiform._uiDriver.widgetWidth,
--- 162,186 ----
  #    self.pane.Show()
      formWidth = int(self.form._layout.Char__width)
      formHeight = int(self.form._layout.Char__height)
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD #| win32con.WS_BORDER
      styleEx = 0
!     self.pane = Win32Window(self.uiform._uiDriver, styleEx, 
self.uiform._uiDriver._wndclass, "PlainWrapper", style,
          0, 
          0,
          formWidth*self.uiform._uiDriver.widgetWidth,
          formHeight*self.uiform._uiDriver.widgetHeight,
          self.sw)
! 
!     self.pane.Show()
  
    def createPage(self, object): 
  #    newWidget = wxPanel(self.pane, -1,  size=self.layoutSize)
  
      formWidth = int(self.form._layout.Char__width)
      formHeight = int(self.form._layout.Char__height)
!     style = win32con.WS_OVERLAPPED | win32con.WS_CHILD #| win32con.WS_BORDER
      styleEx = 0
!     newWidget = Win32Page(self.uiform._uiDriver, styleEx, 
self.uiform._uiDriver._wndclass, "createPage", style,
          0, 
          0,
          formWidth*self.uiform._uiDriver.widgetWidth,
***************
*** 188,199 ****
  
      # Only show first page
      if not self._fitted:
!       newWidget.show()
      else:
!       newWidget.hide()
        
      self._pageList.append(newWidget)
!     print self._pageList
      self.fit()
      return newWidget
  
--- 189,200 ----
  
      # Only show first page
      if not self._fitted:
!       newWidget.Show()
      else:
!       newWidget.Hide()
        
      self._pageList.append(newWidget)
!     print "createPage.self._pageList=",self._pageList
      self.fit()
      return newWidget
  
***************
*** 207,213 ****
  ##    self.frame.Fit()
      self._fitted = 1
  
!   def setPage(self, page): 
      for p in self._pageList:
        if p != page:
          p.Hide()
--- 208,215 ----
  ##    self.frame.Fit()
      self._fitted = 1
  
!   def setPage(self, page):
!     print "setPage",page,self._pageList
      for p in self._pageList:
        if p != page:
          p.Hide()
Index: gnue/forms/src/uidrivers/win32/widgets/label.py
diff -c gnue/forms/src/uidrivers/win32/widgets/label.py:1.1 
gnue/forms/src/uidrivers/win32/widgets/label.py:1.2
*** gnue/forms/src/uidrivers/win32/widgets/label.py:1.1 Sun Feb 23 18:43:32 2003
--- gnue/forms/src/uidrivers/win32/widgets/label.py     Sun Mar  2 17:45:12 2003
***************
*** 29,35 ****
  
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import UIHelper, Win32Window
  
  #
  # UILabel
--- 29,35 ----
  
  import win32gui, win32con
  
! from gnue.forms.uidrivers.win32.widgets._base import *
  
  #
  # UILabel
***************
*** 46,52 ****
      object = event.object
      style = self.alignmentStyle[object.alignment]
      styleEx = 0
!     newWidget = Win32Window(styleEx, 'STATIC', str(object.text), style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight, 
                          self.itemWidth,
--- 46,52 ----
      object = event.object
      style = self.alignmentStyle[object.alignment]
      styleEx = 0
!     newWidget = Win32Label(self._uiDriver, styleEx, 'STATIC', 
str(object.text), style,
                          object.Char__x*event.widgetWidth,
                          
(object.Char__y+spacer+(spacer*object._gap))*event.widgetHeight, 
                          self.itemWidth,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]