]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/Dialog.py
HandlePrintClient shouldn't go above a top-level window
[wxWidgets.git] / wxPython / demo / Dialog.py
index d541467e68627a503a1a9f68058ac7fc8c4623bf..756c730020962e07cd6cd742e535d277fb8c4b4f 100644 (file)
@@ -46,7 +46,7 @@ class TestDialog(wx.Dialog):
         text.SetHelpText("Here's some help text for field #1")
         box.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
 
-        sizer.AddSizer(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
+        sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
 
         box = wx.BoxSizer(wx.HORIZONTAL)
 
@@ -58,49 +58,67 @@ class TestDialog(wx.Dialog):
         text.SetHelpText("Here's some help text for field #2")
         box.Add(text, 1, wx.ALIGN_CENTRE|wx.ALL, 5)
 
-        sizer.AddSizer(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
+        sizer.Add(box, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
 
         line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL)
         sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.TOP, 5)
 
-        box = wx.BoxSizer(wx.HORIZONTAL)
-
+        btnsizer = wx.StdDialogButtonSizer()
+        
         if wx.Platform != "__WXMSW__":
             btn = wx.ContextHelpButton(self)
-            box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
-
-        btn = wx.Button(self, wx.ID_OK, " OK ")
-        btn.SetDefault()
+            btnsizer.AddButton(btn)
+        
+        btn = wx.Button(self, wx.ID_OK)
         btn.SetHelpText("The OK button completes the dialog")
-        box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
+        btn.SetDefault()
+        btnsizer.AddButton(btn)
 
-        btn = wx.Button(self, wx.ID_CANCEL, " Cancel ")
+        btn = wx.Button(self, wx.ID_CANCEL)
         btn.SetHelpText("The Cancel button cnacels the dialog. (Cool, huh?)")
-        box.Add(btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
+        btnsizer.AddButton(btn)
+        btnsizer.Realize()
 
-        sizer.Add(box, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
+        sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5)
 
         self.SetSizer(sizer)
-        self.SetAutoLayout(True)
         sizer.Fit(self)
 
 #---------------------------------------------------------------------------
 
-def runTest(frame, nb, log):
-    win = TestDialog(frame, -1, "This is a Dialog", size=(350, 200),
-                     #style = wxCAPTION | wxSYSTEM_MENU | wxTHICK_FRAME
-                     style = wx.DEFAULT_DIALOG_STYLE
-                     )
-    win.CenterOnScreen()
-    val = win.ShowModal()
+class TestPanel(wx.Panel):
+    def __init__(self, parent, log):
+        self.log = log
+        wx.Panel.__init__(self, parent, -1)
+
+        b = wx.Button(self, -1, "Create and Show a custom Dialog", (50,50))
+        self.Bind(wx.EVT_BUTTON, self.OnButton, b)
+
+
+    def OnButton(self, evt):
+        dlg = TestDialog(self, -1, "This is a Dialog", size=(350, 200),
+                         #style = wxCAPTION | wxSYSTEM_MENU | wxTHICK_FRAME
+                         style = wx.DEFAULT_DIALOG_STYLE
+                         )
+        dlg.CenterOnScreen()
+
+        # this does not return until the dialog is closed.
+        val = dlg.ShowModal()
     
-    if val == wx.ID_OK:
-        log.WriteText("You pressed OK\n")
-    else:
-        log.WriteText("You pressed Cancel\n")
+        if val == wx.ID_OK:
+            self.log.WriteText("You pressed OK\n")
+        else:
+            self.log.WriteText("You pressed Cancel\n")
 
-    win.Destroy()
+        dlg.Destroy()
+        
 
+#---------------------------------------------------------------------------
+
+
+def runTest(frame, nb, log):
+    win = TestPanel(nb, log)
+    return win
 
 
 #---------------------------------------------------------------------------