]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/wxFontDialog.py
fix text scrolling in GTK2 (patch 703988)
[wxWidgets.git] / wxPython / demo / wxFontDialog.py
index 551dc97dc5a2a9f3cacae034681565889dbf69c2..e27ad38d7486337e758e03c82f4887c02e966ad8 100644 (file)
@@ -3,42 +3,127 @@ from wxPython.wx import *
 
 #---------------------------------------------------------------------------
 
-def runTest(frame, nb, log):
-    data = wxFontData()
-    data.EnableEffects(true)
-    font_colour = wxColour(255, 0, 0)   # colour of font (red)
-    data.SetColour(font_colour)         # set colour
-    print data.GetColour()
-    dlg = wxFontDialog(frame, data)
-    if dlg.ShowModal() == wxID_OK:
-        data = dlg.GetFontData()
-        font = data.GetChosenFont()
-        log.WriteText('You selected: "%s", %d points, color %s\n' %
-                           (font.GetFaceName(), font.GetPointSize(),
-                            data.GetColour().Get()))
-    dlg.Destroy()
+class TestPanel(wxPanel):
+    def __init__(self, parent, log):
+        wxPanel.__init__(self, parent, -1)
+        self.log = log
 
-#---------------------------------------------------------------------------
+        btn = wxButton(self, -1, "Select Font")
+        EVT_BUTTON(self, btn.GetId(), self.OnSelectFont)
 
+        self.sampleText = wxTextCtrl(self, -1, "Sample Text")
+        #from wxPython.lib.stattext import wxGenStaticText
+        #self.sampleText = wxGenStaticText(self, -1, "Sample Text")
 
+        self.curFont = self.sampleText.GetFont()
+        self.curClr = wxBLACK
 
+        fgs = wxFlexGridSizer(cols=2, vgap=5, hgap=5)
+        fgs.AddGrowableCol(1)
+        fgs.AddGrowableRow(0)
 
+        fgs.Add(btn)
+        fgs.Add(self.sampleText, 0, wxADJUST_MINSIZE|wxGROW)
 
+        fgs.Add(15,15); fgs.Add(15,15)   # an empty row
 
+        fgs.Add(wxStaticText(self, -1, "PointSize:"))
+        self.ps = wxStaticText(self, -1, "")
+        font = self.ps.GetFont()
+        font.SetWeight(wxBOLD)
+        self.ps.SetFont(font)
+        fgs.Add(self.ps, 0, wxADJUST_MINSIZE)
 
+        fgs.Add(wxStaticText(self, -1, "Family:"))
+        self.family = wxStaticText(self, -1, "")
+        self.family.SetFont(font)
+        fgs.Add(self.family, 0, wxADJUST_MINSIZE)
 
+        fgs.Add(wxStaticText(self, -1, "Style:"))
+        self.style = wxStaticText(self, -1, "")
+        self.style.SetFont(font)
+        fgs.Add(self.style, 0, wxADJUST_MINSIZE)
 
+        fgs.Add(wxStaticText(self, -1, "Weight:"))
+        self.weight = wxStaticText(self, -1, "")
+        self.weight.SetFont(font)
+        fgs.Add(self.weight, 0, wxADJUST_MINSIZE)
 
+        fgs.Add(wxStaticText(self, -1, "Face:"))
+        self.face = wxStaticText(self, -1, "")
+        self.face.SetFont(font)
+        fgs.Add(self.face, 0, wxADJUST_MINSIZE)
 
+        fgs.Add(15,15); fgs.Add(15,15)   # an empty row
 
+        fgs.Add(wxStaticText(self, -1, "wxNativeFontInfo:"))
+        self.nfi = wxStaticText(self, -1, "")
+        self.nfi.SetFont(font)
+        fgs.Add(self.nfi, 0, wxADJUST_MINSIZE)
+
+        # give it some border space
+        sizer = wxBoxSizer(wxVERTICAL)
+        sizer.Add(fgs, 0, wxGROW|wxADJUST_MINSIZE|wxALL, 25)
+
+        self.SetSizer(sizer)
+        self.UpdateUI()
+
+
+    def UpdateUI(self):
+        self.sampleText.SetFont(self.curFont)
+        self.ps.SetLabel(str(self.curFont.GetPointSize()))
+        self.family.SetLabel(self.curFont.GetFamilyString())
+        self.style.SetLabel(self.curFont.GetStyleString())
+        self.weight.SetLabel(self.curFont.GetWeightString())
+        self.face.SetLabel(self.curFont.GetFaceName())
+        self.nfi.SetLabel(self.curFont.GetNativeFontInfo().ToString())
+        self.Layout()
 
-overview = """\
-This class represents the font chooser dialog.
 
-wxFontDialog()
-----------------------------
+    def OnSelectFont(self, evt):
+        data = wxFontData()
+        data.EnableEffects(True)
+        data.SetColour(self.curClr)         # set colour
+        data.SetInitialFont(self.curFont)
 
-wxFontDialog(wxWindow* parent, wxFontData* data)
+        dlg = wxFontDialog(self, data)
+        if dlg.ShowModal() == wxID_OK:
+            data = dlg.GetFontData()
+            font = data.GetChosenFont()
+            colour = data.GetColour()
+            self.log.WriteText('You selected: "%s", %d points, color %s\n' %
+                               (font.GetFaceName(), font.GetPointSize(),
+                                colour.Get()))
+            self.curFont = font
+            self.curClr = colour
+            self.UpdateUI()
+        dlg.Destroy()
+
+
+
+
+
+#---------------------------------------------------------------------------
+
+def runTest(frame, nb, log):
+    win = TestPanel(nb, log)
+    return win
+
+
+#---------------------------------------------------------------------------
+
+
+
+
+overview = """\
+This class allows you to use the system font chooser dialog.
 
-Constructor. Pass a parent window and a font data object, which will be copied to the font dialog's font data.
 """
+
+
+
+if __name__ == '__main__':
+    import sys,os
+    import run
+    run.main(['', os.path.basename(sys.argv[0])])
+