commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r8977 - in trunk/gnue-forms/src/uidrivers/win32: . widgets/form


From: btami
Subject: [gnue] r8977 - in trunk/gnue-forms/src/uidrivers/win32: . widgets/form
Date: Sun, 5 Nov 2006 16:41:58 -0600 (CST)

Author: btami
Date: 2006-11-05 16:41:57 -0600 (Sun, 05 Nov 2006)
New Revision: 8977

Modified:
   trunk/gnue-forms/src/uidrivers/win32/UIdriver.py
   trunk/gnue-forms/src/uidrivers/win32/dialog.py
   trunk/gnue-forms/src/uidrivers/win32/dialogs.py
   trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
Log:
making native dialogs modal

Modified: trunk/gnue-forms/src/uidrivers/win32/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/UIdriver.py    2006-11-04 02:38:58 UTC 
(rev 8976)
+++ trunk/gnue-forms/src/uidrivers/win32/UIdriver.py    2006-11-05 22:41:57 UTC 
(rev 8977)
@@ -188,8 +188,8 @@
   # ---------------------------------------------------------------------------
 
   def _getInput (self, title, fields, cancel = True):
-
-    dialog = dialogs.InputDialog (title, fields, cancel)
+
+    dialog = dialogs.InputDialog (self._win32app._MainWindowList[0].GetHwnd(), 
title, fields, cancel)
     dialog.DoModal ()
     return dialog.inputData
 
@@ -210,7 +210,7 @@
 
   def _ui_show_exception_(self, group, name, message, detail):
 
-    dialog = dialogs.ExceptionDialog (group, name, message, detail)
+    dialog = dialogs.ExceptionDialog 
(self._win32app._MainWindowList[0].GetHwnd(), group, name, message, detail)
     dialog.DoModal ()
         
 

Modified: trunk/gnue-forms/src/uidrivers/win32/dialog.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/dialog.py      2006-11-04 02:38:58 UTC 
(rev 8976)
+++ trunk/gnue-forms/src/uidrivers/win32/dialog.py      2006-11-05 22:41:57 UTC 
(rev 8977)
@@ -39,9 +39,10 @@
 
 class BaseDialog:
 
-  def __init__ (self, title, cancel = False, ok = True):
+  def __init__ (self, parent, title, cancel = False, ok = True):
     win32gui.InitCommonControls()
-    self.hinst = win32api.GetModuleHandle(None)
+    self.hinst = win32api.GetModuleHandle(None)
+    self.parent = parent
 
     self.message_map = {
             win32con.WM_COMMAND: self.OnCommand,
@@ -68,7 +69,8 @@
 
 
   def DoModal(self):
-    return win32gui.DialogBoxIndirect(self.hinst, self.template, 0, 
self.message_map)
+    self.oldfocus = win32gui.GetFocus()
+    return win32gui.DialogBoxIndirect(self.hinst, self.template, self.parent, 
self.message_map)
 
 
   def OnInitDialog(self, hwnd, msg, wparam, lparam):
@@ -76,8 +78,9 @@
     self.dc = win32gui.GetDC(hwnd)
 
 
-  def OnClose(self, hwnd, msg, wparam, lparam):
-    win32gui.EndDialog(hwnd, 0)
+  def OnClose(self, hwnd, msg, wparam, lparam):
+    win32gui.EndDialog(hwnd, 1)
+    win32gui.SetFocus(self.oldfocus)
 
 
   def Destroy(self):
@@ -88,9 +91,12 @@
     id = win32api.LOWORD(wparam)
     if id == win32con.IDOK:
       win32gui.EndDialog(hwnd, 1)
+      win32gui.SetFocus(self.oldfocus)
+
     elif id == win32con.IDCANCEL:
-      win32gui.EndDialog(hwnd, 0)
-
+      win32gui.EndDialog(hwnd, 0)
+      win32gui.SetFocus(self.oldfocus)
+
     
   def _RegisterWndClass(self):
     className = "GNUe dialog"

Modified: trunk/gnue-forms/src/uidrivers/win32/dialogs.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/dialogs.py     2006-11-04 02:38:58 UTC 
(rev 8976)
+++ trunk/gnue-forms/src/uidrivers/win32/dialogs.py     2006-11-05 22:41:57 UTC 
(rev 8977)
@@ -90,7 +90,7 @@
   _FIELDTYPES = ['label', 'warning', 'string', 'password', 'dropdown', 'image']
   _NO_LABELS  = ['label', 'warning', 'image']
   
-  def __init__ (self, title, fields, cancel = True):
+  def __init__ (self, parent, title, fields, cancel = True):
     """
     Create a new input dialog
 
@@ -98,7 +98,7 @@
     @param fields: sequence of field definition tuples
     @param cancel: If True add a Cancel button to the dialog
     """
-    BaseDialog.__init__(self, title, cancel)
+    BaseDialog.__init__(self, parent, title, cancel)
     self.message_map [win32con.WM_CTLCOLORSTATIC] = self.OnCtlColorStatic
     
     self.fields = fields
@@ -271,10 +271,12 @@
         else:
           self.inputData [self.controlsName [control]] = text
       win32gui.EndDialog(hwnd, 1)
+      win32gui.SetFocus(self.oldfocus)
 
     elif id == win32con.IDCANCEL:
       self.inputData = None
       win32gui.EndDialog(hwnd, 0)
+      win32gui.SetFocus(self.oldfocus)
 
   def OnCtlColorStatic(self, hwnd, msg, wparam, lparam):
     if win32gui.GetDlgCtrlID(lparam) in self.__warnings:
@@ -343,11 +345,11 @@
 # =============================================================================
 class AboutBox (BaseDialog):
 
-  def __init__ (self, name, version, author, description):
+  def __init__ (self, parent, name, version, author, description):
     """
     """
     title = textEncode(u_("About %s") % name)
-    BaseDialog.__init__(self, title, cancel= False)
+    BaseDialog.__init__(self, parent, title, cancel= False)
 
     self.__boxes    = []
     self.__labels   = []
@@ -494,9 +496,9 @@
   # Constructor
   # ---------------------------------------------------------------------------
 
-  def __init__ (self, group, name, message, detail):
+  def __init__ (self, parent, group, name, message, detail):
 
-    BaseDialog.__init__(self, self._TITLE.get (group, _('Error')), cancel = 
False, ok = False)
+    BaseDialog.__init__(self, parent, self._TITLE.get (group, _('Error')), 
cancel = False, ok = False)
     self.message_map [win32con.WM_CTLCOLORSTATIC] = self.OnCtlColorStatic
 
     self.detail = detail.replace('\n','\r\n')
@@ -546,6 +548,8 @@
     id = win32api.LOWORD(wparam)
     if id == win32con.IDCLOSE:
       win32gui.EndDialog(hwnd, 1)
+      win32gui.SetFocus(self.oldfocus)
+
     elif id == self.detailsID:
       self._showsDetail = not self._showsDetail
       if self._showsDetail:

Modified: trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2006-11-04 
02:38:58 UTC (rev 8976)
+++ trunk/gnue-forms/src/uidrivers/win32/widgets/form/widget.py 2006-11-05 
22:41:57 UTC (rev 8977)
@@ -281,7 +281,7 @@
 
   def _ui_show_about_(self, name, version, author, description):
 
-    d = dialogs.AboutBox (name, version, author, description)
+    d = dialogs.AboutBox (self.mainWindow.GetHwnd(), name, version, author, 
description)
     d.DoModal ()
 
 





reply via email to

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