diff options
Diffstat (limited to 'Mac/Tools/IDE/FontSettings.py')
| -rw-r--r-- | Mac/Tools/IDE/FontSettings.py | 223 |
1 files changed, 0 insertions, 223 deletions
diff --git a/Mac/Tools/IDE/FontSettings.py b/Mac/Tools/IDE/FontSettings.py deleted file mode 100644 index d7134383ea..0000000000 --- a/Mac/Tools/IDE/FontSettings.py +++ /dev/null @@ -1,223 +0,0 @@ -"""usage: -newsettings = FontDialog(('Chicago', 0, 12, (0, 0, 0))) # font name or id, style flags, size, color (color is ignored) -if newsettings: - fontsettings, tabsettings = newsettings - font, style, size, color = fontsettings # 'font' is always the font name, not the id number - # do something -""" - -import W -import PyEdit -from Carbon import TextEdit -from Carbon import Qd -import string -import types -import sys -import MacOS -if hasattr(MacOS, "SysBeep"): - SysBeep = MacOS.SysBeep -else: - def SysBeep(*args): - pass - -_stylenames = ["Plain", "Bold", "Italic", "Underline", "Outline", "Shadow", "Condensed", "Extended"] - - -class _FontDialog: - - #def __del__(self): - # print "doei!" - - def __init__(self, fontsettings, tabsettings): - leftmargin = 60 - leftmargin2 = leftmargin - 16 - self.w = W.ModalDialog((440, 180), 'Font settings') - self.w.fonttitle = W.TextBox((10, 12, leftmargin2, 14), "Font:", TextEdit.teJustRight) - self.w.pop = W.FontMenu((leftmargin, 10, 16, 16), self.setfont) - self.w.fontname = W.TextBox((leftmargin + 20, 12, 150, 14)) - self.w.sizetitle = W.TextBox((10, 38, leftmargin2, 14), "Size:", TextEdit.teJustRight) - self.w.sizeedit = W.EditText((leftmargin, 35, 40, 20), "", self.checksize) - styletop = 64 - self.w.styletitle = W.TextBox((10, styletop + 2, leftmargin2, 14), "Style:", TextEdit.teJustRight) - for i in range(len(_stylenames)): - top = styletop + (i % 4) * 20 - left = leftmargin + 80 * (i > 3) - 2 - if i: - self.w[i] = W.CheckBox((left, top, 76, 16), _stylenames[i], self.dostyle) - else: - self.w[i] = W.CheckBox((left, top, 70, 16), _stylenames[i], self.doplain) - - if tabsettings: - self.lasttab, self.tabmode = tabsettings - self.w.tabsizetitle = W.TextBox((10, -26, leftmargin2, 14), "Tabsize:", TextEdit.teJustRight) - self.w.tabsizeedit = W.EditText((leftmargin, -29, 40, 20), "", self.checktab) - self.w.tabsizeedit.set(repr(self.lasttab)) - radiobuttons = [] - self.w.tabsizechars = W.RadioButton((leftmargin + 48, -26, 55, 14), "Spaces", - radiobuttons, self.toggletabmode) - self.w.tabsizepixels = W.RadioButton((leftmargin + 110, -26, 55, 14), "Pixels", - radiobuttons, self.toggletabmode) - if self.tabmode: - self.w.tabsizechars.set(1) - else: - self.w.tabsizepixels.set(1) - else: - self.tabmode = None - - self.w.cancelbutton = W.Button((-180, -26, 80, 16), "Cancel", self.cancel) - self.w.donebutton = W.Button((-90, -26, 80, 16), "Done", self.done) - - sampletext = "Sample text." - self.w.sample = W.EditText((230, 10, -10, 130), sampletext, - fontsettings = fontsettings, tabsettings = tabsettings) - - self.w.setdefaultbutton(self.w.donebutton) - self.w.bind('cmd.', self.w.cancelbutton.push) - self.w.bind('cmdw', self.w.donebutton.push) - self.lastsize = fontsettings[2] - self._rv = None - self.set(fontsettings) - self.w.open() - - def toggletabmode(self, onoff): - if self.w.tabsizechars.get(): - tabmode = 1 - else: - tabmode = 0 - if self.tabmode <> tabmode: - port = self.w.wid.GetWindowPort() - (font, style, size, color), (tabsize, dummy) = self.get() - savesettings = W.GetPortFontSettings(port) - W.SetPortFontSettings(port, (font, style, size)) - spacewidth = Qd.StringWidth(' ') - W.SetPortFontSettings(port, savesettings) - if tabmode: - # convert pixels to spaces - self.lasttab = int(round(float(tabsize) / spacewidth)) - else: - # convert spaces to pixels - self.lasttab = spacewidth * tabsize - self.w.tabsizeedit.set(repr(self.lasttab)) - self.tabmode = tabmode - self.doit() - - def set(self, fontsettings): - font, style, size, color = fontsettings - if type(font) <> types.StringType: - from Carbon import Res - res = Res.GetResource('FOND', font) - font = res.GetResInfo()[2] - self.w.fontname.set(font) - self.w.sizeedit.set(str(size)) - if style: - for i in range(1, len(_stylenames)): - self.w[i].set(style & 0x01) - style = style >> 1 - else: - self.w[0].set(1) - - def get(self): - font = self.w.fontname.get() - style = 0 - if not self.w[0].get(): - flag = 0x01 - for i in range(1, len(_stylenames)): - if self.w[i].get(): - style = style | flag - flag = flag << 1 - size = self.lastsize - if self.tabmode is None: - return (font, style, size, (0, 0, 0)), (32, 0) - else: - return (font, style, size, (0, 0, 0)), (self.lasttab, self.tabmode) - - def doit(self): - if self.w[0].get(): - style = 0 - else: - style = 0 - for i in range(1, len(_stylenames)): - if self.w[i].get(): - style = style | 2 ** (i - 1) - #self.w.sample.set(repr(style)) - fontsettings, tabsettings = self.get() - self.w.sample.setfontsettings(fontsettings) - self.w.sample.settabsettings(tabsettings) - - def checktab(self): - tabsize = self.w.tabsizeedit.get() - if not tabsize: - return - try: - tabsize = string.atoi(tabsize) - except (ValueError, OverflowError): - good = 0 - sys.exc_traceback = None - else: - good = 1 <= tabsize <= 500 - if good: - if self.lasttab <> tabsize: - self.lasttab = tabsize - self.doit() - else: - SysBeep(0) - self.w.tabsizeedit.set(repr(self.lasttab)) - self.w.tabsizeedit.selectall() - - def checksize(self): - size = self.w.sizeedit.get() - if not size: - return - try: - size = string.atoi(size) - except (ValueError, OverflowError): - good = 0 - sys.exc_traceback = None - else: - good = 1 <= size <= 500 - if good: - if self.lastsize <> size: - self.lastsize = size - self.doit() - else: - SysBeep(0) - self.w.sizeedit.set(repr(self.lastsize)) - self.w.sizeedit.selectall() - - def doplain(self): - for i in range(1, len(_stylenames)): - self.w[i].set(0) - self.w[0].set(1) - self.doit() - - def dostyle(self): - for i in range(1, len(_stylenames)): - if self.w[i].get(): - self.w[0].set(0) - break - else: - self.w[0].set(1) - self.doit() - - def close(self): - self.w.close() - del self.w - - def cancel(self): - self.close() - - def done(self): - self._rv = self.get() - self.close() - - def setfont(self, fontname): - self.w.fontname.set(fontname) - self.doit() - - -def FontDialog(fontsettings, tabsettings = (32, 0)): - fd = _FontDialog(fontsettings, tabsettings) - return fd._rv - -def test(): - print FontDialog(('Zapata-Light', 0, 25, (0, 0, 0))) |
