You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(45) |
May
(185) |
Jun
|
Jul
(36) |
Aug
(205) |
Sep
(98) |
Oct
(107) |
Nov
(6) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(1) |
Feb
(2) |
Mar
(19) |
Apr
(26) |
May
(18) |
Jun
|
Jul
(12) |
Aug
(16) |
Sep
(22) |
Oct
(7) |
Nov
(11) |
Dec
(74) |
2006 |
Jan
(14) |
Feb
(1) |
Mar
(3) |
Apr
(3) |
May
(14) |
Jun
(5) |
Jul
(20) |
Aug
(10) |
Sep
(1) |
Oct
|
Nov
(4) |
Dec
(1) |
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(14) |
Aug
|
Sep
|
Oct
(6) |
Nov
(1) |
Dec
|
Update of /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5037 Modified Files: changelog.txt customDialogs.py outputWindow.py outputWindow.rsrc.py prefsDialog.rsrc.py readme.txt standaloneBuilder.gtk.rsrc.py standaloneBuilder.py standaloneBuilder.rsrc.py Added Files: newProjectWizard.gtk.rsrc.py newProjectWizardPage1.gtk.rsrc.py newProjectWizardPage2.gtk.rsrc.py newProjectWizardPage3.gtk.rsrc.py newProjectWizardPage4.gtk.rsrc.py outputWindow.gtk.rsrc.py prefsDialog.gtk.rsrc.py propertiesDialog.gtk.rsrc.py versionInfo.py Log Message: Multiple bug fixes and enhancements ready for release of 0.8.2 Index: standaloneBuilder.rsrc.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/standaloneBuilder.rsrc.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** standaloneBuilder.rsrc.py 9 Sep 2005 12:32:08 -0000 1.6 --- standaloneBuilder.rsrc.py 12 May 2006 16:26:20 -0000 1.7 *************** *** 22,29 **** --- 22,31 ---- 'name':'menuFileOpen', 'label':'&Open\tCtrl+O', + 'command':'openBtn', }, {'type':'MenuItem', 'name':'menuFileSave', 'label':'&Save\tCtrl+S', + 'command':'saveBtn', }, [...966 lines suppressed...] }, --- 575,578 ---- *************** *** 627,632 **** 'name':'StaticText7', 'position':(15, 95), - 'labelSpecified':0, - 'nameSpecified':0, 'text':'Base directory', }, --- 581,584 ---- *************** *** 635,640 **** 'name':'StaticText6', 'position':(15, 65), - 'labelSpecified':0, - 'nameSpecified':0, 'text':'Name', }, --- 587,590 ---- --- NEW FILE: newProjectWizardPage2.gtk.rsrc.py --- {'type':'CustomDialog', 'name':'Template', 'title':'New Project Wizard', 'position':(171, 401), 'size':(600, 310), 'components': [ {'type':'StaticText', 'name':'page2text1', 'position':(175, 0), 'actionBindings':{}, 'font':{'faceName': 'Tahoma', 'family': 'sansSerif', 'size': 20}, 'text':'New project wizard', 'userdata':'page2', }, {'type':'StaticText', 'name':'page2text2', 'position':(175, 60), 'actionBindings':{}, 'text':'Project description', 'userdata':'page2', }, {'type':'TextField', 'name':'projectDesc', 'position':(175, 80), 'size':(415, -1), 'actionBindings':{}, 'userdata':'page2', }, {'type':'Image', 'name':'Image1', 'position':(-5, -5), 'size':(174, 324), 'actionBindings':{}, 'file':'pixmaps/newproject.png', }, ] # end components } # end CustomDialog --- NEW FILE: propertiesDialog.gtk.rsrc.py --- {'type':'CustomDialog', 'name':'propertiesDialog', 'title':'Project properties', 'position':(468, 29), 'size':(450, 385), 'components': [ {'type':'TextField', 'name':'buildPath', 'position':(130, 5), 'size':(265, -1), 'actionBindings':{}, }, {'type':'Button', 'name':'buildPathBtn', 'position':(400, 5), 'size':(25, 22), 'actionBindings':{}, 'label':'...', }, {'type':'TextField', 'name':'distPath', 'position':(130, 40), 'size':(265, -1), 'actionBindings':{}, }, {'type':'Button', 'name':'distPathBtn', 'position':(400, 40), 'size':(25, 22), 'actionBindings':{}, 'label':'...', }, {'type':'TextField', 'name':'pixmapsPath', 'position':(130, 75), 'size':(265, -1), 'actionBindings':{}, }, {'type':'Button', 'name':'pixmapsPathBtn', 'position':(400, 75), 'size':(25, 22), 'actionBindings':{}, 'label':'...', }, {'type':'TextField', 'name':'tarballPath', 'position':(130, 110), 'size':(265, -1), 'actionBindings':{}, }, {'type':'Button', 'name':'tarballsPathBtn', 'position':(400, 110), 'size':(25, 22), 'actionBindings':{}, 'label':'...', }, {'type':'TextField', 'name':'appPublisher', 'position':(130, 145), 'size':(265, -1), 'actionBindings':{}, }, {'type':'TextField', 'name':'appURL', 'position':(130, 180), 'size':(265, -1), 'actionBindings':{}, }, {'type':'TextField', 'name':'appLicence', 'position':(130, 215), 'size':(265, -1), 'actionBindings':{}, }, {'type':'Button', 'name':'appLicenceBtn', 'position':(400, 215), 'size':(25, 22), 'actionBindings':{}, 'label':'...', }, {'type':'Choice', 'name':'buildType', 'position':(125, 250), 'size':(140, -1), 'actionBindings':{}, 'items':[u'Single file', u'Single directory'], 'stringSelection':'Single directory', }, {'type':'CheckBox', 'name':'asciiChk', 'position':(120, 285), 'actionBindings':{}, 'label':'No encoding', }, {'type':'CheckBox', 'name':'consoleChk', 'position':(250, 285), 'actionBindings':{}, 'label':'Console', }, {'type':'CheckBox', 'name':'compressChk', 'position':(345, 285), 'actionBindings':{}, 'label':'Compress', }, {'type':'CheckBox', 'name':'striplibsChk', 'position':(120, 305), 'actionBindings':{}, 'label':'Strip libs (Linux)', }, {'type':'CheckBox', 'name':'optimizeChk', 'position':(250, 305), 'actionBindings':{}, 'label':'Optimize', }, {'type':'CheckBox', 'name':'debugChk', 'position':(345, 305), 'actionBindings':{}, 'label':'Debug', }, {'type':'Button', 'id':5100, 'name':'btnOK', 'position':(270, 340), 'actionBindings':{}, 'label':'OK', }, {'type':'Button', 'id':5101, 'name':'btnCancel', 'position':(355, 340), 'actionBindings':{}, 'label':'Cancel', }, {'type':'StaticText', 'name':'StaticText9', 'position':(25, 220), 'actionBindings':{}, 'text':'App licence file', }, {'type':'StaticText', 'name':'StaticText8', 'position':(20, 185), 'actionBindings':{}, 'text':'Application URL', }, {'type':'StaticText', 'name':'StaticText7', 'position':(30, 150), 'actionBindings':{}, 'text':'App publisher', }, {'type':'StaticText', 'name':'StaticText6', 'position':(30, 285), 'actionBindings':{}, 'text':'Build options', }, {'type':'StaticText', 'name':'StaticText5', 'position':(15, 255), 'actionBindings':{}, 'text':'Deployment type', }, {'type':'StaticText', 'name':'StaticText4', 'position':(15, 115), 'actionBindings':{}, 'text':'Tarballs directory', }, {'type':'StaticText', 'name':'StaticText3', 'position':(15, 80), 'actionBindings':{}, 'text':'Pixmaps directory', }, {'type':'StaticText', 'name':'StaticText2', 'position':(5, 45), 'actionBindings':{}, 'text':'Distribution directory', }, {'type':'StaticText', 'name':'StaticText1', 'position':(30, 10), 'actionBindings':{}, 'text':'Build directory', }, ] # end components } # end CustomDialog Index: outputWindow.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/outputWindow.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** outputWindow.py 9 Apr 2005 09:30:36 -0000 1.2 --- outputWindow.py 12 May 2006 16:26:20 -0000 1.3 *************** *** 1,52 **** ! #!/usr/bin/python ! # ! # projectmanager message output window ! # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. ! # ! # This program is distributed in the hope that it will be useful, ! # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! # GNU General Public License for more details. ! # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! # ! # Copyright (C)2003 Phil Edwards, ph...@li... ! # vim: ts=4 sw=4 ai et ! ! import string ! import time ! ! from PythonCard import model, dialog ! import wx ! ! class outputWindow(model.Background): ! ! def on_initialize(self, event): ! self.parent = self.GetParent() ! ! def clearLines(self): ! self.components.returnedText.text = '' ! self.Refresh() ! wx.Yield() ! ! def addLine(self, text): ! self.components.returnedText.text += str(text) ! #self.Refresh() ! #self.Update() ! #wx.Yield() ! ! def on_closeBtn_mouseClick(self, event): ! self.Hide() ! ! def on_close(self, event): ! self.Hide() ! ! if __name__ == '__main__': ! app = model.PythonCardApp(outputWindow) ! app.MainLoop() --- 1,67 ---- ! #!/usr/bin/python ! # ! # projectmanager message output window ! # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. ! # ! # This program is distributed in the hope that it will be useful, ! # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! # GNU General Public License for more details. ! # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! # ! # Copyright (C)2003 Phil Edwards, ph...@li... ! # vim: ts=4 sw=4 ai et ! ! import string ! import time ! import sys ! ! from PythonCard import model, dialog ! import wx ! ! class outputWindow(model.Background): ! ! def on_initialize(self, event): ! self.parent = self.GetParent() ! ! def clearLines(self): ! self.components.returnedText.text = '' ! self.components.importError.text = '' ! self.Refresh() ! wx.Yield() ! ! def addLine(self, text): ! if self.components.returnedText.enabled: ! self.components.returnedText.text += str(text) ! else: ! self.components.importError.text += str(text) ! #self.Refresh() ! #self.Update() ! #wx.Yield() ! ! def on_closeBtn_mouseClick(self, event): ! self.Hide() ! ! def on_close(self, event): ! self.Hide() ! ! def on_clipBoardBtn_mouseClick(self, event): ! if sys.platform.startswith('win'): ! stuff = wx.TextDataObject() ! stuff.SetText(self.components.clipBoardBtn.userdata) ! if wx.TheClipboard.Open(): ! wx.TheClipboard.SetData(stuff) ! wx.TheClipboard.Close() ! ! ! ! if __name__ == '__main__': ! app = model.PythonCardApp(outputWindow) ! app.MainLoop() --- NEW FILE: outputWindow.gtk.rsrc.py --- {'application':{'type':'Application', 'name':'Template', 'backgrounds': [ {'type':'Background', 'name':'outputWindow', 'title':'Rebuild project', 'size':(400, 300), 'visible':0, 'components': [ {'type':'TextArea', 'name':'importError', 'position':(10, 10), 'size':(375, 205), 'actionBindings':{}, 'editable':False, 'enabled':False, 'visible':False, }, {'type':'Button', 'name':'clipBoardBtn', 'position':(95, 225), 'actionBindings':{}, 'label':'Clipboard', 'toolTip':'Click here to copy the PythonCard component imports line to the Windows clipboard', }, {'type':'Button', 'name':'closeBtn', 'position':(10, 225), 'actionBindings':{}, 'label':'Close', }, {'type':'StaticText', 'name':'txt5', 'position':(10, 90), 'actionBindings':{}, 'text':'Returned messages:', }, {'type':'TextArea', 'name':'returnedText', 'position':(10, 105), 'size':(375, 110), 'actionBindings':{}, }, {'type':'StaticText', 'name':'txt4c', 'position':(145, 70), 'actionBindings':{}, 'text':'please wait...', 'visible':False, }, {'type':'StaticText', 'name':'txt4b', 'position':(145, 70), 'actionBindings':{}, 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, 'text':'Done', 'visible':False, }, {'type':'StaticText', 'name':'txt4a', 'position':(10, 70), 'actionBindings':{}, 'text':'Rebuilding distributable:', 'visible':False, }, {'type':'StaticText', 'name':'txt3c', 'position':(145, 50), 'actionBindings':{}, 'text':'please wait...', 'visible':False, }, {'type':'StaticText', 'name':'txt3b', 'position':(145, 50), 'actionBindings':{}, 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, 'text':'Done', 'visible':False, }, {'type':'StaticText', 'name':'txt3a', 'position':(10, 50), 'actionBindings':{}, 'text':'Rebuilding application:', 'visible':False, }, {'type':'StaticText', 'name':'txt2b', 'position':(145, 30), 'actionBindings':{}, 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, 'text':'Done', 'visible':False, }, {'type':'StaticText', 'name':'txt2a', 'position':(10, 30), 'actionBindings':{}, 'text':'Rebuilding versioninfo file:', 'visible':False, }, {'type':'StaticText', 'name':'txt1b', 'position':(145, 10), 'actionBindings':{}, 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, 'text':'Done', 'visible':False, }, {'type':'StaticText', 'name':'txt1a', 'position':(10, 10), 'actionBindings':{}, 'text':'Rebuilding spec file:', 'visible':False, }, ] # end components } # end background ] # end backgrounds } } --- NEW FILE: versionInfo.py --- # copyright 2001 McMillan Enterprises, Inc. # license: use as you please. No warranty. # Gordon McMillan gm...@hy... # import win32api import struct import pywintypes import string import pprint TEST=0 LOAD_LIBRARY_AS_DATAFILE = 2 RT_VERSION = 16 def getRaw0(o): return o.raw def getRaw1(o): return str(buffer(o)) import sys if hasattr(sys, "version_info"): pyvers = sys.version_info[0]*10 + sys.version_info[1] else: toks = string.split(sys.version, '.', 2) pyvers = int(toks[0])*10 + int(toks[1]) if pyvers < 20: getRaw = getRaw0 else: getRaw = getRaw1 ##VS_VERSION_INFO { ## WORD wLength; // Specifies the length of the VS_VERSION_INFO structure ## WORD wValueLength; // Specifies the length of the Value member ## WORD wType; // 1 means text, 0 means binary ## WCHAR szKey[]; // Contains the Unicode string "VS_VERSION_INFO". ## WORD Padding1[]; ## VS_FIXEDFILEINFO Value; ## WORD Padding2[]; ## WORD Children[]; // Specifies a list of zero or more StringFileInfo or VarFileInfo structures (or both) that are children of the current version structure. ##}; def decode(pathnm): h = win32api.LoadLibraryEx(pathnm, 0, LOAD_LIBRARY_AS_DATAFILE) nm = win32api.EnumResourceNames(h, RT_VERSION)[0] data = win32api.LoadResource(h, RT_VERSION, nm) vs = VSVersionInfo() j = vs.fromRaw(data) if TEST: print vs if data[:j] != vs.toRaw(): print "AAAAAGGHHHH" txt = repr(vs) glbls = {} glbls['VSVersionInfo'] = VSVersionInfo glbls['FixedFileInfo'] = FixedFileInfo glbls['StringFileInfo'] = StringFileInfo glbls['StringTable'] = StringTable glbls['StringStruct'] = StringStruct glbls['VarFileInfo'] = VarFileInfo glbls['VarStruct'] = VarStruct vs2 = eval(txt+'\n', glbls) if vs.toRaw() != vs2.toRaw(): print print 'reconstruction not the same!' print vs2 win32api.FreeLibrary(h) return vs class VSVersionInfo: def __init__(self, ffi=None, kids=None): self.ffi = ffi self.kids = kids if kids is None: self.kids = [] def fromRaw(self, data): i, (sublen, vallen, wType, nm) = parseCommon(data) #vallen is length of the ffi, typ is 0, nm is 'VS_VERSION_INFO' i = ((i + 3) / 4) * 4 # now a VS_FIXEDFILEINFO self.ffi = FixedFileInfo() j = self.ffi.fromRaw(data, i) #print ffi if TEST: if data[i:j] != self.ffi.toRaw(): print "raw:", `data[i:j]` print "ffi:", `self.ffi.toRaw()` i = j while i < sublen: j = i i, (csublen, cvallen, ctyp, nm) = parseCommon(data, i) if string.strip(str(nm)) == "StringFileInfo": sfi = StringFileInfo() k = sfi.fromRaw(csublen, cvallen, nm, data, i, j+csublen) if TEST: if data[j:k] != sfi.toRaw(): rd = data[j:k] sd = sfi.toRaw() for x in range(0, len(rd), 16): rds = rd[x:x+16] sds = sd[x:x+16] if rds != sds: print "rd[%s:%s+16]: %s" % (x, x, `rds`) print "sd[%s:%s+16]: %s" % (x, x, `sds`) print print "raw: len %d, wLength %d" % (len(rd), struct.unpack('h', rd[:2])[0]) print "sfi: len %d, wLength %d" % (len(sd), struct.unpack('h', sd[:2])[0]) self.kids.append(sfi) i = k else: vfi = VarFileInfo() k = vfi.fromRaw(csublen, cvallen, nm, data, i, j+csublen) self.kids.append(vfi) if TEST: if data[j:k] != vfi.toRaw(): print "raw:", `data[j:k]` print "vfi:", `vfi.toRaw()` i = k i = j + csublen i = ((i + 3) / 4) * 4 return i def toRaw(self): nm = pywintypes.Unicode('VS_VERSION_INFO') rawffi = self.ffi.toRaw() vallen = len(rawffi) typ = 0 sublen = 6 + 2*len(nm) + 2 pad = '' if sublen % 4: pad = '\000\000' sublen = sublen + len(pad) + vallen pad2 = '' if sublen % 4: pad2 = '\000\000' tmp = [] for kid in self.kids: tmp.append(kid.toRaw()) tmp = string.join(tmp, '') sublen = sublen + len(pad2) + len(tmp) return struct.pack('hhh', sublen, vallen, typ) + getRaw(nm) + '\000\000' + pad + rawffi + pad2 + tmp def __repr__(self, indent=''): tmp = [] newindent = indent + ' ' for kid in self.kids: tmp.append(kid.__repr__(newindent+' ')) tmp = string.join(tmp, ', \n') return "VSVersionInfo(\n%sffi=%s,\n%skids=[\n%s\n%s]\n)" % (newindent, self.ffi.__repr__(newindent), newindent, tmp, newindent) def parseCommon(data, start=0): i = start + 6 (wLength, wValueLength, wType) = struct.unpack('3h', data[start:i]) #print "wLength, wValueLength, wType, i:", wLength, wValueLength, wType, i i, szKey = parseUString(data, i, i+wLength) #i = ((i + 3) / 4) * 4 #print `data[start+6:start+wLength]` return i, (wLength, wValueLength, wType, szKey) def parseUString(data, start, limit): i = start while i < limit: if data[i:i+2] == '\000\000': break i = i + 2 szKey = pywintypes.UnicodeFromRaw(data[start:i]) i = i + 2 #print "szKey:", '"'+str(szKey)+'"', "(consumed", i-start, "bytes - to", i, ")" return i, szKey ##VS_FIXEDFILEINFO { // vsffi ## DWORD dwSignature; //Contains the value 0xFEEFO4BD ## DWORD dwStrucVersion; //Specifies the binary version number of this structure. The high-order word of this member contains the major version number, and the low-order word contains the minor version number. ## DWORD dwFileVersionMS; // Specifies the most significant 32 bits of the files binary version number ## DWORD dwFileVersionLS; // ## DWORD dwProductVersionMS; // Specifies the most significant 32 bits of the binary version number of the product with which this file was distributed ## DWORD dwProductVersionLS; // ## DWORD dwFileFlagsMask; // Contains a bitmask that specifies the valid bits in dwFileFlags. A bit is valid only if it was defined when the file was created. ## DWORD dwFileFlags; // VS_FF_DEBUG, VS_FF_PATCHED etc. ## DWORD dwFileOS; // VOS_NT, VOS_WINDOWS32 etc. ## DWORD dwFileType; // VFT_APP etc. ## DWORD dwFileSubtype; // 0 unless VFT_DRV or VFT_FONT or VFT_VXD ## DWORD dwFileDateMS; ## DWORD dwFileDateLS; ##}; class FixedFileInfo: def __init__(self, filevers=(0, 0, 0, 0), prodvers=(0, 0, 0, 0), mask=0x3f, flags=0x0, OS=0x40004, fileType=0x1, subtype=0x0, date=(0, 0)): self.sig = -17890115 # 0xfeef04bd self.strucVersion = 0x10000 self.fileVersionMS = (filevers[0] << 16) | (filevers[1] & 0xffff) self.fileVersionLS = (filevers[2] << 16) | (filevers[3] & 0xffff) self.productVersionMS = (prodvers[0] << 16) | (prodvers[1] & 0xffff) self.productVersionLS = (prodvers[2] << 16) | (prodvers[3] & 0xffff) self.fileFlagsMask = mask self.fileFlags = flags self.fileOS = OS self.fileType = fileType self.fileSubtype = subtype self.fileDateMS = date[0] self.fileDateLS = date[1] def fromRaw(self, data, i): (self.sig, self.strucVersion, self.fileVersionMS, self.fileVersionLS, self.productVersionMS, self.productVersionLS, self.fileFlagsMask, self.fileFlags, self.fileOS, self.fileType, self.fileSubtype, self.fileDateMS, self.fileDateLS) = struct.unpack('13l', data[i:i+52]) return i+52 def toRaw(self): return struct.pack('13l', self.sig, self.strucVersion, self.fileVersionMS, self.fileVersionLS, self.productVersionMS, self.productVersionLS, self.fileFlagsMask, self.fileFlags, self.fileOS, self.fileType, self.fileSubtype, self.fileDateMS, self.fileDateLS) def __repr__(self, indent=''): fv = (self.fileVersionMS >> 16, self.fileVersionMS & 0xffff, self.fileVersionLS >> 16, self.fileVersionLS & 0xFFFF) pv = (self.productVersionMS >> 16, self.productVersionMS & 0xffff, self.productVersionLS >> 16, self.productVersionLS & 0xFFFF) fd = (self.fileDateMS, self.fileDateLS) tmp = ["FixedFileInfo(", "filevers=%s," % (fv,), "prodvers=%s," % (pv,), "mask=%s," % hex(self.fileFlagsMask), "flags=%s," % hex(self.fileFlags), "OS=%s," % hex(self.fileOS), "fileType=%s," % hex(self.fileType), "subtype=%s," % hex(self.fileSubtype), "date=%s" % (fd,), ")" ] return string.join(tmp, '\n'+indent+' ') ##StringFileInfo { ## WORD wLength; // Specifies the length of the version resource ## WORD wValueLength; // Specifies the length of the Value member in the current VS_VERSION_INFO structure ## WORD wType; // 1 means text, 0 means binary ## WCHAR szKey[]; // Contains the Unicode string "StringFileInfo". ## WORD Padding[]; ## StringTable Children[]; // Specifies a list of zero or more String structures ##}; class StringFileInfo: def __init__(self, kids=None): self.name = "StringFileInfo" if kids is None: self.kids = [] else: self.kids = kids def fromRaw(self, sublen, vallen, name, data, i, limit): self.name = name while i < limit: st = StringTable() j = st.fromRaw(data, i, limit) if TEST: if data[i:j] != st.toRaw(): rd = data[i:j] sd = st.toRaw() for x in range(0, len(rd), 16): rds = rd[x:x+16] sds = sd[x:x+16] if rds != sds: print "rd[%s:%s+16]: %s" % (x, x, `rds`) print "sd[%s:%s+16]: %s" % (x, x, `sds`) print print "raw: len %d, wLength %d" % (len(rd), struct.unpack('h', rd[:2])[0]) print " st: len %d, wLength %d" % (len(sd), struct.unpack('h', sd[:2])[0]) self.kids.append(st) i = j return i def toRaw(self): if type(self.name) is STRINGTYPE: self.name = pywintypes.Unicode(self.name) vallen = 0 typ = 1 sublen = 6 + 2*len(self.name) + 2 pad = '' if sublen % 4: pad = '\000\000' tmp = [] for kid in self.kids: tmp.append(kid.toRaw()) tmp = string.join(tmp, '') sublen = sublen + len(pad) + len(tmp) if tmp[-2:] == '\000\000': sublen = sublen - 2 return struct.pack('hhh', sublen, vallen, typ) + getRaw(self.name) + '\000\000' + pad + tmp def __repr__(self, indent=''): tmp = [] newindent = indent + ' ' for kid in self.kids: tmp.append(kid.__repr__(newindent)) tmp = string.join(tmp, ', \n') return "%sStringFileInfo(\n%s[\n%s\n%s])" % (indent, newindent, tmp, newindent) ##StringTable { ## WORD wLength; ## WORD wValueLength; ## WORD wType; ## WCHAR szKey[]; ## String Children[]; // Specifies a list of zero or more String structures. ##}; class StringTable: def __init__(self, name=None, kids=None): self.name = name self.kids = kids if name is None: self.name = '' if kids is None: self.kids = [] def fromRaw(self, data, i, limit): #print "Parsing StringTable" i, (cpsublen, cpwValueLength, cpwType, self.name) = parseCodePage(data, i, limit) # should be code page junk #i = ((i + 3) / 4) * 4 while i < limit: ss = StringStruct() j = ss.fromRaw(data, i, limit) if TEST: if data[i:j] != ss.toRaw(): print "raw:", `data[i:j]` print " ss:", `ss.toRaw()` i = j self.kids.append(ss) i = ((i + 3) / 4) * 4 return i def toRaw(self): if type(self.name) is STRINGTYPE: self.name = pywintypes.Unicode(self.name) vallen = 0 typ = 1 sublen = 6 + 2*len(self.name) + 2 tmp = [] for kid in self.kids: raw = kid.toRaw() if len(raw) % 4: raw = raw + '\000\000' tmp.append(raw) tmp = string.join(tmp, '') sublen = sublen + len(tmp) if tmp[-2:] == '\000\000': sublen = sublen - 2 return struct.pack('hhh', sublen, vallen, typ) + getRaw(self.name) + '\000\000' + tmp def __repr__(self, indent=''): tmp = [] newindent = indent + ' ' for kid in self.kids: tmp.append(repr(kid)) tmp = string.join(tmp, ',\n%s' % newindent) return "%sStringTable(\n%s'%s', \n%s[%s])" % (indent, newindent, str(self.name), newindent, tmp) ##String { ## WORD wLength; ## WORD wValueLength; ## WORD wType; ## WCHAR szKey[]; ## WORD Padding[]; ## String Value[]; ##}; class StringStruct: def __init__(self, name=None, val=None): self.name = name self.val = val if name is None: self.name = '' if val is None: self.val = '' def fromRaw(self, data, i, limit): i, (sublen, vallen, typ, self.name) = parseCommon(data, i) limit = i + sublen i = ((i + 3) / 4) * 4 i, self.val = parseUString(data, i, limit) return i def toRaw(self): if type(self.name) is STRINGTYPE: self.name = pywintypes.Unicode(self.name) if type(self.val) is STRINGTYPE: self.val = pywintypes.Unicode(self.val) vallen = len(self.val) + 1 typ = 1 sublen = 6 + 2*len(self.name) + 2 pad = '' if sublen % 4: pad = '\000\000' sublen = sublen + len(pad) + 2*vallen return struct.pack('hhh', sublen, vallen, typ) + getRaw(self.name) + '\000\000' + pad + getRaw(self.val) + '\000\000' def __repr__(self, indent=''): if pyvers < 20: return "StringStruct('%s', '%s')" % (str(self.name), str(self.val)) else: return "StringStruct('%s', '%s')" % (self.name, self.val) def parseCodePage(data, i, limit): #print "Parsing CodePage" i, (sublen, wValueLength, wType, nm) = parseCommon(data, i) #i = ((i + 3) / 4) * 4 return i, (sublen, wValueLength, wType, nm) ##VarFileInfo { ## WORD wLength; // Specifies the length of the version resource ## WORD wValueLength; // Specifies the length of the Value member in the current VS_VERSION_INFO structure ## WORD wType; // 1 means text, 0 means binary ## WCHAR szKey[]; // Contains the Unicode string "VarFileInfo". ## WORD Padding[]; ## Var Children[]; // Specifies a list of zero or more Var structures ##}; class VarFileInfo: def __init__(self, kids=None): if kids is None: self.kids = [] else: self.kids = kids def fromRaw(self, sublen, vallen, name, data, i, limit): self.sublen = sublen self.vallen = vallen self.name = name i = ((i + 3) / 4) * 4 while i < limit: vs = VarStruct() j = vs.fromRaw(data, i, limit) self.kids.append(vs) if TEST: if data[i:j] != vs.toRaw(): print "raw:", `data[i:j]` print "cmp:", `vs.toRaw()` i = j return i def toRaw(self): self.vallen = 0 self.wType = 1 self.name = pywintypes.Unicode('VarFileInfo') sublen = 6 + 2*len(self.name) + 2 pad = '' if sublen % 4: pad = '\000\000' tmp = [] for kid in self.kids: tmp.append(kid.toRaw()) tmp = string.join(tmp, '') self.sublen = sublen + len(pad) + len(tmp) return struct.pack('hhh', self.sublen, self.vallen, self.wType) + getRaw(self.name) + '\000\000' + pad + tmp def __repr__(self, indent=''): tmp = map(repr, self.kids) return "%sVarFileInfo([%s])" % (indent, string.join(tmp, ', ')) ##Var { ## WORD wLength; // Specifies the length of the version resource ## WORD wValueLength; // Specifies the length of the Value member in the current VS_VERSION_INFO structure ## WORD wType; // 1 means text, 0 means binary ## WCHAR szKey[]; // Contains the Unicode string "Translation" or a user-defined key string value ## WORD Padding[]; // ## WORD Value[]; // Specifies a list of one or more values that are language and code-page identifiers ##}; STRINGTYPE = type('') class VarStruct: def __init__(self, name=None, kids=None): self.name = name self.kids = kids if name is None: self.name = '' if kids is None: self.kids = [] def fromRaw(self, data, i, limit): i, (self.sublen, self.wValueLength, self.wType, self.name) = parseCommon(data, i) i = ((i + 3) / 4) * 4 for j in range(self.wValueLength/2): kid = struct.unpack('h', data[i:i+2])[0] self.kids.append(kid) i = i + 2 return i def toRaw(self): self.wValueLength = len(self.kids) * 2 self.wType = 0 if type(self.name) is STRINGTYPE: self.name = pywintypes.Unicode(self.name) sublen = 6 + 2*len(self.name) + 2 pad = '' if sublen % 4: pad = '\000\000' self.sublen = sublen + len(pad) + self.wValueLength tmp = [] for kid in self.kids: tmp.append(struct.pack('h', kid)) tmp = string.join(tmp, '') return struct.pack('hhh', self.sublen, self.wValueLength, self.wType) + getRaw(self.name) + '\000\000' + pad + tmp def __repr__(self, indent=''): return "VarStruct('%s', %s)" % (str(self.name), repr(self.kids)) def SetVersion(exenm, versionfile): txt = open(versionfile, 'r').read() vs = eval(txt+'\n', globals()) hdst = win32api.BeginUpdateResource(exenm, 0) win32api.UpdateResource(hdst, RT_VERSION, 1, vs.toRaw()) win32api.EndUpdateResource (hdst, 0) if __name__ == '__main__': import sys TEST = 1 if len(sys.argv) < 2: decode('c:/Program Files/Netscape/Communicator/Program/netscape.exe') else: print "Examining", sys.argv[1] decode(sys.argv[1]) Index: customDialogs.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/customDialogs.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** customDialogs.py 19 Apr 2005 08:23:56 -0000 1.5 --- customDialogs.py 12 May 2006 16:26:20 -0000 1.6 *************** *** 3,7 **** # # This file contains all the custom dialogs (each based on CustomDialog) used ! # by projectmanager # # This program is free software; you can redistribute it and/or modify --- 3,7 ---- # # This file contains all the custom dialogs (each based on CustomDialog) used ! # by standaloneBuilder # # This program is free software; you can redistribute it and/or modify *************** *** 178,182 **** def addWizardPage(self, basename, pageref): ! resName = basename + pageref + '.rsrc.py' fd = open(resName, 'r') res = eval(fd.read()) --- 178,183 ---- def addWizardPage(self, basename, pageref): ! r = basename + pageref ! resName = model.internationalResourceName(r) fd = open(resName, 'r') res = eval(fd.read()) *************** *** 286,294 **** def on_baseDirBtn_mouseClick(self, event): title = 'Select project base directory' ! basepath = self.parent.cfg.get('ConfigData', 'projects') result = dialog.directoryDialog(self, title, basepath, wx.DD_NEW_DIR_BUTTON) if result.accepted: ! self.components.baseDir.text = result.path ! self.components.nextBtn.enabled = True def getResult(self): --- 287,309 ---- def on_baseDirBtn_mouseClick(self, event): title = 'Select project base directory' ! basepath = str(self.parent.cfg.get('ConfigData', 'projects')) result = dialog.directoryDialog(self, title, basepath, wx.DD_NEW_DIR_BUTTON) if result.accepted: ! # need an error here if the directory selected is not a subdirectory ! # of basepath... ! plist = [] ! plist.append(basepath) ! plist.append(str(result.path)) ! if os.path.commonprefix(plist) != basepath: ! title = 'Invalid project base directory' ! txt = 'This version of standaloneBuilder does not allow creation ' ! txt += 'of projects which reside outside of the projects directory ' ! txt += 'specified in your preferences. This issue will be addressed ' ! txt += 'in the next version. Yes, it\'s lame - sorry! :-(' ! bull = dialog.alertDialog(self, wrap_string(txt, 60), title) ! self.components.baseDir.SetFocus() ! else: ! self.components.baseDir.text = result.path ! self.components.nextBtn.enabled = True def getResult(self): *************** *** 315,329 **** --- 330,411 ---- self.components.resEditPath.text = self.parent.cfg.get('ConfigData', 'reseditor') self.components.srcEditPath.text = self.parent.cfg.get('ConfigData', 'codeeditor') + self.components.txtEditPath.text = self.parent.cfg.get('ConfigData', 'texteditor') self.components.pixmapEditPath.text = self.parent.cfg.get('ConfigData', 'pixmapeditor') self.components.installerPath.text = self.parent.cfg.get('ConfigData', 'installerpath') + self.components.buildTool.stringSelection = self.parent.cfg.get('ConfigData', 'buildtool') + + if self.components.buildTool.stringSelection == 'py2exe': + self.components.installerPath.enabled = False + self.components.installerPathBtn.enabled = False + self.components.installerPathHelpBtn.enabled = False + else: + self.components.installerPath.enabled = True + self.components.installerPathBtn.enabled = True + self.components.installerPathHelpBtn.enabled = True + self.components.compilerPath.text = self.parent.cfg.get('ConfigData', 'compilerpath') self.components.appPublisher.text = self.parent.cfg.get('ConfigData', 'publisher') self.components.projectsPath.text = self.parent.cfg.get('ConfigData', 'projects') + def on_buildTool_select(self, event): + if self.components.buildTool.stringSelection == 'py2exe': + try: + from distutils.core import setup as wibble + except ImportError: + title = '*** ERROR ***' + txt = 'You do not appear to have a copy of the distutils ' + txt += 'package installed. This is required in order to allow ' + txt += 'building with py2exe.' + bull = dialog.alertDialog(self, wrap_string(txt, 60), title) + self.components.buildTool.stringSelection = 'pyInstaller' + else: + try: + import py2exe as wibble + except ImportError: + title = '*** ERROR ***' + txt = 'You do not appear to have a ' + txt += 'copy of the py2exe package installed. Please install ' + txt += 'the package and then re-configure your preferences.' + bull = dialog.alertDialog(self, wrap_string(txt, 60), title) + self.components.buildTool.stringSelection = 'pyInstaller' + else: + self.components.installerPath.text = '' + self.components.installerPath.enabled = False + self.components.installerPathBtn.enabled = False + self.components.installerPathHelpBtn.enabled = False + else: + self.components.installerPath.enabled = True + self.components.installerPathBtn.enabled = True + self.components.installerPathHelpBtn.enabled = True + # see if we can find pyInstaller + # C:\Python23\pyInstaller\Build.py + want = os.path.join('pyInstaller', 'Build.py') + installer = self.parent.lookFor(want) + #self.parent.cfg.set('ConfigData', 'installerpath', installer) + self.components.installerPath.text = installer + def on_btnOK_mouseClick(self, event): + if self.components.buildTool.stringSelection == 'pyInstaller': + if self.components.installerPath.text == '': + title = 'Preferences not saved!' + txt = 'You must specify the directory where the pyInstaller components can be found' + bull = dialog.alertDialog(self, wrap_string(txt, 60), title) + return + if self.components.compilerPath.text == '' and sys.platform.startswith('win'): + title = 'Preferences not saved!' + txt = 'You must specify the directory where the Inno Setup compiler can be found' + bull = dialog.alertDialog(self, wrap_string(txt, 60), title) + return + if self.components.projectsPath.text == '': + title = 'Preferences not saved!' + txt = 'You must specify your base projects directory' + bull = dialog.alertDialog(self, wrap_string(txt, 60), title) + return self.parent.cfg.set('ConfigData', 'reseditor', self.components.resEditPath.text) self.parent.cfg.set('ConfigData', 'codeeditor', self.components.srcEditPath.text) + self.parent.cfg.set('ConfigData', 'texteditor', self.components.txtEditPath.text) self.parent.cfg.set('ConfigData', 'pixmapeditor', self.components.pixmapEditPath.text) self.parent.cfg.set('ConfigData', 'installerpath', self.components.installerPath.text) + self.parent.cfg.set('ConfigData', 'buildtool', self.components.buildTool.stringSelection) self.parent.cfg.set('ConfigData', 'compilerpath', self.components.compilerPath.text) self.parent.cfg.set('ConfigData', 'publisher', self.components.appPublisher.text) *************** *** 369,372 **** --- 451,457 ---- self.showHelp(self.components.installerPath.userdata, self.components.StaticText1.text) + def on_buildToolHelpBtn_mouseClick(self, event): + self.showHelp(self.components.buildTool.userdata, self.components.StaticText1.text) + def on_compilerPathBtn_mouseClick(self, event): result = dialog.fileDialog(self, self.components.StaticText7.text, self.components.compilerPath.text) Index: prefsDialog.rsrc.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/prefsDialog.rsrc.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** prefsDialog.rsrc.py 15 Apr 2005 15:18:54 -0000 1.2 --- prefsDialog.rsrc.py 12 May 2006 16:26:20 -0000 1.3 *************** *** 1,205 **** ! {'type':'CustomDialog', ! 'name':'prefsDialog', ! 'title':'Projectmanager Preferences', ! 'position':(541, 39), ! 'size':(495, 385), ! 'components': [ ! ! {'type':'TextField', ! 'name':'resEditPath', ! 'position':(10, 20), ! 'size':(410, -1), ! 'userdata':'Select the location on your computer where the PythonCard resource editor is installed.', ! }, ! ! {'type':'Button', ! 'name':'resEditPathBtn', ! 'position':(425, 20), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'resEditPathHelpBtn', ! 'position':(455, 20), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'srcEditPath', ! 'position':(10, 65), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the PythonCard source code editor is installed.\n', ! }, ! ! {'type':'Button', ! 'name':'srcEditPathBtn', ! 'position':(425, 65), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'srcEditPathHelpBtn', ! 'position':(455, 65), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'pixmapEditPath', ! 'position':(10, 110), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where your preferred pixmap editor is installed.\n', ! }, ! ! {'type':'Button', ! 'name':'pixmapEditPathBtn', ! 'position':(425, 110), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'pixmapEditPathHelpBtn', ! 'position':(455, 110), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'installerPath', ! 'position':(10, 155), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the McMillan installer software is installed. Note that projectmanager assumes that you have already configured this according to the documentation that comes with it.\n', ! }, ! ! {'type':'Button', ! 'name':'installerPathBtn', ! 'position':(425, 155), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'installerPathHelpBtn', ! 'position':(455, 155), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'compilerPath', ! 'position':(10, 200), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the Inno setup compiler is installed.', ! }, ! ! {'type':'Button', ! 'name':'compilerPathBtn', ! 'position':(425, 200), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'compilerPathHelpBtn', ! 'position':(455, 200), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'appPublisher', ! 'position':(10, 245), ! 'size':(405, -1), ! 'userdata':"Defines the name which will be used to add an 'AppPublisher' entry to your Inno script file. This name will appear when someone does a right click on your standalone executable and selects 'properties'.", ! }, ! ! {'type':'Button', ! 'name':'appPublisherHelpBtn', ! 'position':(455, 245), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'projectsPath', ! 'position':(10, 295), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where you normally keep your PythonCard projects.', ! }, ! ! {'type':'Button', ! 'name':'projectsPathBtn', ! 'position':(425, 295), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'projectsPathHelpBtn', ! 'position':(455, 295), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'Button', ! 'id':5100, ! 'name':'btnOK', ! 'position':(10, 330), ! 'label':'OK', ! }, ! ! {'type':'Button', ! 'id':5101, ! 'name':'btnCancel', ! 'position':(95, 330), ! 'label':'Cancel', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText7', ! 'position':(10, 185), ! 'text':'Path to Inno setup compiler:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText6', ! 'position':(10, 230), ! 'text':'Your name as it will appear in finished applications properties:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText3', ! 'position':(10, 5), ! 'text':'Path to PythonCard resource editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText4', ! 'position':(10, 50), ! 'text':'Path to preferred code editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText5', ! 'position':(10, 95), ! 'text':'Path to preferred pixmap editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText1', ! 'position':(10, 140), ! 'text':'Path to McMillan Installer:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText2', ! 'position':(10, 280), ! 'text':'Path to your projects directory:', ! }, ! ! ] # end components ! } # end CustomDialog --- 1,268 ---- ! {'type':'CustomDialog', ! 'name':'prefsDialog', ! 'title':'standaloneBuilder Preferences', ! 'position':(123, 38), ! 'size':(665, 415), ! 'components': [ ! ! {'type':'TextField', ! 'name':'resEditPath', ! 'position':(165, 25), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the PythonCard resource editor is installed.', ! }, ! ! {'type':'Button', ! 'name':'resEditPathBtn', ! 'position':(580, 25), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'resEditPathHelpBtn', ! 'position':(610, 25), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'srcEditPath', ! 'position':(165, 55), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the PythonCard source code editor is installed.\n', ! }, ! ! {'type':'Button', ! 'name':'srcEditPathBtn', ! 'position':(580, 55), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'srcEditPathHelpBtn', ! 'position':(610, 55), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'txtEditPath', ! 'position':(165, 85), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the PythonCard source code editor is installed.\n', ! }, ! ! {'type':'Button', ! 'name':'txtEditPathBtn', ! 'position':(580, 85), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'txtEditPathHelpBtn', ! 'position':(610, 85), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'pixmapEditPath', ! 'position':(165, 115), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where your preferred pixmap editor is installed.\n', ! }, ! ! {'type':'Button', ! 'name':'pixmapEditPathBtn', ! 'position':(580, 115), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'pixmapEditPathHelpBtn', ! 'position':(610, 115), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'compilerPath', ! 'position':(165, 145), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the Inno setup compiler is installed.', ! }, ! ! {'type':'Button', ! 'name':'compilerPathBtn', ! 'position':(580, 145), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'compilerPathHelpBtn', ! 'position':(610, 145), ! 'size':(25, 25), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'projectsPath', ! 'position':(165, 175), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where you normally keep your PythonCard projects.', ! }, ! ! {'type':'Button', ! 'name':'projectsPathBtn', ! 'position':(580, 175), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'projectsPathHelpBtn', ! 'position':(610, 175), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'Choice', ! 'name':'buildTool', ! 'position':(165, 245), ! 'size':(130, -1), ! 'items':[u'py2exe', u'pyInstaller'], ! 'stringSelection':'pyInstaller', ! 'userdata':'Select the tool which you would prefer to use when building the executables for your projects.', ! }, ! ! {'type':'Button', ! 'name':'buildToolHelpBtn', ! 'position':(610, 245), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'installerPath', ! 'position':(165, 275), ! 'size':(405, -1), ! 'userdata':'Select the location on your computer where the pyInstaller software is installed. Note that standaloneBuilder assumes that you have already configured this according to the documentation that comes with it.\n', ! }, ! ! {'type':'Button', ! 'name':'installerPathBtn', ! 'position':(580, 275), ! 'size':(25, -1), ! 'label':'...', ! }, ! ! {'type':'Button', ! 'name':'installerPathHelpBtn', ! 'position':(610, 275), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'TextField', ! 'name':'appPublisher', ! 'position':(165, 305), ! 'size':(405, -1), ! 'userdata':"Defines the name which will be used to add an 'AppPublisher' entry to your Inno script file. This name will appear when someone does a right click on your standalone executable and selects 'properties'.", ! }, ! ! {'type':'Button', ! 'name':'appPublisherHelpBtn', ! 'position':(610, 305), ! 'size':(25, -1), ! 'label':'?', ! }, ! ! {'type':'Button', ! 'id':5100, ! 'name':'btnOK', ! 'position':(495, 355), ! 'label':'OK', ! }, ! ! {'type':'Button', ! 'id':5101, ! 'name':'btnCancel', ! 'position':(575, 355), ! 'label':'Cancel', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText2', ! 'position':(70, 180), ! 'text':'Projects directory:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText7', ! 'position':(60, 150), ! 'text':'Inno setup compiler:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText5', ! 'position':(40, 120), ! 'text':'Preferred pixmap editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText9', ! 'position':(80, 90), ! 'text':'Plain text editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText4', ! 'position':(40, 60), ! 'text':'PythonCard code editor:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText3', ! 'position':(20, 30), ! 'text':'PythonCard resource editor:', ! }, ! ! {'type':'StaticBox', ! 'name':'StaticBox1', ! 'position':(5, 0), ! 'size':(645, 215), ! 'label':'Paths to external files', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText6', ! 'position':(80, 310), ! 'text':'Publisher name:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText1', ! 'position':(65, 280), ! 'text':'Path to pyInstaller:', ! }, ! ! {'type':'StaticText', ! 'name':'StaticText8', ! 'position':(60, 250), ! 'text':'Preferred build tool:', ! }, ! ! {'type':'StaticBox', ! 'name':'StaticBox2', ! 'position':(5, 220), ! 'size':(645, 125), ! 'label':'Other settings', ! }, ! ! ] # end components ! } # end CustomDialog Index: standaloneBuilder.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/standaloneBuilder.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** standaloneBuilder.py 9 Sep 2005 12:32:08 -0000 1.13 --- standaloneBuilder.py 12 May 2006 16:26:20 -0000 1.14 *************** *** 34,45 **** import ConfigParser import time ! ! if not sys.platform.startswith('win'): ! import commands # pythoncard imports import wx from wxPython.html import wxHtmlEasyPrinting ! from PythonCard import dialog, model [...1721 lines suppressed...] + self.menuBar.setEnabled('menuEditPrefs', True) + self.menuBar.setEnabled('menuToolsLogAdd', True) + self.menuBar.setEnabled('menuToolsChkImport', True) + self.menuBar.setEnabled('menuToolsAddScript', True) + self.menuBar.setEnabled('menuToolsAddResource', True) + self.menuBar.setEnabled('menuToolsAddPixmap', True) + self.menuBar.setEnabled('menuToolsAddOther', True) + self.menuBar.setEnabled('menuToolsRunMain', True) + self.menuBar.setEnabled('menuToolsRebuild', True) + self.menuBar.setEnabled('menuToolsRelease', True) + self.menuBar.setEnabled('menuHelpManual', True) + self.menuBar.setEnabled('menuHelpAbout', True) + if self.cfg.get('ConfigData', 'buildtool') != 'pyInstaller': + self.components.specBtn.enabled = False + self.menuBar.setEnabled('menuEditSpecfile', False) + else: + self.components.specBtn.enabled = True + self.menuBar.setEnabled('menuEditSpecfile', True) if __name__ == '__main__': Index: outputWindow.rsrc.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/outputWindow.rsrc.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** outputWindow.rsrc.py 15 Apr 2005 15:18:54 -0000 1.3 --- outputWindow.rsrc.py 12 May 2006 16:26:20 -0000 1.4 *************** *** 1,107 **** ! {'application':{'type':'Application', ! 'name':'Template', ! 'backgrounds': [ ! {'type':'Background', ! 'name':'outputWindow', ! 'title':'Rebuild project', ! 'size':(400, 300), ! 'visible':0, ! ! 'components': [ ! ! {'type':'Button', ! 'name':'closeBtn', ! 'position':(10, 225), ! 'label':'Close', ! }, ! ! {'type':'StaticText', ! 'name':'txt5', ! 'position':(10, 90), ! 'text':'Returned messages:', ! }, ! ! {'type':'TextArea', ! 'name':'returnedText', ! 'position':(10, 105), ! 'size':(375, 110), ! }, ! ! {'type':'StaticText', ! 'name':'txt4c', ! 'position':(145, 70), ! 'text':'please wait...', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt4b', ! 'position':(145, 70), ! 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, ! 'text':'Done', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt4a', ! 'position':(10, 70), ! 'text':'Rebuilding distributable:', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt3c', ! 'position':(145, 50), ! 'text':'please wait...', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt3b', ! 'position':(145, 50), ! 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, ! 'text':'Done', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt3a', ! 'position':(10, 50), ! 'text':'Rebuilding application:', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt2b', ! 'position':(145, 30), ! 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, ! 'text':'Done', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt2a', ! 'position':(10, 30), ! 'text':'Rebuilding versioninfo file:', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt1b', ! 'position':(145, 10), ! 'font':{'style': 'bold', 'faceName': 'Verdana', 'family': 'sansSerif', 'size': 8}, ! 'text':'Done', ! 'visible':False, ! }, ! ! {'type':'StaticText', ! 'name':'txt1a', ! 'position':(10, 10), ! 'text':'Rebuilding spec file:', ! 'visible':False, ! }, ! ! ] # end components ! } # end background ! ] # end backgrounds ! } } --- 1,123 ---- ! {'application':{'type':'Application', ! 'name':'Template', ! 'backgrounds': [ ! {'type':'Background', ! 'name':'outputWindow', ! 'title':'Rebuild project', ! 'size':(400, 300), ! 'visible':0, ! ! 'components': [ ! ! {'type':'TextArea', ! 'name':'importError', ! 'position':(10, 10), ! 'size':(375, 205), ! 'enabled':False, ! 'visible':False, ! }, ! ! {'type':'Button',... [truncated message content] |
From: Phil E. <l2...@us...> - 2006-05-12 16:26:28
|
Update of /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/templates In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5037/templates Modified Files: versioninfo.txt Added Files: setup.py Log Message: Multiple bug fixes and enhancements ready for release of 0.8.2 --- NEW FILE: setup.py --- #!/usr/bin/python # # generic py2exe setup script - Phil Edwards <ph...@li...> # Copyright (c) 2001-2005 PythonCard developers # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY # WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # vim: ai et sw=4 ts=4 from distutils.core import setup import py2exe data_files = eval((open('datafiles.dat').read())) standalone = eval((open('standalone.dat').read())) buildOpts = eval((open('buildoptions.dat').read())) buildType = buildOpts['buildType'] zipfile = r"lib/sharedlib" options = {"py2exe": {"compressed": 1, "optimize": 2}} if buildType != "windows": setup(options = options, zipfile = zipfile, data_files = data_files, console = [standalone]) else: setup(options = options, zipfile = zipfile, data_files = data_files, windows = [standalone]) Index: versioninfo.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/templates/versioninfo.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** versioninfo.txt 9 May 2005 09:58:03 -0000 1.3 --- versioninfo.txt 12 May 2006 16:26:20 -0000 1.4 *************** *** 17,24 **** [StringStruct('CompanyName', '%(companyname)s'), StringStruct('FileDescription', '%(name)s Executable'), ! StringStruct('FileVersion', '%(major)s.%(minor)s.%(fix)s (build_%(build)s_%(date)s)'), StringStruct('InternalName', '%(name)s'), StringStruct('LegalCopyright', '\xa9 %(publisher)s. All rights reserved.'), ! StringStruct('OriginalFilename', '%(name)s.EXE'), StringStruct('ProductName', '%(desc)s'), StringStruct('ProductVersion', '%(major)s.%(minor)s.%(fix)s')]) --- 17,24 ---- [StringStruct('CompanyName', '%(companyname)s'), StringStruct('FileDescription', '%(name)s Executable'), ! StringStruct('FileVersion', '%(major)s.%(minor)s.%(fix)s.%(date)s%(build)s'), StringStruct('InternalName', '%(name)s'), StringStruct('LegalCopyright', '\xa9 %(publisher)s. All rights reserved.'), ! StringStruct('OriginalFilename', '%(name)s.exe'), StringStruct('ProductName', '%(desc)s'), StringStruct('ProductVersion', '%(major)s.%(minor)s.%(fix)s')]) |
From: Phil E. <l2...@us...> - 2006-05-12 16:26:28
|
Update of /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5037/doc Modified Files: about.html license.html license.txt Log Message: Multiple bug fixes and enhancements ready for release of 0.8.2 Index: license.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/doc/license.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** license.html 12 May 2005 08:33:27 -0000 1.2 --- license.html 12 May 2006 16:26:20 -0000 1.3 *************** *** 5,9 **** <body> <pre> ! Copyright (c) 2001-2004 PythonCard developers All rights reserved. --- 5,9 ---- <body> <pre> ! Copyright (c) 2001-2005 PythonCard developers All rights reserved. Index: license.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/doc/license.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** license.txt 12 May 2005 08:33:44 -0000 1.2 --- license.txt 12 May 2006 16:26:20 -0000 1.3 *************** *** 1,3 **** ! Copyright (c) 2001-2004 PythonCard developers All rights reserved. --- 1,3 ---- ! Copyright (c) 2001-2005 PythonCard developers All rights reserved. *************** *** 13,24 **** derived from this software without specific prior written permission. ! THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ! IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO ! EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT ! OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING ! IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- 13,27 ---- derived from this software without specific prior written permission. ! THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY ! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ! THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A ! PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ! AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ! BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ! SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ! WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE ! USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Index: about.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/standaloneBuilder/doc/about.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** about.html 15 Apr 2005 15:18:54 -0000 1.2 --- about.html 12 May 2006 16:26:20 -0000 1.3 *************** *** 7,11 **** <tr> <td colspan="2"> ! <b>standaloneBuilder Version 0.1.1</b> </td> </tr> --- 7,11 ---- <tr> <td colspan="2"> ! <b>standaloneBuilder Version 0.1.4</b> </td> </tr> *************** *** 24,26 **** </font> </body> ! </html> --- 24,26 ---- </font> </body> ! </html> |
From: Alex T. <ale...@us...> - 2006-05-08 23:47:03
|
Update of /cvsroot/pythoncard/PythonCard/docs/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6529 Modified Files: index.html Log Message: Fix small typo in URL - sourceforge.net not soureforge.net Index: index.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/index.html,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** index.html 25 Dec 2005 14:05:34 -0000 1.66 --- index.html 8 May 2006 13:15:50 -0000 1.67 *************** *** 44,48 **** <ul> <li><a href="http://sourceforge.net/project/showfiles.php?group_id=19015">Download</a> the latest version of the package</li> ! <li>View some <a href="http://pythoncard.soureforge.net/samples/samples.html">screenshots</a> of the sample applications</li> </ul> --- 44,48 ---- <ul> <li><a href="http://sourceforge.net/project/showfiles.php?group_id=19015">Download</a> the latest version of the package</li> ! <li>View some <a href="http://pythoncard.sourceforge.net/samples/samples.html">screenshots</a> of the sample applications</li> </ul> |
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25721/docs/html/framework Modified Files: components.html dialogs.html events_and_handlers.html general_concepts_and_limitations.html menus.html resource_files.html runtime_tools.html Log Message: Preparation for the build of 0.8.2 Index: dialogs.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/dialogs.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dialogs.html 25 Dec 2005 08:02:46 -0000 1.3 --- dialogs.html 6 Apr 2006 11:00:26 -0000 1.4 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 24, 2005 for release 0.8.1</p> <p>Dialogs are defined in dialog.py. They are all modal and map directly to a --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>Dialogs are defined in dialog.py. They are all modal and map directly to a Index: runtime_tools.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/runtime_tools.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** runtime_tools.html 25 Dec 2005 12:13:46 -0000 1.3 --- runtime_tools.html 6 Apr 2006 11:00:26 -0000 1.4 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 25, 2005 for release 0.8.1</p> <p>PythonCard supports the following runtime tools (command-line switch in --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>PythonCard supports the following runtime tools (command-line switch in Index: menus.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/menus.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** menus.html 25 Dec 2005 08:09:48 -0000 1.3 --- menus.html 6 Apr 2006 11:00:26 -0000 1.4 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 24, 2005 for release 0.8.1</p> <p>The Menu classes are defined in menu.py. Menus for an app are defined in the --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>The Menu classes are defined in menu.py. Menus for an app are defined in the Index: general_concepts_and_limitations.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/general_concepts_and_limitations.html,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** general_concepts_and_limitations.html 25 Dec 2005 03:23:55 -0000 1.5 --- general_concepts_and_limitations.html 6 Apr 2006 11:00:26 -0000 1.6 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 24, 2005 for release 0.8.1</p> <p>I'll cover the main points of the PythonCard framework from a user point of view.</p> --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>I'll cover the main points of the PythonCard framework from a user point of view.</p> Index: events_and_handlers.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/events_and_handlers.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** events_and_handlers.html 25 Dec 2005 01:22:22 -0000 1.3 --- events_and_handlers.html 6 Apr 2006 11:00:26 -0000 1.4 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 24, 2005 for release 0.8.1</p> <p>I'll cover the main points from a user point of view.</p> --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>I'll cover the main points from a user point of view.</p> Index: resource_files.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/resource_files.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** resource_files.html 25 Dec 2005 12:13:46 -0000 1.4 --- resource_files.html 6 Apr 2006 11:00:26 -0000 1.5 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 25, 2005 for release 0.8.1</p> <p>Resource files are an old idea, but they are not widely used in the Python --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p>Resource files are an old idea, but they are not widely used in the Python Index: components.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/components.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** components.html 25 Dec 2005 07:52:27 -0000 1.3 --- components.html 6 Apr 2006 11:00:26 -0000 1.4 *************** *** 12,16 **** <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: December 24, 2005 for release 0.8.1</p> <p> --- 12,16 ---- <?php include "../sidebar.php" ?> <div id="content"> ! <p>Updated: March 31, 2006 for release 0.8.2</p> <p> |
From: Alex T. <ale...@us...> - 2006-04-06 11:00:52
|
Update of /cvsroot/pythoncard/PythonCard/docs/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25721/docs/html Modified Files: linux_installation.html macosx_installation.html macosx_jaguar_installation.html macosx_panther_installation.html macosx_tiger_installation.html resource_editor_overview.html shell.html timers-threads.html walkthrough2.html windows_installation.html Log Message: Preparation for the build of 0.8.2 Index: walkthrough2.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough2.html,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** walkthrough2.html 22 Dec 2005 18:20:33 -0000 1.14 --- walkthrough2.html 6 Apr 2006 11:00:25 -0000 1.15 *************** *** 46,50 **** make a few observations about other things that I could have done that would make the example more instructive or interesting. Note that this tutorial ! describes how this process is handled in PythonCardPrototype 0.8.1. Continuing enhancements to the UI, especially in the resourceEditor, will make the process more and more streamlined over time.</p> --- 46,50 ---- make a few observations about other things that I could have done that would make the example more instructive or interesting. Note that this tutorial ! describes how this process is handled in PythonCard 0.8.2. Continuing enhancements to the UI, especially in the resourceEditor, will make the process more and more streamlined over time.</p> Index: shell.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/shell.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** shell.html 27 Dec 2005 02:38:07 -0000 1.6 --- shell.html 6 Apr 2006 11:00:25 -0000 1.7 *************** *** 15,19 **** <p>PythonCard integrates a rich, high-level interactive Python shell. This document describes how to launch and use this shell as you create PythonCard ! applications. It is based on Version 0.8.1 of PythonCard.</p> <p>The PythonCard shell utilizes the PyCrust package created by Patrick O'Brien of Orbtech which is included with wxPython. --- 15,19 ---- <p>PythonCard integrates a rich, high-level interactive Python shell. This document describes how to launch and use this shell as you create PythonCard ! applications. It is based on Version 0.8.2 of PythonCard.</p> <p>The PythonCard shell utilizes the PyCrust package created by Patrick O'Brien of Orbtech which is included with wxPython. Index: resource_editor_overview.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/resource_editor_overview.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** resource_editor_overview.html 13 Aug 2005 14:39:41 -0000 1.4 --- resource_editor_overview.html 6 Apr 2006 11:00:25 -0000 1.5 *************** *** 16,20 **** <p>This document describes the resourceEditor which is used to design, lay out, and manipulate PythonCard applications' graphical components. ! It is current as of Version 0.8.1 of the PythonCard release; you should expect only minor changes in the behavior of the resourceEditor to change between now and release 1.0 of the product.</p> --- 16,20 ---- <p>This document describes the resourceEditor which is used to design, lay out, and manipulate PythonCard applications' graphical components. ! It is current as of Version 0.8.2 of the PythonCard release; you should expect only minor changes in the behavior of the resourceEditor to change between now and release 1.0 of the product.</p> Index: macosx_panther_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/macosx_panther_installation.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** macosx_panther_installation.html 27 Dec 2005 19:46:55 -0000 1.1 --- macosx_panther_installation.html 6 Apr 2006 11:00:25 -0000 1.2 *************** *** 40,44 **** <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.1.tar.gz">PythonCard-0.8.1.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> --- 40,44 ---- <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.2.tar.gz">PythonCard-0.8.2.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> *************** *** 58,64 **** folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.1.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.1.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the --- 58,64 ---- folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.2.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.2.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the Index: windows_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/windows_installation.html,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** windows_installation.html 22 Mar 2005 05:59:14 -0000 1.17 --- windows_installation.html 6 Apr 2006 11:00:26 -0000 1.18 *************** *** 24,39 **** </ol> <h2>Downloading Python</h2> ! <p>Python 2.3.4 is available from a couple of sources.</p> <ul> ! <li>The main <a href="http://www.python.org/2.3.4/">Python 2.3.4</a> page.</li> <li>The <a href="http://www.activestate.com/Products/ActivePython/more_information.plex">ActivePython</a> distribution</li> </ul> <p>For this guide, we'll be installing from the main Python site. Click on ! this <a href="http://www.python.org/ftp/python/2.3.4/Python-2.3.4.exe">Python-2.3.4.exe</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by your browser.</p> <h2>Downloading wxPython</h2> ! <p>PythonCard relies on the wxPython package. Click on this <a href="http://prdownloads.sourceforge.net/wxpython/wxPythonWIN32-2.5.2.8-Py23.exe">wxPython 2.5.2.8 for Python 2.3.x</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by your --- 24,39 ---- </ol> <h2>Downloading Python</h2> ! <p>Python 2.4.3 is available from a couple of sources.</p> <ul> ! <li>The main <a href="http://www.python.org/2.4.3/">Python 2.4.3</a> page.</li> <li>The <a href="http://www.activestate.com/Products/ActivePython/more_information.plex">ActivePython</a> distribution</li> </ul> <p>For this guide, we'll be installing from the main Python site. Click on ! this <a href="http://www.python.org/ftp/python/2.4.3/Python-2.4.3.exe">Python-2.4.3.exe</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by your browser.</p> <h2>Downloading wxPython</h2> ! <p>PythonCard relies on the wxPython package. Click on this <a href="http://prdownloads.sourceforge.net/wxpython/wxPython2.6-win32-ansi-2.6.3.0-py24.exe">win32-ansi 2.6.3 for Python 2.4</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by your *************** *** 41,45 **** <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.1.FIXED.win32.exe">PythonCard-0.8.1.FIXED.win32.exe</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by --- 41,45 ---- <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.2.win32.exe">PythonCard-0.8.2.win32.exe</a> link to begin the download. Tell your browser where you want the file stored and the download proceeds. Note where on your system the file is saved by *************** *** 48,52 **** <p>Python arrives at your system as an installable application. All you have to do is double-click on the file you downloaded (it's called ! Python-2.3.4.exe) and follow the instructions in the installation wizard. By default, the installer will create a new directory C:\Python23 to contain the Python executables, documentation, tools, IDLE editor, and standard --- 48,52 ---- <p>Python arrives at your system as an installable application. All you have to do is double-click on the file you downloaded (it's called ! Python-2.4.3.exe) and follow the instructions in the installation wizard. By default, the installer will create a new directory C:\Python23 to contain the Python executables, documentation, tools, IDLE editor, and standard *************** *** 55,61 **** <h2>Installing wxPython</h2> <p>wxPython also comes as an automatic installer. Just double-click on the ! file you downloaded (it's called wxPythonWIN32-2.5.2.8-Py23.exe) and follow the instructions. By default, wxPython will be installed into ! Python23\Lib\site-packages.</p> <h2>Installing PythonCard</h2> <p>PythonCard also comes as an automatic installer. Just double-click on the --- 55,61 ---- <h2>Installing wxPython</h2> <p>wxPython also comes as an automatic installer. Just double-click on the ! file you downloaded (it's called wxPython2.6-win32-ansi-2.6.3.0-py24.exe) and follow the instructions. By default, wxPython will be installed into ! Python24\Lib\site-packages.</p> <h2>Installing PythonCard</h2> <p>PythonCard also comes as an automatic installer. Just double-click on the Index: macosx_jaguar_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/macosx_jaguar_installation.html,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** macosx_jaguar_installation.html 18 Oct 2004 17:55:57 -0000 1.9 --- macosx_jaguar_installation.html 6 Apr 2006 11:00:25 -0000 1.10 *************** *** 41,45 **** <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. Click on this ! <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.1.tar.gz">PythonCard-0.8.1.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> --- 41,45 ---- <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. Click on this ! <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.2.tar.gz">PythonCard-0.8.2.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> *************** *** 61,67 **** folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.1.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.1.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the --- 61,67 ---- folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.2.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.2.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the Index: timers-threads.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/timers-threads.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** timers-threads.html 23 Dec 2005 20:07:43 -0000 1.6 --- timers-threads.html 6 Apr 2006 11:00:25 -0000 1.7 *************** *** 26,30 **** <hr /> <h3>Overview, Scope and Purpose</h3> ! <p><em>This walkthrough is targeted at PythonCard Version 0.8.1. As PythonCard grows, some of this walkthrough may go out of date, even fail - if this --- 26,30 ---- <hr /> <h3>Overview, Scope and Purpose</h3> ! <p><em>This walkthrough is targeted at PythonCard Version 0.8.2. As PythonCard grows, some of this walkthrough may go out of date, even fail - if this Index: linux_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/linux_installation.html,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** linux_installation.html 30 Mar 2005 15:55:12 -0000 1.15 --- linux_installation.html 6 Apr 2006 11:00:25 -0000 1.16 *************** *** 70,74 **** to go to the download page. Supported Mandrake Linux distributions for RPM installation are 10.0 and 10.1 in both <em>Community</em> and <em>Official</em> flavours.</p> ! <p>Download <a href="http://www.linux2000.com/downloads/PythonCard-0.8.1-1mdk.noarch.rpm">http://www.linux2000.com/downloads/PythonCard-0.8.1-1mdk.noarch.rpm</a> and save the file somehwere convenient as before.</p> --- 70,74 ---- to go to the download page. Supported Mandrake Linux distributions for RPM installation are 10.0 and 10.1 in both <em>Community</em> and <em>Official</em> flavours.</p> ! <p>Download <a href="http://www.linux2000.com/downloads/PythonCard-0.8.2-1mdk.noarch.rpm">http://www.linux2000.com/downloads/PythonCard-0.8.2-1mdk.noarch.rpm</a> and save the file somehwere convenient as before.</p> *************** *** 84,88 **** <h3>Installing PythonCard</h3> <p>The command to install the PythonCard RPM is pretty similar:</p> ! <p class="code">rpm -Uvh /home/fred/PythonCard-0.8.1-1mdk.noarch.rpm</p> <p>Again, replace "/home/fred" with the full path to where your browser saved the RPM, and substitute the relevant RPM file name for you --- 84,88 ---- <h3>Installing PythonCard</h3> <p>The command to install the PythonCard RPM is pretty similar:</p> ! <p class="code">rpm -Uvh /home/fred/PythonCard-0.8.2-1mdk.noarch.rpm</p> <p>Again, replace "/home/fred" with the full path to where your browser saved the RPM, and substitute the relevant RPM file name for you Index: macosx_tiger_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/macosx_tiger_installation.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** macosx_tiger_installation.html 27 Dec 2005 19:49:28 -0000 1.1 --- macosx_tiger_installation.html 6 Apr 2006 11:00:25 -0000 1.2 *************** *** 40,44 **** <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.1.tar.gz">PythonCard-0.8.1.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> --- 40,44 ---- <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.2.tar.gz">PythonCard-0.8.2.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> *************** *** 58,64 **** folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.1.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.1.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the --- 58,64 ---- folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.2.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.2.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the Index: macosx_installation.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/macosx_installation.html,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** macosx_installation.html 18 Oct 2004 17:55:57 -0000 1.21 --- macosx_installation.html 6 Apr 2006 11:00:25 -0000 1.22 *************** *** 40,44 **** <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.1.tar.gz">PythonCard-0.8.1.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> --- 40,44 ---- <h2>Downloading PythonCard</h2> <p>The latest version of PythonCard is always available via the <a href="http://sourceforge.net/project/showfiles.php?group_id=19015">PythonCard download page</a>. ! Click on this <a href="http://prdownloads.sourceforge.net/pythoncard/PythonCard-0.8.2.tar.gz">PythonCard-0.8.2.tar.gz</a> link to begin the download. Again, most Mac OS X browsers will save the file to your desktop.</p> *************** *** 58,64 **** folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.1.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.1.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the --- 58,64 ---- folder.</p> <h2>Installing PythonCard</h2> ! <p>The PythonCard-0.8.2.tar.gz file you downloaded should automatically be decompressed by Stuffit; if the file isn't already ! decompressed, then double-click the PythonCard-0.8.2.tar.gz file. You should now have a PythonCard-0.8 directory on your desktop. Open the Terminal application and do a cd to that directory and then run the |
From: Alex T. <ale...@us...> - 2006-04-06 11:00:34
|
Update of /cvsroot/pythoncard/PythonCard/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25721/docs Modified Files: changelog.txt Log Message: Preparation for the build of 0.8.2 Index: changelog.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/changelog.txt,v retrieving revision 1.325 retrieving revision 1.326 diff -C2 -d -r1.325 -r1.326 *** changelog.txt 13 Jan 2006 23:34:26 -0000 1.325 --- changelog.txt 6 Apr 2006 11:00:23 -0000 1.326 *************** *** 8,12 **** ! Release 0.8.2 2006-01-?? added minimized and maximized attributes to Background class created documentation.py module to hold code previously in widgets.py --- 8,12 ---- ! Release 0.8.2 2006-04-06 added minimized and maximized attributes to Background class created documentation.py module to hold code previously in widgets.py |
From: Andy T. <an...@us...> - 2006-03-03 10:07:25
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor/modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29158/tools/resourceEditor/modules Modified Files: resourceOutput.py Log Message: Removed coercion to ascii to enable proper unicode support Index: resourceOutput.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/modules/resourceOutput.py,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** resourceOutput.py 27 Oct 2005 22:58:00 -0000 1.33 --- resourceOutput.py 3 Mar 2006 10:07:21 -0000 1.34 *************** *** 95,100 **** #print key, value, type(value) if isinstance(value, (str, unicode)): ! if isinstance(value, unicode): ! value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) --- 95,100 ---- #print key, value, type(value) if isinstance(value, (str, unicode)): ! # if isinstance(value, unicode): ! # value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) |
From: Andy T. <an...@us...> - 2006-03-03 10:07:25
|
Update of /cvsroot/pythoncard/PythonCard/tools/oneEditor/modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29158/tools/oneEditor/modules Modified Files: resourceOutput.py Log Message: Removed coercion to ascii to enable proper unicode support Index: resourceOutput.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/oneEditor/modules/resourceOutput.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** resourceOutput.py 4 Oct 2004 19:16:44 -0000 1.2 --- resourceOutput.py 3 Mar 2006 10:07:21 -0000 1.3 *************** *** 93,98 **** #print key, value, type(value) if isinstance(value, (str, unicode)): ! if isinstance(value, unicode): ! value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) --- 93,98 ---- #print key, value, type(value) if isinstance(value, (str, unicode)): ! # if isinstance(value, unicode): ! # value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) |
From: Andy T. <an...@us...> - 2006-03-03 10:07:25
|
Update of /cvsroot/pythoncard/PythonCard/tools/experimentalResourceEditor/modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29158/tools/experimentalResourceEditor/modules Modified Files: resourceOutput.py Log Message: Removed coercion to ascii to enable proper unicode support Index: resourceOutput.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/experimentalResourceEditor/modules/resourceOutput.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** resourceOutput.py 24 Oct 2004 23:37:27 -0000 1.2 --- resourceOutput.py 3 Mar 2006 10:07:21 -0000 1.3 *************** *** 95,100 **** #print key, value, type(value) if isinstance(value, (str, unicode)): ! if isinstance(value, unicode): ! value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) --- 95,100 ---- #print key, value, type(value) if isinstance(value, (str, unicode)): ! # if isinstance(value, unicode): ! # value = value.encode('ascii', 'ignore') # need to escape strings #pprint.pprint(value) |
From: Alex T. <ale...@us...> - 2006-02-22 14:21:35
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor/modules In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30709/modules Modified Files: multipropertyEditor.rsrc.py Log Message: Change 'nudge' button backgrounds to 'none' - transparent can cause odd effects of transparency through window background. Index: multipropertyEditor.rsrc.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/modules/multipropertyEditor.rsrc.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** multipropertyEditor.rsrc.py 27 Oct 2005 22:54:41 -0000 1.2 --- multipropertyEditor.rsrc.py 22 Feb 2006 14:21:22 -0000 1.3 *************** *** 432,436 **** 'position':(60, 454), 'size':(18, 24), ! 'border':'transparent', 'command':'nudge', 'file':'images/nudge_down.png', --- 432,436 ---- 'position':(60, 454), 'size':(18, 24), ! 'border':'none', 'command':'nudge', 'file':'images/nudge_down.png', *************** *** 442,446 **** 'position':(60, 399), 'size':(18, 24), ! 'border':'transparent', 'command':'nudge', 'file':'images/nudge_up.png', --- 442,446 ---- 'position':(60, 399), 'size':(18, 24), ! 'border':'none', 'command':'nudge', 'file':'images/nudge_up.png', *************** *** 462,466 **** 'position':(100, 429), 'size':(18, 24), ! 'border':'transparent', 'command':'nudge', 'file':'images/nudge_right.png', --- 462,466 ---- 'position':(100, 429), 'size':(18, 24), ! 'border':'none', 'command':'nudge', 'file':'images/nudge_right.png', *************** *** 472,476 **** 'position':(23, 430), 'size':(18, 24), ! 'border':'transparent', 'command':'nudge', 'file':'images/nudge_left.png', --- 472,476 ---- 'position':(23, 430), 'size':(18, 24), ! 'border':'none', 'command':'nudge', 'file':'images/nudge_left.png', |
From: Kevin A. <ka...@us...> - 2006-01-24 20:49:38
|
Update of /cvsroot/pythoncard/PythonCard/samples/life In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10097 Modified Files: life.py life.rsrc.py Log Message: made scale menu checkable Index: life.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/samples/life/life.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** life.py 13 Dec 2005 11:13:23 -0000 1.48 --- life.py 24 Jan 2006 20:49:27 -0000 1.49 *************** *** 34,38 **** # mouseClick after file dialog self.openingFileDialog = False ! self.setCanvasAttributes(5) self.initSizers() --- 34,43 ---- # mouseClick after file dialog self.openingFileDialog = False ! scale = self.getScaleFromMenu() ! if scale: ! self.setCanvasAttributes(self.getScaleFromMenu()) ! else: ! self.menuBar.setChecked('menuScale5') ! self.setCanvasAttributes(5) self.initSizers() *************** *** 395,400 **** event.skip() def on_setScale_command(self, event): ! self.setCanvasAttributes(int(event.target.name[9:])) self.displayGeneration() --- 400,421 ---- event.skip() + # it would be nice to get the scales from the resource file + # rather than hard coding them here + # that should be possible by walking the resource or the Scale menu + # looking for a prefix menu item name of 'menuScale' + def getScaleFromMenu(self): + for i in [1, 2, 3, 4, 5, 10]: + if self.menuBar.getChecked('menuScale' + str(i)): + return i + + def uncheckScaleMenuItems(self, scale): + for i in [1, 2, 3, 4, 5, 10]: + if i != scale: + self.menuBar.setChecked('menuScale' + str(i), False) + def on_setScale_command(self, event): ! scale = int(event.target.name[9:]) ! self.uncheckScaleMenuItems(scale) ! self.setCanvasAttributes(scale) self.displayGeneration() Index: life.rsrc.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/samples/life/life.rsrc.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** life.rsrc.py 28 Sep 2004 05:00:26 -0000 1.7 --- life.rsrc.py 24 Jan 2006 20:49:27 -0000 1.8 *************** *** 1,125 **** ! { 'application':{ 'type':'Application', ! 'name':'Life', ! 'backgrounds': ! [ ! { 'type':'Background', ! 'name':'bgLife', ! 'title':'Life PythonCard Application', ! 'size':( 310, 300 ), ! 'statusBar':1, ! 'style':['resizeable'], ! 'menubar': ! { ! 'type':'MenuBar', ! 'menus': ! [ ! { 'type':'Menu', ! 'name':'menuFile', ! 'label':'&File', ! 'items': [ ! { 'type':'MenuItem', ! 'name':'menuFileOpen', ! 'label':'&Open...\tCtrl+O' }, ! { 'type':'MenuItem', ! 'name':'menuFileSaveAs', ! 'enabled':0, ! 'label':'Save &As...' }, ! { 'type':'MenuItem', 'name':'fileSep1', 'label':'-' }, ! { 'type':'MenuItem', ! 'name':'menuFileExit', ! 'label':'E&xit\tAlt+X', ! 'command':'exit' } ] }, ! { 'type':'Menu', ! 'name':'menuEdit', ! 'label':'&Edit', ! 'items': [ ! { 'type':'MenuItem', ! 'name':'menuEditCopy', ! 'label':'&Copy\tCtrl+C'}, ! { 'type':'MenuItem', ! 'name':'menuEditPaste', ! 'label':'&Paste\tCtrl+V'}, ! { 'type':'MenuItem', 'name':'editSep1', 'label':'-' }, ! { 'type':'MenuItem', ! 'name':'menuEditClear', ! 'label':'&Clear', ! 'command':'editClear'} ! ] }, ! { 'type':'Menu', ! 'name':'menuAutomata', ! 'label':'&Automata', ! 'items': [ ! { 'type':'MenuItem', ! 'name':'menuAutomataLife', ! 'label':"Conway's Life...", ! 'command':'doAutomata'}, ! { 'type':'MenuItem', ! 'name':'menuAutomataLexicon', ! 'label':"Lexicon Window"}, ! { 'type':'MenuItem', ! 'name':'menuAutomataPatternsList', ! 'label':"Patterns List Window"}, ! { 'type':'MenuItem', 'name':'automataSep1', 'label':'-' }, ! { 'type':'MenuItem', ! 'name':'menuAutomataDownloadLexiconAndPatterns', ! 'label':"Download Lexicon and Patterns"}, ! ] }, ! { 'type':'Menu', ! 'name':'menuFile', ! 'label':'&Scale', ! 'items': [ ! { 'type':'MenuItem', ! 'name':'menuScale1', ! 'command':'setScale', ! 'label':'1' }, ! { 'type':'MenuItem', ! 'name':'menuScale2', ! 'command':'setScale', ! 'label':'2' }, ! { 'type':'MenuItem', ! 'name':'menuScale3', ! 'command':'setScale', ! 'label':'3' }, ! { 'type':'MenuItem', ! 'name':'menuScale4', ! 'command':'setScale', ! 'label':'4' }, ! { 'type':'MenuItem', ! 'name':'menuScale5', ! 'command':'setScale', ! 'label':'5' }, ! { 'type':'MenuItem', ! 'name':'menuScale10', ! 'command':'setScale', ! 'label':'10' }, ! ] }, ! ] }, ! 'components': ! [ ! { 'type':'Button', ! 'name':'btnStart', ! 'position':(0, 0), ! 'label':'Start' }, ! { 'type':'Button', ! 'name':'btnStop', ! 'position':(100, 0), ! 'label':'Stop' }, ! { 'type':'Button', ! 'name':'btnStep', ! 'position':(200, 0), ! 'label':'Step' }, ! { 'type':'BitmapCanvas', ! 'name':'bufOff', ! 'position':(0, 30), ! 'size':(600, 400) }, ! ] ! } ! ] ! } ! } --- 1,162 ---- + {'application':{'type':'Application', + 'name':'Life', + 'backgrounds': [ + {'type':'Background', + 'name':'bgLife', + 'title':'Life PythonCard Application', + 'size':(310, 300), + 'statusBar':1, + 'style':['resizeable'], ! 'menubar': {'type':'MenuBar', ! 'menus': [ ! {'type':'Menu', ! 'name':'menuFile', ! 'label':'&File', ! 'items': [ ! {'type':'MenuItem', ! 'name':'menuFileOpen', ! 'label':'&Open...\tCtrl+O', ! }, ! {'type':'MenuItem', ! 'name':'menuFileSaveAs', ! 'label':'Save &As...', ! 'enabled':0, ! }, ! {'type':'MenuItem', ! 'name':'fileSep1', ! 'label':'-', ! }, ! {'type':'MenuItem', ! 'name':'menuFileExit', ! 'label':'E&xit\tAlt+X', ! 'command':'exit', ! }, ! ] ! }, ! {'type':'Menu', ! 'name':'menuEdit', ! 'label':'&Edit', ! 'items': [ ! {'type':'MenuItem', ! 'name':'menuEditCopy', ! 'label':'&Copy\tCtrl+C', ! }, ! {'type':'MenuItem', ! 'name':'menuEditPaste', ! 'label':'&Paste\tCtrl+V', ! }, ! {'type':'MenuItem', ! 'name':'editSep1', ! 'label':'-', ! }, ! {'type':'MenuItem', ! 'name':'menuEditClear', ! 'label':'&Clear', ! 'command':'editClear', ! }, ! ] ! }, ! {'type':'Menu', ! 'name':'menuAutomata', ! 'label':'&Automata', ! 'items': [ ! {'type':'MenuItem', ! 'name':'menuAutomataLife', ! 'label':"Conway's Life...", ! 'command':'doAutomata', ! }, ! {'type':'MenuItem', ! 'name':'menuAutomataLexicon', ! 'label':'Lexicon Window', ! }, ! {'type':'MenuItem', ! 'name':'menuAutomataPatternsList', ! 'label':'Patterns List Window', ! }, ! {'type':'MenuItem', ! 'name':'automataSep1', ! 'label':'-', ! }, ! {'type':'MenuItem', ! 'name':'menuAutomataDownloadLexiconAndPatterns', ! 'label':'Download Lexicon and Patterns', ! }, ! ] ! }, ! {'type':'Menu', ! 'name':'menuFile', ! 'label':'&Scale', ! 'items': [ ! {'type':'MenuItem', ! 'name':'menuScale1', ! 'label':'1', ! 'command':'setScale', ! 'checkable':1, ! }, ! {'type':'MenuItem', ! 'name':'menuScale2', ! 'label':'2', ! 'command':'setScale', ! 'checkable':1, ! }, ! {'type':'MenuItem', ! 'name':'menuScale3', ! 'label':'3', ! 'command':'setScale', ! 'checkable':1, ! }, ! {'type':'MenuItem', ! 'name':'menuScale4', ! 'label':'4', ! 'command':'setScale', ! 'checkable':1, ! }, ! {'type':'MenuItem', ! 'name':'menuScale5', ! 'label':'5', ! 'command':'setScale', ! 'checkable':1, ! 'checked':1, ! }, ! {'type':'MenuItem', ! 'name':'menuScale10', ! 'label':'10', ! 'command':'setScale', ! 'checkable':1, ! }, ! ] ! }, ! ] ! }, ! 'components': [ ! {'type':'Button', ! 'name':'btnStart', ! 'position':(0, 0), ! 'label':'Start', ! }, ! {'type':'Button', ! 'name':'btnStop', ! 'position':(100, 0), ! 'label':'Stop', }, ! {'type':'Button', ! 'name':'btnStep', ! 'position':(200, 0), ! 'label':'Step', ! }, + {'type':'BitmapCanvas', + 'name':'bufOff', + 'position':(0, 30), + 'size':(600, 400), + 'backgroundColor':(255, 255, 255), + }, + + ] # end components + } # end background + ] # end backgrounds + } } |
From: Kevin A. <ka...@us...> - 2006-01-24 19:59:47
|
Update of /cvsroot/pythoncard/PythonCard/samples/life In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20401 Modified Files: util.py Log Message: added try/except to catch missing descriptions Index: util.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/samples/life/util.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** util.py 13 Dec 2005 11:13:23 -0000 1.11 --- util.py 24 Jan 2006 19:59:35 -0000 1.12 *************** *** 141,146 **** description += "\n" + s else: ! s, desc = s.split(' ') ! description += "\n" + desc # beginning of a cell block if pattern == {}: --- 141,150 ---- description += "\n" + s else: ! try: ! s, desc = s.split(' ') ! description += "\n" + desc ! except ValueError: ! # no description ! pass # beginning of a cell block if pattern == {}: |
From: Kevin A. <ka...@us...> - 2006-01-14 18:02:34
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23620 Removed Files: multiresourceEditor.py multiresourceEditor.rsrc.py Log Message: removed old multi files which were added as layoutEditor --- multiresourceEditor.py DELETED --- --- multiresourceEditor.rsrc.py DELETED --- |
From: Kevin A. <ka...@us...> - 2006-01-14 17:59:00
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22226 Modified Files: readme.txt Removed Files: multireadme.txt Log Message: changed to a single readme.txt file --- multireadme.txt DELETED --- Index: readme.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/readme.txt,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** readme.txt 9 Aug 2005 13:52:20 -0000 1.12 --- readme.txt 14 Jan 2006 17:58:52 -0000 1.13 *************** *** 1,6 **** ! Last updated: 2005-08-09 This represents the beginnings of a GUI resource (layout) editor for PythonCard. You can view the attributes for all components and menus by selecting the Resource... menu item in the View menu prior to doing a Save or Save As... under the File menu to output a new file. --- 1,8 ---- ! Last updated: 2006-01-09 This represents the beginnings of a GUI resource (layout) editor for PythonCard. + The layoutEditor is an experimental version that is intended to replace the existing resourceEditor and allows various operations to be performed on multiple selected components (eg. move, align, distribute, etc.) + You can view the attributes for all components and menus by selecting the Resource... menu item in the View menu prior to doing a Save or Save As... under the File menu to output a new file. *************** *** 8,13 **** There are no constraints applied when the shift key is held down, but there is a grid for the widgets to "snap to". - You can only select one widget at a time. - Sizers and anchors are not supported. It is likely anchors will be supported before sizers. --- 10,13 ---- |
From: Alex T. <ale...@us...> - 2006-01-14 14:27:42
|
Update of /cvsroot/pythoncard/PythonCard/samples/sudoku In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11810 Modified Files: sudoku.py Log Message: Removed call to wx.SafeYield. Operations complete within 1-2 seconds, so not really necessary, and this avoids recursive calls due to two rapid clicks on same button. Index: sudoku.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/samples/sudoku/sudoku.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sudoku.py 2 Nov 2005 13:25:35 -0000 1.2 --- sudoku.py 14 Jan 2006 14:27:33 -0000 1.3 *************** *** 415,419 **** sqr.state = 'i' self.fillin(sqr, i,j) - wx.SafeYield(self) def soles(self): --- 415,418 ---- |
From: Alex T. <ale...@us...> - 2006-01-14 12:11:57
|
Update of /cvsroot/pythoncard/PythonCard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15479 Modified Files: helpful.py Log Message: Changed StringType to StringTypes, simplified import of types. Index: helpful.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/helpful.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** helpful.py 26 Dec 2005 19:08:03 -0000 1.4 --- helpful.py 14 Jan 2006 12:11:49 -0000 1.5 *************** *** 10,14 **** import wx import string, copy ! from types import * --- 10,14 ---- import wx import string, copy ! import types *************** *** 50,54 **** bx, by = self.components.Button.size for b in buttons: ! if type(b) == types.StringType: self.components.Button.label = b else: --- 50,54 ---- bx, by = self.components.Button.size for b in buttons: ! if isinstance(b, types.StringTypes): self.components.Button.label = b else: *************** *** 73,77 **** count = 0 for b in localbuttons: ! if type(b) == types.StringType: theName = b theToolTip = '' --- 73,77 ---- count = 0 for b in localbuttons: ! if isinstance(b, types.StringTypes): theName = b theToolTip = '' *************** *** 152,156 **** val = False toolTip = '' ! if type(b) == types.StringType: key = b else: --- 152,156 ---- val = False toolTip = '' ! if isinstance(b, types.StringTypes): key = b else: *************** *** 224,228 **** # wrapper to help with pop up menus - import types class PopUpMenu: --- 224,227 ---- *************** *** 238,242 **** # add the items for it in items: ! if type(it) == types.StringType: Id = wx.NewId() self.popup[it] = Id --- 237,241 ---- # add the items for it in items: ! if isinstance(it, types.StringTypes): Id = wx.NewId() self.popup[it] = Id *************** *** 250,254 **** aBg.Bind(wx.EVT_MENU, self.OnPopup, id=Id) for that in it: ! if type(that) == types.StringType: Id = wx.NewId() self.popup[that] = Id --- 249,253 ---- aBg.Bind(wx.EVT_MENU, self.OnPopup, id=Id) for that in it: ! if isinstance(that, types.StringTypes): Id = wx.NewId() self.popup[that] = Id |
From: Kevin A. <ka...@us...> - 2006-01-13 23:34:35
|
Update of /cvsroot/pythoncard/PythonCard/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16213/docs Modified Files: changelog.txt Log Message: maximized addition Index: changelog.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/changelog.txt,v retrieving revision 1.324 retrieving revision 1.325 diff -C2 -d -r1.324 -r1.325 *** changelog.txt 13 Jan 2006 23:17:36 -0000 1.324 --- changelog.txt 13 Jan 2006 23:34:26 -0000 1.325 *************** *** 9,13 **** Release 0.8.2 2006-01-?? ! added minimized attribute to Background created documentation.py module to hold code previously in widgets.py for automatically generating component and background docs --- 9,13 ---- Release 0.8.2 2006-01-?? ! added minimized and maximized attributes to Background class created documentation.py module to hold code previously in widgets.py for automatically generating component and background docs |
From: Kevin A. <ka...@us...> - 2006-01-13 23:33:46
|
Update of /cvsroot/pythoncard/PythonCard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15908 Modified Files: model.py Log Message: added maximized property to Background Index: model.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/model.py,v retrieving revision 1.196 retrieving revision 1.197 diff -C2 -d -r1.196 -r1.197 *** model.py 13 Jan 2006 23:17:35 -0000 1.196 --- model.py 13 Jan 2006 23:33:37 -0000 1.197 *************** *** 1235,1238 **** --- 1235,1239 ---- title = property(wx.Frame.GetTitle, wx.Frame.SetTitle) visible = property(wx.Frame.IsShown, wx.Frame.Show, doc="whether the background window is visible") + maximized = property(wx.Frame.IsMaximized, wx.Frame.Maximize, doc="whether the background window is maximized") minimized = property(wx.Frame.IsIconized, wx.Frame.Iconize, doc="whether the background window is minimized") |
From: Kevin A. <ka...@us...> - 2006-01-13 23:17:47
|
Update of /cvsroot/pythoncard/PythonCard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10296 Modified Files: model.py Log Message: added minimized attribute Index: model.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/model.py,v retrieving revision 1.195 retrieving revision 1.196 diff -C2 -d -r1.195 -r1.196 *** model.py 29 Dec 2005 20:37:16 -0000 1.195 --- model.py 13 Jan 2006 23:17:35 -0000 1.196 *************** *** 1235,1238 **** --- 1235,1239 ---- title = property(wx.Frame.GetTitle, wx.Frame.SetTitle) visible = property(wx.Frame.IsShown, wx.Frame.Show, doc="whether the background window is visible") + minimized = property(wx.Frame.IsIconized, wx.Frame.Iconize, doc="whether the background window is minimized") |
From: Kevin A. <ka...@us...> - 2006-01-13 23:17:44
|
Update of /cvsroot/pythoncard/PythonCard/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10296/docs Modified Files: changelog.txt Log Message: added minimized attribute Index: changelog.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/changelog.txt,v retrieving revision 1.323 retrieving revision 1.324 diff -C2 -d -r1.323 -r1.324 *** changelog.txt 13 Jan 2006 21:59:16 -0000 1.323 --- changelog.txt 13 Jan 2006 23:17:36 -0000 1.324 *************** *** 9,12 **** --- 9,13 ---- Release 0.8.2 2006-01-?? + added minimized attribute to Background created documentation.py module to hold code previously in widgets.py for automatically generating component and background docs |
From: Kevin A. <ka...@us...> - 2006-01-13 22:01:37
|
Update of /cvsroot/pythoncard/PythonCard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24120 Modified Files: install-pythoncard.py Log Message: added layoutEditor link Index: install-pythoncard.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/install-pythoncard.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** install-pythoncard.py 25 Dec 2005 14:53:26 -0000 1.8 --- install-pythoncard.py 13 Jan 2006 22:01:29 -0000 1.9 *************** *** 63,66 **** --- 63,72 ---- + path = os.path.join(dest_dir, "Layout Editor.lnk") + arguments = os.path.join(lib_dir, + "PythonCard\\tools\\resourceEditor\\layoutEditor.py") + create_shortcut(pythonw, "Layout Editor", path, arguments) + file_created(path) + path = os.path.join(dest_dir, "Resource Editor.lnk") arguments = os.path.join(lib_dir, |
From: Kevin A. <ka...@us...> - 2006-01-13 21:59:24
|
Update of /cvsroot/pythoncard/PythonCard/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23364 Modified Files: changelog.txt Log Message: added StringTypes and layoutEditor comments Index: changelog.txt =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/changelog.txt,v retrieving revision 1.322 retrieving revision 1.323 diff -C2 -d -r1.322 -r1.323 *** changelog.txt 29 Dec 2005 20:36:25 -0000 1.322 --- changelog.txt 13 Jan 2006 21:59:16 -0000 1.323 *************** *** 18,25 **** --- 18,27 ---- added work-in-progress version of multiresourceEditor (tools/resourceEditor/multirwesourceEditor) + renamed to layoutEditor support customizable window styles in backgroundInfo of resourceEditor added convenience wrappers for pop-up menus, multiple check-box dialogs, multiple button dialogs (helpful.py and samples/helpfulWrappers) added sample for sudoku solver/helper (samples/sudoku) + replaced StringType with StringTypes to handle Unicode better |
From: Kevin A. <ka...@us...> - 2006-01-13 07:29:07
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13650 Added Files: layoutEditor.py layoutEditor.rsrc.py Log Message: copied multiresourceEditor files to layoutEditor --- NEW FILE: layoutEditor.rsrc.py --- {'application':{'type':'Application', 'name':'ResEdit', 'backgrounds': [ {'type':'Background', 'name':'bgDrag', 'title':'Resource Editor', 'size':(316, 166), 'style':['resizeable'], 'menubar': {'type':'MenuBar', 'menus': [ {'type':'Menu', 'name':'menuFile', 'label':'&File', 'items': [ {'type':'MenuItem', 'name':'menuFileNew', 'label':'&New...\tCtrl+N', }, {'type':'MenuItem', 'name':'menuFileOpen', 'label':'&Open...\tCtrl+O', }, {'type':'MenuItem', 'name':'menuFileSave', 'label':'Save\tCtrl+S', }, {'type':'MenuItem', 'name':'menuFileSaveAs', 'label':'Save &As...', }, {'type':'MenuItem', 'name':'menuFileRevert', 'label':'Revert', }, {'type':'MenuItem', 'name':'fileSep1', 'label':'-', }, {'type':'MenuItem', 'name':'menuFileRun', 'label':'&Run\tCtrl+R', 'command':'fileRun', }, {'type':'MenuItem', 'name':'menuFileRunWithInterpreter', 'label':'Run with &interpreter\tCtrl+Shift+R', 'command':'fileRunWithInterpreter', }, {'type':'MenuItem', 'name':'menuFileRunOptions', 'label':'Run Options...', 'command':'fileRunOptions', }, {'type':'MenuItem', 'name':'menuFilePreviewDialog', 'label':'Preview Dialog', 'command':'filePreviewDialog', }, {'type':'MenuItem', 'name':'fileSep2', 'label':'-', }, {'type':'MenuItem', 'name':'menuFileExit', 'label':'E&xit\tAlt+X', 'command':'exit', }, ] }, {'type':'Menu', 'name':'menuEdit', 'label':'&Edit', 'items': [ {'type':'MenuItem', 'name':'menuEditCut', 'label':'Cu&t\tCtrl+X', }, {'type':'MenuItem', 'name':'menuEditCopy', 'label':'&Copy\tCtrl+C', }, {'type':'MenuItem', 'name':'menuEditPaste', 'label':'&Paste\tCtrl+V', }, {'type':'MenuItem', 'name':'editSep1', 'label':'-', }, {'type':'MenuItem', 'name':'menuComponentDuplicate', 'label':'&Duplicate\tCtrl+U', 'command':'componentDuplicate', }, {'type':'MenuItem', 'name':'menuComponentDelete', 'label':'Delete\tCtrl+D', 'command':'componentDelete', }, {'type':'MenuItem', 'name':'menuSelectAll', 'label':'Select All\tCtrl+A', 'command':'componentSelectAll', }, {'type':'MenuItem', 'name':'componentSep2', 'label':'-', }, {'type':'MenuItem', 'name':'menuEditBackgroundInfo', 'label':'Background Info...', 'command':'editBackgroundInfo', }, {'type':'MenuItem', 'name':'menuEditMenubar', 'label':'Menu Editor...', 'command':'editMenubar', }, {'type':'MenuItem', 'name':'menuEditStrings', 'label':'String Editor...', 'command':'editStrings', }, {'type':'MenuItem', 'name':'menuEditDialogInfo', 'label':'Dialog Info...', 'command':'editDialogInfo', }, ] }, {'type':'Menu', 'name':'menuComponent', 'label':'&Component', 'items': [] }, {'type':'Menu', 'name':'menuOptions', 'label':'&Options', 'items': [ {'type':'MenuItem', 'name':'menuOptionsGridSize', 'label':'Grid Size...', 'command':'optionGridSize', }, {'type':'MenuItem', 'name':'menuOptionsAlignToGrid', 'label':'Align Components to Grid\tCtrl+G', 'checkable':1, }, {'type':'MenuItem', 'name':'menuOptionsShowGridLines', 'label':'Show Grid Lines', 'checkable':1, 'checked':0, }, {'type':'MenuItem', 'name':'componentSep1', 'label':'-', }, {'type':'MenuItem', 'name':'menuComponentSendBack', 'label':'Send to Back\tCtrl+1', 'command':'componentSendBack', }, {'type':'MenuItem', 'name':'menuComponentMoveBack', 'label':'Move Backward\tCtrl+2', 'command':'componentMoveBack', }, {'type':'MenuItem', 'name':'menuComponentMoveForward', 'label':'Move Forward\tCtrl+3', 'command':'componentMoveForward', }, {'type':'MenuItem', 'name':'menuComponentBringFront', 'label':'Bring to Front\tCtrl+4', 'command':'componentBringFront', }, ] }, {'type':'Menu', 'name':'menuView', 'label':'&View', 'items': [ {'type':'MenuItem', 'name':'menuViewAttributes', 'label':'&Resource...', 'command':'displayAttributes', }, {'type':'MenuItem', 'name':'menuViewSep1', 'label':'-', }, {'type':'MenuItem', 'name':'menuViewPropertyEditor', 'label':'Property Editor\tCtrl+P', 'checkable':1, 'checked':1, }, ] }, {'type':'Menu', 'name':'menuHelp', 'label':'&Help', 'items': [ {'type':'MenuItem', 'name':'menuResourceEditorDocumentation', 'label':'&resourceEditor Documentation...\tF1', 'command':'showResourceEditorDocumentation', }, {'type':'MenuItem', 'name':'menuPythonCardDocumentation', 'label':'&PythonCard Documentation...', 'command':'showPythonCardDocumentation', }, {'type':'MenuItem', 'name':'helpSep1', 'label':'-', }, {'type':'MenuItem', 'name':'menuHelpAbout', 'label':'&About resourceEditor...', }, {'type':'MenuItem', 'name':'menuHelpAboutPythonCard', 'label':'About PythonCard...', 'command':'doHelpAboutPythonCard', }, ] }, ] }, 'components': [ ] # end components } # end background ] # end backgrounds } } --- NEW FILE: layoutEditor.py --- #!/usr/bin/python """ __version__ = "$Revision: 1.1 $" __date__ = "$Date: 2006/01/13 07:28:59 $" """ # TODO: Start using exceptions! import os, sys, string, copy import pprint import webbrowser import wx import time from PythonCard import about, clipboard, configuration, dialog, graphic, log from PythonCard import menu, model, registry, resource, util [...2229 lines suppressed...] event.skip() except: event.skip() def on_showPythonCardDocumentation_command(self, event): global pythoncard_url webbrowser.open(pythoncard_url) def on_showResourceEditorDocumentation_command(self, event): global resourceeditor_url webbrowser.open(resourceeditor_url) if __name__ == '__main__': # now force the property editor to be enabled #configuration('showPropertyEditor', 1) #configuration('showShell', 1) app = model.Application(ResourceEditor) app.MainLoop() |
From: Kevin A. <ka...@us...> - 2006-01-03 18:28:47
|
Update of /cvsroot/pythoncard/PythonCard/docs/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22840 Modified Files: learning_python.html walkthrough1.html Log Message: added PyPI Index: learning_python.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/learning_python.html,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** learning_python.html 26 Jul 2004 15:35:31 -0000 1.12 --- learning_python.html 3 Jan 2006 18:28:32 -0000 1.13 *************** *** 36,40 **** <li><a href="http://rgruet.free.fr/#QuickRef">Quick Reference</a> - all essential Python syntax</li> ! <li><a href="http://www.python.org/cgi-bin/faqw.py">FAQ Wizard</a> </li> </ul> <h2>Python Community</h2> --- 36,40 ---- <li><a href="http://rgruet.free.fr/#QuickRef">Quick Reference</a> - all essential Python syntax</li> ! <li><a href="http://www.python.org/doc/faq/">Python FAQ list</a> </li> </ul> <h2>Python Community</h2> *************** *** 58,63 **** <li><a href="http://aspn.activestate.com/ASPN/Cookbook/Python">Python Cookbook</a> - useful recipes </li> ! <li><a href="http://www.vex.net/parnassus/">Vaults of Parnassus</a> - central repository for 3rd party Python software</li> <li><a href="http://www.faqts.com/knowledge-base/index.phtml/fid/199/">Python.faqts</a> - community-maintained knowledge base</li> --- 58,64 ---- <li><a href="http://aspn.activestate.com/ASPN/Cookbook/Python">Python Cookbook</a> - useful recipes </li> ! <li><a href="http://cheeseshop.python.org/pypi">Python Package Index (PyPI)</a> - central repository for 3rd party Python software</li> + <li><a href="http://www.vex.net/parnassus/">Vaults of Parnassus</a></li> <li><a href="http://www.faqts.com/knowledge-base/index.phtml/fid/199/">Python.faqts</a> - community-maintained knowledge base</li> Index: walkthrough1.html =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough1.html,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** walkthrough1.html 28 Dec 2005 04:05:22 -0000 1.22 --- walkthrough1.html 3 Jan 2006 18:28:32 -0000 1.23 *************** *** 249,253 **** development environment to provide helpful supporting windows that tell us what's going on in our application. We'll also see how to start and build our ! own application, using the PythonCard's built-in layout editor, the Resource Editor.</p> <p>We'll be producing more of these walk-through documents on other aspects --- 249,253 ---- development environment to provide helpful supporting windows that tell us what's going on in our application. We'll also see how to start and build our ! own application, using the built-in PythonCard layout editor, the Resource Editor.</p> <p>We'll be producing more of these walk-through documents on other aspects |