X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eb0f373c99a98633a1a9125f6eac632a0ceafe9d..dae0faa6be08c5bb5635fd464b695ac8bb8f2b8d:/wxPython/demo/wxFontDialog.py?ds=sidebyside diff --git a/wxPython/demo/wxFontDialog.py b/wxPython/demo/wxFontDialog.py index 509ebfbb3a..2135c491f1 100644 --- a/wxPython/demo/wxFontDialog.py +++ b/wxPython/demo/wxFontDialog.py @@ -1,45 +1,144 @@ +# 11/18/2003 - Jeff Grimmett (grimmtooth@softhome.net) +# +# o Updated for wx namespace +# -from wxPython.wx import * +import wx #--------------------------------------------------------------------------- -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) - dlg.SetSize((250,250)) - 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(wx.Panel): + def __init__(self, parent, log): + wx.Panel.__init__(self, parent, -1) + self.log = log -#--------------------------------------------------------------------------- + btn = wx.Button(self, -1, "Select Font") + self.Bind(wx.EVT_BUTTON, self.OnSelectFont, btn) + + self.sampleText = wx.TextCtrl(self, -1, "Sample Text") + #from wxPython.lib.stattext import wxGenStaticText + #self.sampleText = wxGenStaticText(self, -1, "Sample Text") + + self.curFont = self.sampleText.GetFont() + self.curClr = wx.BLACK + + fgs = wx.FlexGridSizer(cols=2, vgap=5, hgap=5) + fgs.AddGrowableCol(1) + fgs.AddGrowableRow(0) + + fgs.Add(btn) + fgs.Add(self.sampleText, 0, wx.ADJUST_MINSIZE|wx.GROW) + + fgs.Add((15,15)); fgs.Add((15,15)) # an empty row + + fgs.Add(wx.StaticText(self, -1, "PointSize:")) + self.ps = wx.StaticText(self, -1, "") + font = self.ps.GetFont() + font.SetWeight(wx.BOLD) + self.ps.SetFont(font) + fgs.Add(self.ps, 0, wx.ADJUST_MINSIZE) + + fgs.Add(wx.StaticText(self, -1, "Family:")) + self.family = wx.StaticText(self, -1, "") + self.family.SetFont(font) + fgs.Add(self.family, 0, wx.ADJUST_MINSIZE) + + fgs.Add(wx.StaticText(self, -1, "Style:")) + self.style = wx.StaticText(self, -1, "") + self.style.SetFont(font) + fgs.Add(self.style, 0, wx.ADJUST_MINSIZE) + + fgs.Add(wx.StaticText(self, -1, "Weight:")) + self.weight = wx.StaticText(self, -1, "") + self.weight.SetFont(font) + fgs.Add(self.weight, 0, wx.ADJUST_MINSIZE) + fgs.Add(wx.StaticText(self, -1, "Face:")) + self.face = wx.StaticText(self, -1, "") + self.face.SetFont(font) + fgs.Add(self.face, 0, wx.ADJUST_MINSIZE) + fgs.Add((15,15)); fgs.Add((15,15)) # an empty row + fgs.Add(wx.StaticText(self, -1, "wx.NativeFontInfo:")) + self.nfi = wx.StaticText(self, -1, "") + self.nfi.SetFont(font) + fgs.Add(self.nfi, 0, wx.ADJUST_MINSIZE) + # give it some border space + sizer = wx.BoxSizer(wx.VERTICAL) + sizer.Add(fgs, 0, wx.GROW|wx.ADJUST_MINSIZE|wx.ALL, 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() + def OnSelectFont(self, evt): + data = wx.FontData() + data.EnableEffects(True) + data.SetColour(self.curClr) # set colour + data.SetInitialFont(self.curFont) + dlg = wx.FontDialog(self, data) + + if dlg.ShowModal() == wx.ID_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() + + # Don't destroy the dialog until you get everything you need from the + # dialog! + dlg.Destroy() + + +#--------------------------------------------------------------------------- + +def runTest(frame, nb, log): + win = TestPanel(nb, log) + return win + +#--------------------------------------------------------------------------- overview = """\ -This class represents the font chooser dialog. +This class allows you to use the system font selection dialog +from within your program. Generally speaking, this allows you +to select a font by its name, font size, and weight, and +on some systems such things as strikethrough and underline. -wxFontDialog() ----------------------------- +As with other dialogs used in wxPython, it is important to +use the class' methods to extract the information you need +about the font before you destroy the dialog. Failure +to observe this almost always leads to a program failure of +some sort, often ugly. -wxFontDialog(wxWindow* parent, wxFontData* data) +This demo serves two purposes; it shows how to use the dialog +to GET font information from the user, but also shows how +to APPLY that information once you get it. -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])]) +