Renamed demo modules to be wx-less.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
144
wxPython/demo/FontDialog.py
Normal file
144
wxPython/demo/FontDialog.py
Normal file
@@ -0,0 +1,144 @@
|
||||
# 11/18/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
||||
#
|
||||
# o Updated for wx namespace
|
||||
#
|
||||
|
||||
import wx
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
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 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.
|
||||
|
||||
As with other dialogs used in wxPython, it is important to
|
||||
use the class' methods to extract the information you need
|
||||
about the font <b>before</b> you destroy the dialog. Failure
|
||||
to observe this almost always leads to a program failure of
|
||||
some sort, often ugly.
|
||||
|
||||
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.
|
||||
|
||||
"""
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys,os
|
||||
import run
|
||||
run.main(['', os.path.basename(sys.argv[0])])
|
||||
|
Reference in New Issue
Block a user