SourceForge logo
SourceForge logo
Menu

pythoncard-cvs — Mailing list for CVS commit messages

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

Showing results of 993

<< < 1 2 3 4 5 6 .. 40 > >> (Page 4 of 40)
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 file’s 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]
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')])
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>
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 &quot;/home/fred&quot; 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 &quot;/home/fred&quot; 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)
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)
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 == {}:
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 ---
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
 
 
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()
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 

Showing results of 993

<< < 1 2 3 4 5 6 .. 40 > >> (Page 4 of 40)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /