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: Wed, 25 Jun 2003 19:05:57 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue-forms
Branch:         
Changes by:     Bajusz Tamás <address@hidden>   03/06/25 19:05:57

Modified files:
        src/uidrivers/win32: GFwin32App.py UIdriver.py 
        src/uidrivers/win32/widgets: _base.py 
        src/uidrivers/win32/widgets/form: widget.py 

Log message:
        fixing win32 forms driver to let run multiple form instances from 
navigator

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/win32/GFwin32App.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/win32/UIdriver.py.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/win32/widgets/_base.py.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/win32/widgets/form/widget.py.diff?tr1=1.19&tr2=1.20&r1=text&r2=text

Patches:
Index: gnue-forms/src/uidrivers/win32/GFwin32App.py
diff -c gnue-forms/src/uidrivers/win32/GFwin32App.py:1.4 
gnue-forms/src/uidrivers/win32/GFwin32App.py:1.5
*** gnue-forms/src/uidrivers/win32/GFwin32App.py:1.4    Thu May  8 16:14:07 2003
--- gnue-forms/src/uidrivers/win32/GFwin32App.py        Wed Jun 25 19:05:57 2003
***************
*** 41,51 ****
  
  class GFwin32App:
    _mainLoop= None
-   
-   def __init__(self):
-     pass
-     #wxInitAllImageHandlers()
  
    def MainLoop (self):
          # just to launch one win32's mainloop
          # otherwise, the app does not finishes cleanly when several windows 
are open
--- 41,50 ----
  
  class GFwin32App:
    _mainLoop= None
  
+   _HwndToTkObj = {}
+   _MainWindowList = []
+   
    def MainLoop (self):
          # just to launch one win32's mainloop
          # otherwise, the app does not finishes cleanly when several windows 
are open
Index: gnue-forms/src/uidrivers/win32/UIdriver.py
diff -c gnue-forms/src/uidrivers/win32/UIdriver.py:1.17 
gnue-forms/src/uidrivers/win32/UIdriver.py:1.18
*** gnue-forms/src/uidrivers/win32/UIdriver.py:1.17     Wed Jun  4 13:00:16 2003
--- gnue-forms/src/uidrivers/win32/UIdriver.py  Wed Jun 25 19:05:57 2003
***************
*** 68,74 ****
  def OnWMDefault(hwnd, msg, wParam, lParam, widget):
    return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
  
- 
  #
  # GFUserInterface
  #
--- 68,73 ----
***************
*** 77,83 ****
  #
  class GFUserInterface(commonToolkit.GFUserInterface):
    _wndclass = None
!   
    _message_map = {
      win32con.WM_MENUSELECT : OnWMMenuselect,
      win32con.WM_NOTIFY : OnWMNotify,
--- 76,82 ----
  #
  class GFUserInterface(commonToolkit.GFUserInterface):
    _wndclass = None
! 
    _message_map = {
      win32con.WM_MENUSELECT : OnWMMenuselect,
      win32con.WM_NOTIFY : OnWMNotify,
***************
*** 91,96 ****
--- 90,112 ----
      commonToolkit.GFUserInterface.__init__(self,eventController,disableSplash)
      self._disabledColour = afxres.AFX_IDC_COLOR_LIGHTGRAY
  
+ 
+   def _wndproc(self, hwnd, msg, wParam, lParam):
+     try:
+       widget = self._win32app._HwndToTkObj[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()
+ 
      ################################################################
      # win32 Specifics
      ################################################################
***************
*** 111,132 ****
        wc.lpfnWndProc = self._wndproc
        self.__class__._wndclass = win32gui.RegisterClass(wc)
  
-   def _wndproc(self, hwnd, msg, wParam, lParam):
-     try:
-       widget = self._IdToTkObj[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
      #
--- 127,132 ----
***************
*** 186,194 ****
  
      if exitApp:
        for child in self._children:
          child.mainWindow.Destroy()
  
!     win32gui.PostQuitMessage(0) # Terminate the app.
      for child in self._children:
        if child._form.name != formName:
          child.mainWindow.Enable(1)
--- 186,200 ----
  
      if exitApp:
        for child in self._children:
+         self._win32app._MainWindowList.remove(child.mainWindow)
          child.mainWindow.Destroy()
  
!     if formName != "__main__":
!       win32gui.PostQuitMessage(0) # Terminate the dialog
!     else:
!       if len(self._win32app._MainWindowList) == 0:
!         win32gui.PostQuitMessage(0) # Terminate the app.
! 
      for child in self._children:
        if child._form.name != formName:
          child.mainWindow.Enable(1)
Index: gnue-forms/src/uidrivers/win32/widgets/_base.py
diff -c gnue-forms/src/uidrivers/win32/widgets/_base.py:1.19 
gnue-forms/src/uidrivers/win32/widgets/_base.py:1.20
*** gnue-forms/src/uidrivers/win32/widgets/_base.py:1.19        Thu May 22 
16:11:02 2003
--- gnue-forms/src/uidrivers/win32/widgets/_base.py     Wed Jun 25 19:05:57 2003
***************
*** 67,73 ****
      self._PyCWnd = win32ui.CreateWindowFromHandle(self._hwnd)
      
      self._uiDriver = uidriver
!     uidriver._IdToTkObj[self._hwnd] = self
  
      if className in ['STATIC', 'BUTTON', 'COMBOBOX', 'EDIT']:
        self.Show() 
--- 67,73 ----
      self._PyCWnd = win32ui.CreateWindowFromHandle(self._hwnd)
      
      self._uiDriver = uidriver
!     self._uiDriver._win32app._HwndToTkObj[self._hwnd] = self
  
      if className in ['STATIC', 'BUTTON', 'COMBOBOX', 'EDIT']:
        self.Show() 
***************
*** 334,344 ****
      hwndFrom, idFrom, code, iItem, iSubItem, uNewState, uOldState, uChanged, 
actionx, actiony, lparam \
                = struct.unpack(format, buf)
      if code == -552: #commctrl.TCN_SELCHANGING
!       window = self._uiDriver._IdToTkObj[hwndFrom]
        pageId = win32gui.SendMessage(window.GetHwnd(), commctrl.TCM_GETCURSEL, 
0, 0)
        window._children[pageId].Hide()
      elif code == -551: #commctrl.TCN_SELCHANGE
!       window = self._uiDriver._IdToTkObj[hwndFrom]
        pageId = win32gui.SendMessage(window.GetHwnd(), commctrl.TCM_GETCURSEL, 
0, 0)
        window._children[pageId].Show()
  
--- 334,344 ----
      hwndFrom, idFrom, code, iItem, iSubItem, uNewState, uOldState, uChanged, 
actionx, actiony, lparam \
                = struct.unpack(format, buf)
      if code == -552: #commctrl.TCN_SELCHANGING
!       window = self._uiDriver._win32app._HwndToTkObj[hwndFrom]
        pageId = win32gui.SendMessage(window.GetHwnd(), commctrl.TCM_GETCURSEL, 
0, 0)
        window._children[pageId].Hide()
      elif code == -551: #commctrl.TCN_SELCHANGE
!       window = self._uiDriver._win32app._HwndToTkObj[hwndFrom]
        pageId = win32gui.SendMessage(window.GetHwnd(), commctrl.TCM_GETCURSEL, 
0, 0)
        window._children[pageId].Show()
  
***************
*** 400,406 ****
  class Win32Page(Win32Base):
  
    def OnWMCommand(self, hwnd, msg, wParam, lParam):
!     window = self._uiDriver._IdToTkObj[lParam]
      window.OnWMCommand(hwnd, msg, wParam, lParam)
  
  
--- 400,406 ----
  class Win32Page(Win32Base):
  
    def OnWMCommand(self, hwnd, msg, wParam, lParam):
!     window = self._uiDriver._win32app._HwndToTkObj[lParam]
      window.OnWMCommand(hwnd, msg, wParam, lParam)
  
  
***************
*** 424,430 ****
  class UIHelper(UIWidget):
    def _addToCrossRef(self, widget, gfobject, uiobject):
      id = widget.GetId()
- #    self._uiDriver._IdToTkObj[id]=widget
      self._uiDriver._IdToGFObj[id]=gfobject
      self._uiDriver._IdToUIObj[id]=uiobject
  #    widget.__origBackgroundColor = widget.GetBackgroundColour()
--- 424,429 ----
***************
*** 432,438 ****
    def _deleteFromCrossRef(self, widget, object):
      id = widget.GetId()
      try:
- #      del self._uiDriver._IdToTkObj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
      except:
--- 431,436 ----
***************
*** 507,513 ****
    def cleanup(self, object):
      for widget in self.widgets[:]:
        id = widget.GetId()
- #      del self._uiDriver._IdToTkObj[id]
        del self._uiDriver._IdToGFObj[id]
        del self._uiDriver._IdToUIObj[id]
        self.widgets.pop(0)
--- 505,510 ----
Index: gnue-forms/src/uidrivers/win32/widgets/form/widget.py
diff -c gnue-forms/src/uidrivers/win32/widgets/form/widget.py:1.19 
gnue-forms/src/uidrivers/win32/widgets/form/widget.py:1.20
*** gnue-forms/src/uidrivers/win32/widgets/form/widget.py:1.19  Mon Jun 23 
03:41:56 2003
--- gnue-forms/src/uidrivers/win32/widgets/form/widget.py       Wed Jun 25 
19:05:57 2003
***************
*** 92,97 ****
--- 92,99 ----
        
formHeight*self._uiDriver.widgetHeight+self.buttonbarHeight+self.tabHeight+90,
        0)
  
+     self._uiDriver._win32app._MainWindowList.append(self.mainWindow)
+ 
      if self._form.style == 'dialog':
        centerWindow(self.mainWindow.GetHwnd())
  




reply via email to

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