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 .. 4 5 6 7 8 .. 40 > >> (Page 6 of 40)
From: Kevin A. <ka...@us...> - 2005年12月25日 14:01:53
Update of /cvsroot/pythoncard/PythonCard/docs/html/icon
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28160
Added Files:
	PythonPowered.gif 
Log Message:
for docs
--- NEW FILE: PythonPowered.gif ---
(This appears to be a binary file; contents omitted.)
From: Kevin A. <ka...@us...> - 2005年12月25日 13:53:23
Update of /cvsroot/pythoncard/PythonCard/docs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26985/docs
Modified Files:
	changelog.txt 
Log Message:
added getTextExtent and getFullTextExtent methods SF Bug #1184884
Index: changelog.txt
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/changelog.txt,v
retrieving revision 1.319
retrieving revision 1.320
diff -C2 -d -r1.319 -r1.320
*** changelog.txt	30 Mar 2005 18:07:25 -0000	1.319
--- changelog.txt	25 Dec 2005 13:53:15 -0000	1.320
***************
*** 8,12 ****
 
 
! Release 0.8.2 2005-05-??
 revised internationalResourceName to support platform-specific resources
 added UK <-> US to conversions.py and simplified SOAP.py module check
--- 8,13 ----
 
 
! Release 0.8.2 2006-01-??
! added getTextExtent and getFullTextExtent methods to BitmapCanvas
 revised internationalResourceName to support platform-specific resources
 added UK <-> US to conversions.py and simplified SOAP.py module check
From: Kevin A. <ka...@us...> - 2005年12月25日 13:53:23
Update of /cvsroot/pythoncard/PythonCard/components
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26985/components
Modified Files:
	bitmapcanvas.py 
Log Message:
added getTextExtent and getFullTextExtent methods SF Bug #1184884
Index: bitmapcanvas.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/components/bitmapcanvas.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** bitmapcanvas.py	28 Mar 2005 05:46:59 -0000	1.46
--- bitmapcanvas.py	25 Dec 2005 13:53:15 -0000	1.47
***************
*** 392,395 ****
--- 392,401 ----
 return self._bufImage.GetPixelPoint(xy)
 
+ def getTextExtent(self, aString):
+ return self._bufImage.GetTextExtent(aString)
+ 
+ def getFullTextExtent(self, aString):
+ return self._bufImage.GetFullTextExtent(aString)
+ 
 def refresh(self, enableAutoRefresh=False):
 if enableAutoRefresh:
From: Kevin A. <ka...@us...> - 2005年12月25日 13:45:03
Update of /cvsroot/pythoncard/PythonCard/components
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26060
Modified Files:
	list.py 
Log Message:
fixed isSelected SF bug #1202846
Index: list.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/components/list.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** list.py	4 Sep 2004 23:13:39 -0000	1.28
--- list.py	25 Dec 2005 13:44:50 -0000	1.29
***************
*** 122,131 ****
 
 # KEA was getSelected
! def isSelected( self, aPosition ) :
 """Determines whether an item is selected.
 aPosition is the zero-based item index
! Returns 1 if the given item is selected, 0 otherwise.
 """
! return self.Selected( )
 
 def setString( self, n, aString ) :
--- 122,131 ----
 
 # KEA was getSelected
! def isSelected(self, aPosition):
 """Determines whether an item is selected.
 aPosition is the zero-based item index
! Returns True if the given item is selected, False otherwise.
 """
! return self.IsSelected(aPosition)
 
 def setString( self, n, aString ) :
From: Kevin A. <ka...@us...> - 2005年12月25日 12:56:31
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19091
Modified Files:
	walkthrough3.html 
Log Message:
changed code blocks to use <pre>
Index: walkthrough3.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough3.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** walkthrough3.html	18 Sep 2004 16:55:59 -0000	1.8
--- walkthrough3.html	25 Dec 2005 12:56:23 -0000	1.9
***************
*** 49,53 ****
 <h2>model.Background</h2>
 <p>This is the standard class definition for a PythonCard app:</p>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;class Minimal(model.Background):</p>
 <p>One of the most important concepts when dealing with child windows in
 PythonCard is the background. The background is unique to PythonCard and it 
--- 49,55 ----
 <h2>model.Background</h2>
 <p>This is the standard class definition for a PythonCard app:</p>
! <pre>
! class Minimal(model.Background):
! </pre>
 <p>One of the most important concepts when dealing with child windows in
 PythonCard is the background. The background is unique to PythonCard and it 
***************
*** 110,115 ****
 current background.</p>
 <p>In addition to the standard imports for Counter, we'll import minimal:</p>
! <p class="code">from PythonCard import model<br />
! import minimal</p>
 <p>Next we'll add an event handler to be executed when the Counter application
 is started. This handler acts something like autoexec.bat on a PC or .login
--- 112,119 ----
 current background.</p>
 <p>In addition to the standard imports for Counter, we'll import minimal:</p>
! <pre>
! from PythonCard import model
! import minimal
! </pre>
 <p>Next we'll add an event handler to be executed when the Counter application
 is started. This handler acts something like autoexec.bat on a PC or .login
***************
*** 119,126 ****
 applications.) Here is the class declaration of our Counter application with 
 on_initialize added:</p>
! <p class="code">class Counter(model.Background):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;def on_initialize(self, event):</p>
 <p>and here is the code that we will add to the on_initialize method:</p>
! <p class="code"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.minimalWindow = model.childWindow(self, minimal.Minimal)</p>
 <p>We create a minimal window object uisng the <span class="code">childWindow
 </span> function and give it the name minimalWindow by passing two parameters
--- 123,134 ----
 applications.) Here is the class declaration of our Counter application with 
 on_initialize added:</p>
! <pre>
! class Counter(model.Background):
! def on_initialize(self, event):
! </pre>
 <p>and here is the code that we will add to the on_initialize method:</p>
! <pre>
! self.minimalWindow = model.childWindow(self, minimal.Minimal)
! </pre>
 <p>We create a minimal window object uisng the <span class="code">childWindow
 </span> function and give it the name minimalWindow by passing two parameters
***************
*** 132,139 ****
 <p>Continuing in the on_initialize handler, we make calls to set the 
 position and visibility of the new window:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# override resource position<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.minimalWindow.position = (200, 5)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.minimalWindow.visible = True</p>
 <p>We now have a window that is an attribute of our main background, just like
 any of the menus or buttons that are already a part of Counter.</p>
--- 140,148 ----
 <p>Continuing in the on_initialize handler, we make calls to set the 
 position and visibility of the new window:</p>
! <pre>
! # override resource position
! self.minimalWindow.position = (200, 5)
! self.minimalWindow.visible = True
! </pre>
 <p>We now have a window that is an attribute of our main background, just like
 any of the menus or buttons that are already a part of Counter.</p>
***************
*** 143,158 ****
 window minimalWindow, we simply add one more call to update the control in 
 that window as well (the new lines are in bold type):</p>
! <p class="code"> 
! &nbsp;&nbsp;&nbsp;&nbsp;def on_incrBtn_mouseClick(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startValue = int(self.components.field1.text)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endValue = startValue + 1<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text = str(endValue)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>self.minimalWindow.components.field1.text = str(endValue)</strong><br />
! <br />
! &nbsp;&nbsp;&nbsp;&nbsp;def on_decrBtn_mouseClick(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startValue = int(self.components.field1.text)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endValue = startValue - 1<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text = str(endValue)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>self.minimalWindow.components.field1.text = str(endValue)</strong></p>
 <p>Notice that we reference components in the child window by a collection of
 objects starting with the main application (self) and then pointing first to 
--- 152,168 ----
 window minimalWindow, we simply add one more call to update the control in 
 that window as well (the new lines are in bold type):</p>
! <pre> 
! def on_incrBtn_mouseClick(self, event):
! startValue = int(self.components.field1.text)
! endValue = startValue + 1
! self.components.field1.text = str(endValue)
! <strong>self.minimalWindow.components.field1.text = str(endValue)</strong>
! 
! def on_decrBtn_mouseClick(self, event):
! startValue = int(self.components.field1.text)
! endValue = startValue - 1
! self.components.field1.text = str(endValue)
! <strong>self.minimalWindow.components.field1.text = str(endValue)</strong>
! </pre>
 <p>Notice that we reference components in the child window by a collection of
 objects starting with the main application (self) and then pointing first to 
***************
*** 174,183 ****
 added to the minimal application above. Add the following code to 
 minimal.py</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;def on_initialize(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.parent = self.getParent()<br />
! <br />
! &nbsp;&nbsp;&nbsp;&nbsp;def on_btnReset_mouseClick(self, event):
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.parent.components.field1.text = &quot;0&quot;</p>
 <p>When our child window it initialized, it calls getParent() to get a 
 reference to its parent window, and then stores that reference. We place the 
--- 184,194 ----
 added to the minimal application above. Add the following code to 
 minimal.py</p>
! <pre>
! def on_initialize(self, event):
! self.parent = self.getParent()
! 
! def on_btnReset_mouseClick(self, event):
! self.parent.components.field1.text = "0"
! </pre>
 <p>When our child window it initialized, it calls getParent() to get a 
 reference to its parent window, and then stores that reference. We place the 
***************
*** 208,221 ****
 function that sets the counter's field1 to an arbitrary value just to confirm
 the connection between the two windows visibly:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;def doExit(self):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.parent.components.field1.text = &quot;99&quot;<br />
! <br />
! &nbsp;&nbsp;&nbsp;&nbsp;def on_close(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.doExit()<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.visible = False<br />
! <br />
! &nbsp;&nbsp;&nbsp;&nbsp;def on_menuFileExit_select(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.close() </p>
 <p>As the above code shows, the File-&gt;Exit menu item just calls the 
 close() to close the window. That is the same as clicking the 
--- 219,233 ----
 function that sets the counter's field1 to an arbitrary value just to confirm
 the connection between the two windows visibly:</p>
! <pre>
! def doExit(self):
! self.parent.components.field1.text = "99"
! 
! def on_close(self, event):
! self.doExit()
! self.visible = False
! 
! def on_menuFileExit_select(self, event):
! self.close()
! </pre>
 <p>As the above code shows, the File-&gt;Exit menu item just calls the 
 close() to close the window. That is the same as clicking the 
***************
*** 223,227 ****
 is called. We placed the work to be done when the document is closing in the 
 doExit method. In this case it just sets the counter field in the parent to 
! &quot;99&quot;.</p>
 <p>In addition, in doExit() you could modify some properties of the parent
 window to keep track of the state of your child window. For example, assuming
--- 235,239 ----
 is called. We placed the work to be done when the document is closing in the 
 doExit method. In this case it just sets the counter field in the parent to 
! "99".</p>
 <p>In addition, in doExit() you could modify some properties of the parent
 window to keep track of the state of your child window. For example, assuming
***************
*** 229,234 ****
 could use doExit() to check or uncheck the 'View Minimal Window' menu item on
 the parent. The code would look something like this:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;self.parent.menuBar.setChecked('menuViewMinimalWindow', False)</p>
 <?php include "footer.php" ?>
 <p>$Revision$ : $Author$ : Last update $Date$</p>
--- 241,247 ----
 could use doExit() to check or uncheck the 'View Minimal Window' menu item on
 the parent. The code would look something like this:</p>
! <pre>
! self.parent.menuBar.setChecked('menuViewMinimalWindow', False)
! </pre>
 <?php include "footer.php" ?>
 <p>$Revision$ : $Author$ : Last update $Date$</p>
From: Kevin A. <ka...@us...> - 2005年12月25日 12:33:42
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13474
Modified Files:
	walkthrough1.html 
Log Message:
changed code blocks to use <pre>
Index: walkthrough1.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough1.html,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** walkthrough1.html	21 Aug 2005 18:47:59 -0000	1.18
--- walkthrough1.html	25 Dec 2005 12:33:32 -0000	1.19
***************
*** 68,72 ****
 <li>In the &quot;Application used to perform action:&quot; field you need 
 to specify the path to the Python executable as well as the location of the 
! codeEditor.py file. On a Python 2.3.4 installation using the default 
 installer this will look like:</li>
 </ol>
--- 68,72 ----
 <li>In the &quot;Application used to perform action:&quot; field you need 
 to specify the path to the Python executable as well as the location of the 
! codeEditor.py file. On a Python 2.3.5 installation using the default 
 installer this will look like:</li>
 </ol>
***************
*** 180,185 ****
 script is, as you'd expect, brief and to the point. Here's the important 
 part to focus on:</p>
! <p class="code">&nbsp;&nbsp;&nbsp;def on_menuFileAbout_select(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass</p>
 <p>Even without understanding Python you can probably tell what this code 
 snippet does. (That's one of the beauties of Python. It is eminently 
--- 180,187 ----
 script is, as you'd expect, brief and to the point. Here's the important 
 part to focus on:</p>
! <pre>
! def on_menuFileAbout_select(self, event):
! pass
! </pre>
 <p>Even without understanding Python you can probably tell what this code 
 snippet does. (That's one of the beauties of Python. It is eminently 
***************
*** 196,201 ****
 <p>First, select the word &quot;pass&quot;. Type in its place the following 
 line:</p>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
! result = dialog.alertDialog(self, 'It works!', 'Showing Off')</p>
 <p>Again, this new line of Python code is readable even if you're not a 
 Python guru yet. Now when the user selects the Exit menu, rather than doing 
--- 198,204 ----
 <p>First, select the word &quot;pass&quot;. Type in its place the following 
 line:</p>
! <pre>
! result = dialog.alertDialog(self, 'It works!', 'Showing Off')
! </pre>
 <p>Again, this new line of Python code is readable even if you're not a 
 Python guru yet. Now when the user selects the Exit menu, rather than doing 
***************
*** 205,211 ****
 with dialogs. Near the top of the file above the comments that explain what's
 going on is a line that says:</p>
! <p class="code">from PythonCard import model</p>
 <p>Change that so it says:</p>
! <p class="code">from PythonCard import dialog, model</p>
 <p>Save the code.</p>
 <p><strong>IT IS IMPORTANT</strong>, if you choose to use a Python editor 
--- 208,218 ----
 with dialogs. Near the top of the file above the comments that explain what's
 going on is a line that says:</p>
! <pre>
! from PythonCard import model
! </pre>
 <p>Change that so it says:</p>
! <pre>
! from PythonCard import dialog, model
! </pre>
 <p>Save the code.</p>
 <p><strong>IT IS IMPORTANT</strong>, if you choose to use a Python editor 
***************
*** 223,227 ****
 open for editing. Replace the string 'It works!' in the line we edited 
 earlier so that the line reads:</p>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result = dialog.alertDialog(self, self.components.field1.text, 'Showing Off')</p>
 <p>This line is almost identical to the one we just had here, but this one
 takes its text from the text in a component called &quot;field1.&quot; That 
--- 230,236 ----
 open for editing. Replace the string 'It works!' in the line we edited 
 earlier so that the line reads:</p>
! <pre>
! result = dialog.alertDialog(self, self.components.field1.text, 'Showing Off')
! </pre>
 <p>This line is almost identical to the one we just had here, but this one
 takes its text from the text in a component called &quot;field1.&quot; That 
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16083
Modified Files:
	resource_files.html runtime_tools.html 
Log Message:
minor names changes plus date and version updated
Index: resource_files.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/resource_files.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** resource_files.html	14 Aug 2004 21:51:40 -0000	1.3
--- resource_files.html	25 Dec 2005 12:13:46 -0000	1.4
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</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: 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
***************
*** 63,68 ****
 
 <p>The organization of the resource file is defined by the spec classes in 
! pom.py spec.py, widget.py, and each component module. When a
! resource is read in (see res.py) it is validated against the specs, default
 arguments are initialized and any undefined component types in the resource
 will cause a runtime error. The resource dictionary is converted to an
--- 63,68 ----
 
 <p>The organization of the resource file is defined by the spec classes in 
! component.py, spec.py, widget.py, and each component module. When a
! resource is read in (see resource.py) it is validated against the specs, default
 arguments are initialized and any undefined component types in the resource
 will cause a runtime error. The resource dictionary is converted to an
***************
*** 73,77 ****
 <p>The noresource sample shows an example of a PythonCard application that 
 does not have a resource file. The noresource sample also shows an 
! example of dynamic component creation when the app starts up.</p>
 
 <hr>
| <a href="general_concepts_and_limitations.html">General Concepts and Limitations</a> 
| <a href="components.html">Components</a> 
| <a href="dialogs.html">Dialogs</a> 
| <a href="events_and_handlers.html">Events and Handlers</a> 
| <a href="menus.html">Menus</a> 
| <a href="resource_files.html">Resource Files</a> 
| <a href="runtime_tools.html">Runtime Tools</a> 
<hr>
 <?php include "../footer.php" ?>
--- 73,77 ----
 <p>The noresource sample shows an example of a PythonCard application that 
 does not have a resource file. The noresource sample also shows an 
! example of dynamic component creation when the application starts up.</p>
 
 <hr>
| <a href="general_concepts_and_limitations.html">General Concepts and Limitations</a> 
| <a href="components.html">Components</a> 
| <a href="dialogs.html">Dialogs</a> 
| <a href="events_and_handlers.html">Events and Handlers</a> 
| <a href="menus.html">Menus</a> 
| <a href="resource_files.html">Resource Files</a> 
| <a href="runtime_tools.html">Runtime Tools</a> 
<hr>
 <?php include "../footer.php" ?>
Index: runtime_tools.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/runtime_tools.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** runtime_tools.html	14 Aug 2004 21:05:15 -0000	1.2
--- runtime_tools.html	25 Dec 2005 12:13:46 -0000	1.3
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</p>
 
 <p>PythonCard supports the following runtime tools (command-line switch in
--- 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
***************
*** 70,74 ****
 
 <pre>
! shell.autoCompleteIncludeMagic = True
shell.autoCompleteIncludeSingle = False
shell.autoCompleteIncludeDouble = False
shell.autoCompleteWxMethods = False
import os
import sys
# workaround for absolute pathnames
# in sys.path (see model.py)
if sys.path[0] not in ('', '.'):
 sys.path.insert(0, '')
from wxPython import wx
from PythonCard import dialog, util
bg = pcapp.getCurrentBackground()
self = bg
comp = bg.components
</pre>
 
 <p>These commands are in a pycrustrc.py file in the framework directory. You can 
--- 70,91 ----
 
 <pre>
! shell.autoCompleteIncludeMagic = True
! shell.autoCompleteIncludeSingle = False
! shell.autoCompleteIncludeDouble = False
! shell.autoCompleteWxMethods = False
! 
! import os
! import sys
! # workaround for absolute pathnames
! # in sys.path (see model.py)
! if sys.path[0] not in ('', '.'):
! sys.path.insert(0, '')
! 
! import wx
! from PythonCard import dialog, util
! bg = pcapp.getCurrentBackground()
! self = bg
! comp = bg.components
! </pre>
 
 <p>These commands are in a pycrustrc.py file in the framework directory. You can 
From: Kevin A. <ka...@us...> - 2005年12月25日 08:09:58
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17891
Modified Files:
	menus.html 
Log Message:
no changes except date and version, this should be expanded sometime
Index: menus.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/menus.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** menus.html	14 Aug 2004 21:05:15 -0000	1.2
--- menus.html	25 Dec 2005 08:09:48 -0000	1.3
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</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: 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
From: Kevin A. <ka...@us...> - 2005年12月25日 08:02:57
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16215
Modified Files:
	dialogs.html 
Log Message:
added newer dialogs
Index: dialogs.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/dialogs.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** dialogs.html	14 Aug 2004 21:05:15 -0000	1.2
--- dialogs.html	25 Dec 2005 08:02:46 -0000	1.3
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</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: 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
***************
*** 22,36 ****
 
 <pre>
! alertDialog (variation of MessageDialog)
! colorDialog (wxColourDialog)
! directoryDialog (wxDirDialog)
! fileDialog (wxFileDialog)
 findDialog
! fontDialog (wxFontDialog)
! messageDialog (wxMessageDialog)
! multipleChoiceDialog (wxMultipleChoiceDialog)
! scrolledMessageDialog (wxScrolledMessageDialog)
! singleChoiceDialog (wxSingleChoiceDialog)
! textEntryDialog (wxTextEntryDialog)
 </pre>
 
--- 22,40 ----
 
 <pre>
! alertDialog (variation of wx.MessageDialog)
! colorDialog (wx.ColourDialog)
! directoryDialog (wx.DirDialog)
! fileDialog (wx.FileDialog)
! openFileDialog
! saveFileDialog
 findDialog
! fontDialog (wx.FontDialog)
! messageDialog (wx.MessageDialog)
! multipleChoiceDialog (wx.lib.dialogs.MultipleChoiceDialog)
! scrolledMessageDialog (wx.lib.dialogs.ScrolledMessageDialog)
! singleChoiceDialog (wx.SingleChoiceDialog)
! textEntryDialog (wx.TextEntryDialog)
! multilineTextEntryDialog
! passwordTextEntryDialog
 </pre>
 
From: Kevin A. <ka...@us...> - 2005年12月25日 07:52:36
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14477
Modified Files:
	components.html 
Log Message:
added additional components
Index: components.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/components.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** components.html	14 Aug 2004 21:05:15 -0000	1.2
--- components.html	25 Dec 2005 07:52:27 -0000	1.3
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</p>
 
 <p>
--- 12,16 ----
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: December 24, 2005 for release 0.8.1</p>
 
 <p>
***************
*** 22,26 ****
 
 <p>The following component types are currently supported. The are defined in
! the PythonCardPrototype components directory. The wxPython control they are
 based on is in parenthesis ():</p>
 
--- 22,26 ----
 
 <p>The following component types are currently supported. The are defined in
! the PythonCard components directory. The wxPython control they are
 based on is in parenthesis ():</p>
 
***************
*** 28,51 ****
 <a href="components/BitmapCanvas.html">BitmapCanvas</a>
 Provides a buffered bitmap. There is no direct equivelant in wxPython.
! <a href="components/Button.html">Button</a> (wxButton)
! <a href="components/Calendar.html">Calendar</a> (wxCalendar)
! <a href="components/CheckBox.html">CheckBox</a> (wxCheckBox)
! <a href="components/Choice.html">Choice</a> (wxChoice)
! CodeEditor (wxStyledTextCtrl)
 <a href="components/ComboBox.html">ComboBox</a> (wxComboBox)
! <a href="components/Gauge.html">Gauge</a> (wxGauge)
! Grid (wxGrid)
 <a href="components/HtmlWindow.html">HtmlWindow</a> (wxHtmlWindow)
! IEHtmlWindow (wxIEHtmlWin - Windows-only)
 <a href="components/Image.html">Image</a> (wxStaticBitmap)
! <a href="components/ImageButton.html">ImageButton</a> (wxBitmapButton)
! <a href="components/List.html">List</a> (wxListBox)
! MultiColumnList (wxListCtrl)
 <a href="components/PasswordField.html">PasswordField</a> (wxTextCtrl)
! <a href="components/RadioGroup.html">RadioGroup</a> (wxRadioBox)
! <a href="components/Slider.html">Slider</a> (wxSlider)
! <a href="components/Spinner.html">Spinner</a> (wxSpinner)
! <a href="components/StaticBox.html">StaticBox</a> (wxStaticBox)
! <a href="components/StaticLine.html">StaticLine</a> (wxStaticLine)
! <a href="components/StaticText.html">StaticText</a> (wxStaticText)
! <a href="components/TextArea.html">TextArea</a> (wxTextCtrl)
! <a href="components/TextField.html">TextField</a> (wxTextCtrl)
! Tree (wxTreeCtrl)
</pre>
 
 <p>The following events are automatically bound and available for each component:</p>
--- 28,53 ----
 <a href="components/BitmapCanvas.html">BitmapCanvas</a>
 Provides a buffered bitmap. There is no direct equivelant in wxPython.
! <a href="components/Button.html">Button</a> (wx.Button)
! <a href="components/Calendar.html">Calendar</a> (wx.Calendar)
! <a href="components/CheckBox.html">CheckBox</a> (wx.CheckBox)
! <a href="components/Choice.html">Choice</a> (wx.Choice)
! CodeEditor (wx.stc.StyledTextCtrl)
 <a href="components/ComboBox.html">ComboBox</a> (wx.ComboBox)
! <a href="components/Gauge.html">Gauge</a> (wx.Gauge)
! Grid (wx.Grid)
 <a href="components/HtmlWindow.html">HtmlWindow</a> (wx.HtmlWindow)
! IEHtmlWindow (wx.lib.iewin.IEHtmlWindow - Windows-only)
 <a href="components/Image.html">Image</a> (wx.StaticBitmap)
! <a href="components/ImageButton.html">ImageButton</a> (wx.BitmapButton)
! <a href="components/List.html">List</a> (wx.ListBox)
! MultiColumnList (wx.ListCtrl)
! Notebook (wx.Notebook)
 <a href="components/PasswordField.html">PasswordField</a> (wx.TextCtrl)
! <a href="components/RadioGroup.html">RadioGroup</a> (wx.RadioBox)
! <a href="components/Slider.html">Slider</a> (wx.Slider)
! <a href="components/Spinner.html">Spinner</a> (wx.Spinner)
! <a href="components/StaticBox.html">StaticBox</a> (wx.StaticBox)
! <a href="components/StaticLine.html">StaticLine</a> (wx.StaticLine)
! <a href="components/StaticText.html">StaticText</a> (wx.StaticText)
! <a href="components/TextArea.html">TextArea</a> (wx.TextCtrl)
! <a href="components/TextField.html">TextField</a> (wx.TextCtrl)
! ToggleButton (wx.ToggleButton)
! Tree (wx.TreeCtrl)
</pre>
 
 <p>The following events are automatically bound and available for each component:</p>
***************
*** 115,123 ****
 
 <pre>
! Bitmap (wxBitmap) - defined in graphic.py
 supported formats:
! BMP, GIF, JPG/JPEG, PCX, PNG, PNM, TIF/TIFF, XBM, and XPM
! also supports translation to/from Python Imaging Library (PIL) format
! Font (wxFont) - defined in font.py
 </pre>
 
--- 117,126 ----
 
 <pre>
! Bitmap (wx.Bitmap) - defined in graphic.py
 supported formats:
! BMP, GIF, JPEG, PCX, PICT, PNG, PNM, TIFF, XBM, and XPM
! also supports translation to/from Python Imaging Library (PIL) format, 
! and NumPy arrays to bitmap.
! Font (wx.Font) - defined in font.py
 </pre>
 
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14325
Modified Files:
	general_concepts_and_limitations.html 
Log Message:
document seems up-to-date, so just changed date/version info
Index: general_concepts_and_limitations.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/general_concepts_and_limitations.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** general_concepts_and_limitations.html	14 Aug 2004 21:51:40 -0000	1.4
--- general_concepts_and_limitations.html	25 Dec 2005 03:23:55 -0000	1.5
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</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: 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>
From: Kevin A. <ka...@us...> - 2005年12月25日 01:22:34
Update of /cvsroot/pythoncard/PythonCard/docs/html/framework
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32478
Modified Files:
	events_and_handlers.html 
Log Message:
updated for 0.8.1
added background events and changed openBackground to initialize
Index: events_and_handlers.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/framework/events_and_handlers.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** events_and_handlers.html	14 Aug 2004 21:05:15 -0000	1.2
--- events_and_handlers.html	25 Dec 2005 01:22:22 -0000	1.3
***************
*** 12,16 ****
 <?php include "../sidebar.php" ?>
 <div id="content">
! <p>Updated: April 10, 2004 for release 0.7.3</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: December 24, 2005 for release 0.8.1</p>
 
 <p>I'll cover the main points from a user point of view.</p>
***************
*** 42,46 ****
 command
 mouseClick
! openBackground
 select
 </pre>
--- 42,46 ----
 command
 mouseClick
! initialize
 select
 </pre>
***************
*** 63,72 ****
 
 <p>All component and menu event handlers take the form 
- <pre> on_commandName_command</pre>
- 
- or
 
 <pre> on_componentName_eventName</pre>
 
 
 
--- 63,72 ----
 
 <p>All component and menu event handlers take the form 
 
 <pre> on_componentName_eventName</pre>
 
+ or
+ 
+ <pre> on_commandName_command</pre>
 
 
***************
*** 87,94 ****
 handler for mouseClick events.</p>
 
! <p>It is common to have an openBackground event such as </p>
 
 <pre>
! def on_openBackground(self, event):
 </pre>
 
--- 87,94 ----
 handler for mouseClick events.</p>
 
! <p>It is common to have an initialize event such as </p>
 
 <pre>
! def on_initialize(self, event):
 </pre>
 
***************
*** 96,100 ****
 it is more like the HyperCard openStack system message). The other background events are:</p>
 
<pre>
 activate
! deactivate <- will be added in release 0.8
 close
 idle <- sent when the message queue empties
 minimize
 maximize
 move
 size
</pre>
 
 
--- 96,101 ----
 it is more like the HyperCard openStack system message). The other background events are:</p>
 
<pre>
 activate
! deactivate
 close
 idle <- sent when the message queue empties
 minimize
 maximize
! restore
 move
 size
</pre>
 
 
From: Kevin A. <ka...@us...> - 2005年12月24日 21:29:07
Update of /cvsroot/pythoncard/PythonCard/docs/html/images
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1088
Added Files:
	kea_upload.bat 
Log Message:
added my batch file for uploading all the images to the server
a variation on this could be used by other people
--- NEW FILE: kea_upload.bat ---
c:\cvshome\pscp findfilesfig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/findfilesfig1.png
c:\cvshome\pscp findfilesfig2.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/findfilesfig2.png
c:\cvshome\pscp findfilesfig3.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/findfilesfig3.png
c:\cvshome\pscp findfilesfig4.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/findfilesfig4.png
c:\cvshome\pscp findfilesfig5.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/findfilesfig5.png
c:\cvshome\pscp projectmanager.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/projectmanager.png
c:\cvshome\pscp resEditorFig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig1.png
c:\cvshome\pscp resEditorFig10.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig10.png
c:\cvshome\pscp resEditorFig11.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig11.png
c:\cvshome\pscp resEditorFig12.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig12.png
c:\cvshome\pscp resEditorFig13.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig13.png
c:\cvshome\pscp resEditorFig14.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig14.png
c:\cvshome\pscp resEditorFig15.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig15.png
c:\cvshome\pscp resEditorFig16.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig16.png
c:\cvshome\pscp resEditorFig17.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig17.png
c:\cvshome\pscp resEditorFig18.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig18.png
c:\cvshome\pscp resEditorFig19.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig19.png
c:\cvshome\pscp resEditorFig2.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig2.png
c:\cvshome\pscp resEditorFig20.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig20.png
c:\cvshome\pscp resEditorFig21.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig21.png
c:\cvshome\pscp resEditorFig22.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig22.png
c:\cvshome\pscp resEditorFig23.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig23.png
c:\cvshome\pscp resEditorFig24.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig24.png
c:\cvshome\pscp resEditorFig25.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig25.png
c:\cvshome\pscp resEditorFig3.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig3.png
c:\cvshome\pscp resEditorFig4.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig4.png
c:\cvshome\pscp resEditorFig5.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig5.png
c:\cvshome\pscp resEditorFig6.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig6.png
c:\cvshome\pscp resEditorFig7.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig7.png
c:\cvshome\pscp resEditorFig8.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig8.png
c:\cvshome\pscp resEditorFig9.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/resEditorFig9.png
c:\cvshome\pscp shellfig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/shellfig1.png
c:\cvshome\pscp shellfig2.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/shellfig2.png
c:\cvshome\pscp shellfig3.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/shellfig3.png
c:\cvshome\pscp shellfig4.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/shellfig4.png
c:\cvshome\pscp shellfig5.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/shellfig5.png
c:\cvshome\pscp wt1fig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt1fig1.png
c:\cvshome\pscp wt1fig2.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt1fig2.png
c:\cvshome\pscp wt1fig3.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt1fig3.png
c:\cvshome\pscp wt2fig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig1.png
c:\cvshome\pscp wt2fig10.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig10.png
c:\cvshome\pscp wt2fig11.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig11.png
c:\cvshome\pscp wt2fig2.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig2.png
c:\cvshome\pscp wt2fig3.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig3.png
c:\cvshome\pscp wt2fig4.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig4.png
c:\cvshome\pscp wt2fig5.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig5.png
c:\cvshome\pscp wt2fig6.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig6.png
c:\cvshome\pscp wt2fig7.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig7.png
c:\cvshome\pscp wt2fig8.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig8.png
c:\cvshome\pscp wt2fig9.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt2fig9.png
c:\cvshome\pscp wt3fig1.png ka...@py...:/home/groups/p/py/pythoncard/htdocs/images/wt3fig1.png
From: Kevin A. <ka...@us...> - 2005年12月24日 04:46:07
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20948
Modified Files:
	resourceEditor.py 
Log Message:
swapped Raise for Lower in fixComponentOrder
Index: resourceEditor.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/resourceEditor.py,v
retrieving revision 1.224
retrieving revision 1.225
diff -C2 -d -r1.224 -r1.225
*** resourceEditor.py	16 Aug 2005 10:17:07 -0000	1.224
--- resourceEditor.py	24 Dec 2005 04:45:57 -0000	1.225
***************
*** 1062,1067 ****
 
 def fixComponentOrder(self, name):
! for c in self.components.order:
! self.components[c].Lower()
 
 if self.application.pw is not None:
--- 1062,1072 ----
 
 def fixComponentOrder(self, name):
! # KEA 2005年12月23日
! # Lower() doesn't appear to always work correctly, 
! # so use Raise instead with a reversed list
! r = self.components.order[:]
! r.reverse()
! for c in r:
! self.components[c].Raise()
 
 if self.application.pw is not None:
From: Kevin A. <ka...@us...> - 2005年12月23日 20:07:54
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32513
Modified Files:
	timers-threads.html 
Log Message:
wx.wxWakeUpIdle() -> wx.WakeUpIdle()
Index: timers-threads.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/timers-threads.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** timers-threads.html	23 Dec 2005 20:01:51 -0000	1.5
--- timers-threads.html	23 Dec 2005 20:07:43 -0000	1.6
***************
*** 238,242 ****
 print "myThread x=%d" % x
 q.put(str(x)) # stick something on message queue
! wx.wxWakeUpIdle() # triggers 'idle' handlers
 x += 10
 </pre>
--- 238,242 ----
 print "myThread x=%d" % x
 q.put(str(x)) # stick something on message queue
! wx.WakeUpIdle() # triggers 'idle' handlers
 x += 10
 </pre>
***************
*** 251,255 ****
 refer to the Python Library Reference doco for module </p>
 <h4>4. Add an idle event handler</h4>
! <p>In the thread function above, the operative line is <span class="code">wx.wxWakeUpIdle()</span>
 . Upon calling that method, wxWindows tells all open windows, Hey, wake up -
 something's happened you might need to react to! So we need to add a handler
--- 251,255 ----
 refer to the Python Library Reference doco for module </p>
 <h4>4. Add an idle event handler</h4>
! <p>In the thread function above, the operative line is <span class="code">wx.WakeUpIdle()</span>
 . Upon calling that method, wxWindows tells all open windows, Hey, wake up -
 something's happened you might need to react to! So we need to add a handler
From: Kevin A. <ka...@us...> - 2005年12月23日 20:01:59
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31660
Modified Files:
	timers-threads.html 
Log Message:
converted code blocks to pre and added wx import
Index: timers-threads.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/timers-threads.html,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** timers-threads.html	23 Dec 2005 19:46:50 -0000	1.4
--- timers-threads.html	23 Dec 2005 20:01:51 -0000	1.5
***************
*** 69,75 ****
 But if you haven't yet done so, add the following method code to your 
 <span class="code">Counter</span> class:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;def on_initialize(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "Window opened"</p>
 <p>Not very significant - but do save your file, and run <span class="code">
 counter.py</span>. You'll see a message on stdout when the window opens.</p>
--- 69,76 ----
 But if you haven't yet done so, add the following method code to your 
 <span class="code">Counter</span> class:</p>
! <pre>
! def on_initialize(self, event):
! print "Window opened"
! </pre>
 <p>Not very significant - but do save your file, and run <span class="code">
 counter.py</span>. You'll see a message on stdout when the window opens.</p>
***************
*** 79,88 ****
 handler as an opportunity to set up a timer.</p>
 <p>So change the event handler to the following:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;def on_initialize(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.myTimer = timer.Timer(self.components.field1,
! -1) # create a timer<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.myTimer.Start(5000) # launch timer, to fire
! every 5000ms (5 seconds)</p>
 <p>You'll also notice from the <span class="code">self.components.field1</span>
 that the timer is being created in respect of the <span class="code">field1</span> 
--- 80,88 ----
 handler as an opportunity to set up a timer.</p>
 <p>So change the event handler to the following:</p>
! <pre>
! def on_initialize(self, event):
! self.myTimer = timer.Timer(self.components.field1, -1) # create a timer
! self.myTimer.Start(5000) # launch timer, to fire every 5000ms (5 seconds)
! </pre>
 <p>You'll also notice from the <span class="code">self.components.field1</span>
 that the timer is being created in respect of the <span class="code">field1</span> 
***************
*** 92,98 ****
 the line at the top of your <span class="code">counter.py</span> program
 which currently says</p>
! <p class="code">from PythonCard import model</p>
 <p>and change it to say</p>
! <p class="code">from PythonCard import model, timer</p>
 <p>Now, we have to make sure we can receive an event every time the clock 
 'ticks'.</p>
--- 92,102 ----
 the line at the top of your <span class="code">counter.py</span> program
 which currently says</p>
! <pre>
! from PythonCard import model
! </pre>
 <p>and change it to say</p>
! <pre>
! from PythonCard import model, timer
! </pre>
 <p>Now, we have to make sure we can receive an event every time the clock 
 'ticks'.</p>
***************
*** 110,122 ****
 <p>Now, add the following method code into class <span class="code">
 Counter</span>:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;def on_field1_timer(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "Got a timer event"<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startValue = int(self.components.field1.text)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endValue = startValue + 10<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "Got a timer event, value is now %d" % endValue<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text = str(endValue)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# uncomment the line below if you've already followed the 'child window' walkthrough<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#self.minimalWindow.components.field1.text = str(endValue)</p>
 <p><em>Note</em> - this is ugly, because there's a lot of duplicated 
 functionality. We'll leave it to you to factorise your code appropriately, 
--- 114,127 ----
 <p>Now, add the following method code into class <span class="code">
 Counter</span>:</p>
! <pre>
! def on_field1_timer(self, event):
! print "Got a timer event"
! startValue = int(self.components.field1.text)
! endValue = startValue + 10
! print "Got a timer event, value is now %d" % endValue
! self.components.field1.text = str(endValue)
! # uncomment the line below if you've already followed the 'child window' walkthrough
! #self.minimalWindow.components.field1.text = str(endValue)
! </pre>
 <p><em>Note</em> - this is ugly, because there's a lot of duplicated 
 functionality. We'll leave it to you to factorise your code appropriately, 
***************
*** 165,171 ****
 <p>Now, add to the top of <span class="code">counter.py</span> the following 
 statement:</p>
! <p class="code">import thread, Queue</p>
 <p>This will give us access to Python's thread creation/dispatch functions, 
! as well as message queues</p>
 <h4>A Little Theory</h4>
 <p>I'll keep this short and sweet. Simply, the safest way for threads to 
--- 170,179 ----
 <p>Now, add to the top of <span class="code">counter.py</span> the following 
 statement:</p>
! <pre>
! import thread, Queue
! import wx
! </pre>
 <p>This will give us access to Python's thread creation/dispatch functions, 
! as well as message queues and wxPython.</p>
 <h4>A Little Theory</h4>
 <p>I'll keep this short and sweet. Simply, the safest way for threads to 
***************
*** 207,213 ****
 <p>Refer back to the <span class="code">on_initialize(self, event)</span>
 handler above, and add the following statement:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;# Add a message queue<br />
! &nbsp;&nbsp;&nbsp;&nbsp;self.msgQueue = Queue.Queue()</p>
 <p>This sticks a message queue into our <span class="code">Counter</span>
 window class, that will be used for communication from the thread backend to 
--- 215,222 ----
 <p>Refer back to the <span class="code">on_initialize(self, event)</span>
 handler above, and add the following statement:</p>
! <pre>
! # Add a message queue
! self.msgQueue = Queue.Queue()
! </pre>
 <p>This sticks a message queue into our <span class="code">Counter</span>
 window class, that will be used for communication from the thread backend to 
***************
*** 216,240 ****
 <p>Add the following <strong>global</strong> function to your 
 <span class="code">counter.py</span>:</p>
! <p class="code">
! def myThread(*argtuple):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;"""<br />
! &nbsp;&nbsp;&nbsp;&nbsp;A little thread we've added<br />
! &nbsp;&nbsp;&nbsp;&nbsp;"""<br />
! &nbsp;&nbsp;&nbsp;&nbsp;print "myThread: entered"<br />
! &nbsp;&nbsp;&nbsp;&nbsp;q = argtuple[0]<br />
! &nbsp;&nbsp;&nbsp;&nbsp;print "myThread: starting loop"<br />
! &nbsp;&nbsp;&nbsp;&nbsp;x = 10<br />
! &nbsp;&nbsp;&nbsp;&nbsp;while 1:<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time.sleep(10) # time unit is seconds<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "myThread x=%d" % x<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.put(str(x)) # stick something on message queue<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.wxWakeUpIdle() # triggers 'idle' handlers<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x += 10</p>
 <h4>3. Launch the Thread</h4>
 <p>Add the following lines at the end of your <span class="code">on_initialize</span>
 handler:</p>
! <p class="code">
! &nbsp;&nbsp;&nbsp;&nbsp;# Now launch the thread<br />
! &nbsp;&nbsp;&nbsp;&nbsp;thread.start_new_thread(myThread, (self.msgQueue,))</p>
 <p>Notice that we have to pass the queue object to the thread in a tuple - 
 refer to the Python Library Reference doco for module </p>
--- 225,251 ----
 <p>Add the following <strong>global</strong> function to your 
 <span class="code">counter.py</span>:</p>
! <pre>
! def myThread(*argtuple):
! """
! A little thread we've added
! """
! print "myThread: entered"
! q = argtuple[0]
! print "myThread: starting loop"
! x = 10
! while True:
! time.sleep(10) # time unit is seconds
! print "myThread x=%d" % x
! q.put(str(x)) # stick something on message queue
! wx.wxWakeUpIdle() # triggers 'idle' handlers
! x += 10
! </pre>
 <h4>3. Launch the Thread</h4>
 <p>Add the following lines at the end of your <span class="code">on_initialize</span>
 handler:</p>
! <pre>
! # Now launch the thread
! thread.start_new_thread(myThread, (self.msgQueue,))
! </pre>
 <p>Notice that we have to pass the queue object to the thread in a tuple - 
 refer to the Python Library Reference doco for module </p>
***************
*** 246,252 ****
 get 'woken up'. So add the following method into your <span class="code">Counter</span>
 class</p>
! <p class="code">
! def on_idle(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;print "on_idle entered" </p>
 <h4>5. Check the message queue and react accordingly</h4>
 <p>Presently, our 'idle' handler isn't very useful - but if you run 
--- 257,264 ----
 get 'woken up'. So add the following method into your <span class="code">Counter</span>
 class</p>
! <pre>
! def on_idle(self, event):
! print "on_idle entered"
! </pre>
 <h4>5. Check the message queue and react accordingly</h4>
 <p>Presently, our 'idle' handler isn't very useful - but if you run 
***************
*** 254,267 ****
 So now, we'll make it do what it needs to do - reacting to events from our 
 background thread. Replace the idle handler above with the following:</p>
! <p class="code">
! def on_idle(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;print "on_idle entered"<br />
! &nbsp;&nbsp;&nbsp;&nbsp;while not self.msgQueue.empty():<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# Handle messages from our thread<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg = self.msgQueue.get()<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "on_idle: msg='%s'" % msg<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text = msg<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# uncomment the following if you've followed the 'child window' walkthrough<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#self.minimalWindow.components.field1.text = msg</p>
 <p>Now, we're all done. Launch your counter.py, and watch as the background 
 thread launches, and periodically sends its messages to the user interface,
--- 266,280 ----
 So now, we'll make it do what it needs to do - reacting to events from our 
 background thread. Replace the idle handler above with the following:</p>
! <pre>
! def on_idle(self, event):
! print "on_idle entered"
! while not self.msgQueue.empty():
! # Handle messages from our thread
! msg = self.msgQueue.get()
! print "on_idle: msg='%s'" % msg
! self.components.field1.text = msg
! # uncomment the following if you've followed the 'child window' walkthrough
! #self.minimalWindow.components.field1.text = msg
! </pre>
 <p>Now, we're all done. Launch your counter.py, and watch as the background 
 thread launches, and periodically sends its messages to the user interface,
From: Kevin A. <ka...@us...> - 2005年12月23日 19:47:00
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29353
Modified Files:
	timers-threads.html 
Log Message:
updated samples.html link
Index: timers-threads.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/timers-threads.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** timers-threads.html	13 Aug 2005 14:39:41 -0000	1.3
--- timers-threads.html	23 Dec 2005 19:46:50 -0000	1.4
***************
*** 19,23 ****
 David Primmer, and follows on from the <a href="walkthrough3.html">How to 
 Add a child window</a> lesson. It's based on techniques taken from the 
! various PythonCard <a href="/samples/samples.html">sample programs</a>.</p>
 <p>This walkthrough was originally written by David McNab 
 (<strong>david at rebirthing dot co dot nz</strong>), and was revised by, 
--- 19,23 ----
 David Primmer, and follows on from the <a href="walkthrough3.html">How to 
 Add a child window</a> lesson. It's based on techniques taken from the 
! various PythonCard <a href="http://pythoncard.sourceforge.net/samples/samples.html">sample programs</a>.</p>
 <p>This walkthrough was originally written by David McNab 
 (<strong>david at rebirthing dot co dot nz</strong>), and was revised by, 
From: Kevin A. <ka...@us...> - 2005年12月22日 18:20:46
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14778
Modified Files:
	walkthrough2.html 
Log Message:
changed code blocks to use <pre> where code is meant to be copied and
pasted into an editor
Index: walkthrough2.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough2.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** walkthrough2.html	19 Dec 2005 23:35:38 -0000	1.13
--- walkthrough2.html	22 Dec 2005 18:20:33 -0000	1.14
***************
*** 161,169 ****
 lines will be indented twice.</li>
 </ol>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;def on_incrBtn_mouseClick(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startValue = int(self.components.field1.text)<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endValue = startValue + 1<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text
! = str(endValue)</p>
 <p>Let's examine this script because the others we will write are all but 
 identical.</p>
--- 161,170 ----
 lines will be indented twice.</li>
 </ol>
! <pre>
! def on_incrBtn_mouseClick(self, event):
! startValue = int(self.components.field1.text)
! endValue = startValue + 1
! self.components.field1.text = str(endValue)
! </pre>
 <p>Let's examine this script because the others we will write are all but 
 identical.</p>
***************
*** 205,210 ****
 <li>Create a final handler for the Reset button that looks like this:</li>
 </ol>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;def on_resetBtn_mouseClick(self, event):<br />
! &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.components.field1.text = "0"</p>
 <p>Figure 5 shows you what your editor window should look like now.</p>
 <p class="imageCaption"><img src="images/wt2fig5.png" alt="Editor Showing Final Code Changes" /><br />
--- 206,213 ----
 <li>Create a final handler for the Reset button that looks like this:</li>
 </ol>
! <pre>
! def on_resetBtn_mouseClick(self, event):
! self.components.field1.text = "0"
! </pre>
 <p>Figure 5 shows you what your editor window should look like now.</p>
 <p class="imageCaption"><img src="images/wt2fig5.png" alt="Editor Showing Final Code Changes" /><br />
***************
*** 287,291 ****
 handler name shown here:</li>
 </ol>
! <p class="code">&nbsp;&nbsp;&nbsp;&nbsp;def on_counterMenuIncrement_select(self, event):</p>
 <ol start="9">
 <li>Copy the three lines of the function in <span class="code">on_incrBtn_mouseClick</span>
--- 290,296 ----
 handler name shown here:</li>
 </ol>
! <pre>
! def on_counterMenuIncrement_select(self, event):
! </pre>
 <ol start="9">
 <li>Copy the three lines of the function in <span class="code">on_incrBtn_mouseClick</span>
From: Kevin A. <ka...@us...> - 2005年12月19日 23:35:46
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23290
Modified Files:
	walkthrough2.html 
Log Message:
Add Button -> Button and added comment about additional explanation
needed on new dialogs after adding a component
Index: walkthrough2.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/walkthrough2.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** walkthrough2.html	21 Aug 2005 22:57:34 -0000	1.12
--- walkthrough2.html	19 Dec 2005 23:35:38 -0000	1.13
***************
*** 120,124 ****
 <li>Select Save from the File menu to save the counter.rsrc.py resource 
 file.</li>
! <li>From the &quot;Components&quot; menu, select &quot;Add Button&quot;</li>
 <li>In the Property Editor window, select the &quot;name&quot; property in 
 the right-hand list of properties for the Button1 Button object. Change the 
--- 120,125 ----
 <li>Select Save from the File menu to save the counter.rsrc.py resource 
 file.</li>
! <li>From the &quot;Components&quot; menu, select &quot;Button&quot;</li>
! <!-- we need to enhance this with a description of Alex's dialogs -->
 <li>In the Property Editor window, select the &quot;name&quot; property in 
 the right-hand list of properties for the Button1 Button object. Change the 
From: Alex T. <ale...@us...> - 2005年12月19日 23:21:04
Update of /cvsroot/pythoncard/PythonCard/tools/oneEditor
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19138
Modified Files:
	tabcodeEditor.py 
Log Message:
Add a spacer to the horizontal box sizer containing the drop-down menus
for handler and events. This ensures that adequate space is left, even when
wxPython 2.6.1 calculatea min size for the drop down of (0,0).
Index: tabcodeEditor.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/tools/oneEditor/tabcodeEditor.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** tabcodeEditor.py	19 Dec 2005 23:18:04 -0000	1.13
--- tabcodeEditor.py	19 Dec 2005 23:20:55 -0000	1.14
***************
*** 182,185 ****
--- 182,186 ----
 sizer2.Add(self.components.popComponentNames)
 sizer2.Add(self.components.popComponentEvents)
+ sizer2.Add( (10,21) )
 
 sizer1.Add(sizer2, 0)
From: Alex T. <ale...@us...> - 2005年12月19日 23:18:15
Update of /cvsroot/pythoncard/PythonCard/tools/codeEditor
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18442/codeEditor
Modified Files:
	codeEditor.py 
Log Message:
Change hack for Python 2.3 to BIG HACK for Python 2.3 or 2.4 help files on Win.
Index: codeEditor.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/tools/codeEditor/codeEditor.py,v
retrieving revision 1.125
retrieving revision 1.126
diff -C2 -d -r1.125 -r1.126
*** codeEditor.py	18 Aug 2004 16:24:56 -0000	1.125
--- codeEditor.py	19 Dec 2005 23:18:04 -0000	1.126
***************
*** 1212,1220 ****
 
 if sys.platform.startswith("win"):
! # KEA 2003年10月15日
! # hack for Python 2.3 Windows help file
 # need to decide on a clean way of handling various doc options
 fn = os.path.dirname(os.__file__)
! fn = os.path.join(fn, os.pardir, "Doc", "Python23.chm")
 fn = os.path.normpath(fn)
 if os.path.isfile(fn):
--- 1212,1221 ----
 
 if sys.platform.startswith("win"):
! # KEA 2003年10月15日 AGT 2005年12月20日
! # BIG hack for Python 2.3 Windows help file (or Python 2.4)
 # need to decide on a clean way of handling various doc options
 fn = os.path.dirname(os.__file__)
! chmfile = "Python" + sys.version[0] + sys.version[2] + ".chm"
! fn = os.path.join(fn, os.pardir, "Doc", chmfile)
 fn = os.path.normpath(fn)
 if os.path.isfile(fn):
From: Alex T. <ale...@us...> - 2005年12月19日 23:18:15
Update of /cvsroot/pythoncard/PythonCard/tools/oneEditor
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18442/oneEditor
Modified Files:
	tabcodeEditor.py 
Log Message:
Change hack for Python 2.3 to BIG HACK for Python 2.3 or 2.4 help files on Win.
Index: tabcodeEditor.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/tools/oneEditor/tabcodeEditor.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** tabcodeEditor.py	3 Nov 2005 00:22:52 -0000	1.12
--- tabcodeEditor.py	19 Dec 2005 23:18:04 -0000	1.13
***************
*** 1244,1252 ****
 
 if sys.platform.startswith("win"):
! # KEA 2003年10月15日
! # hack for Python 2.3 Windows help file
 # need to decide on a clean way of handling various doc options
 fn = os.path.dirname(os.__file__)
! fn = os.path.join(fn, os.pardir, "Doc", "Python23.chm")
 fn = os.path.normpath(fn)
 if os.path.isfile(fn):
--- 1244,1253 ----
 
 if sys.platform.startswith("win"):
! # KEA 2003年10月15日 AGT 2005年12月20日
! # BIG hack for Python 2.3 Windows help file or Python 2.4
 # need to decide on a clean way of handling various doc options
 fn = os.path.dirname(os.__file__)
! chmfile = "Python" + sys.version[0] + sys.version[2] + ".chm"
! fn = os.path.join(fn, os.pardir, "Doc", chmfile)
 fn = os.path.normpath(fn)
 if os.path.isfile(fn):
From: Kevin A. <ka...@us...> - 2005年12月19日 23:02:20
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13506
Modified Files:
	index.html 
Log Message:
changed link to point to website which is the real location of sample imgs
Index: index.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/index.html,v
retrieving revision 1.64
retrieving revision 1.65
diff -C2 -d -r1.64 -r1.65
*** index.html	17 Dec 2005 14:56:48 -0000	1.64
--- index.html	19 Dec 2005 23:02:09 -0000	1.65
***************
*** 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="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.soureforge.net/samples/samples.html">screenshots</a> of the sample applications</li>
 </ul>
 
From: Alex T. <ale...@us...> - 2005年12月17日 15:20:10
Update of /cvsroot/pythoncard/PythonCard/docs/GettingStarted
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7969/GettingStarted
Modified Files:
	starter1.py 
Log Message:
Removed the import of dialog, so that the section of walkthrough1 which
tells the user to add it is correct.
Index: starter1.py
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/GettingStarted/starter1.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** starter1.py	9 Feb 2005 08:17:53 -0000	1.7
--- starter1.py	17 Dec 2005 15:20:02 -0000	1.8
***************
*** 6,10 ****
 """
 
! from PythonCard import model, dialog
 
 
--- 6,10 ----
 """
 
! from PythonCard import model
 
 
From: Alex T. <ale...@us...> - 2005年12月17日 14:56:57
Update of /cvsroot/pythoncard/PythonCard/docs/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4895
Modified Files:
	index.html samples.html 
Log Message:
Fix broken link to the samples screenshots (and typo).
Index: samples.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/samples.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** samples.html	26 Jul 2004 15:35:31 -0000	1.12
--- samples.html	17 Dec 2005 14:56:49 -0000	1.13
***************
*** 25,29 ****
 captured on different machines using different color schemes. This shows that
 PythonCard which relies on wxPython/wxWindows is using native controls. There 
! are some Linux screen shots will on the next samples page.</strong></p>
 <p>To download the framework and these applications go to the downloads 
 section of the project site on <a href="http://sourceforge.net/projects/pythoncard/">Sourceforge</a></p>
--- 25,29 ----
 captured on different machines using different color schemes. This shows that
 PythonCard which relies on wxPython/wxWindows is using native controls. There 
! are some Linux screen shots on the next samples page.</strong></p>
 <p>To download the framework and these applications go to the downloads 
 section of the project site on <a href="http://sourceforge.net/projects/pythoncard/">Sourceforge</a></p>
Index: index.html
===================================================================
RCS file: /cvsroot/pythoncard/PythonCard/docs/html/index.html,v
retrieving revision 1.63
retrieving revision 1.64
diff -C2 -d -r1.63 -r1.64
*** index.html	18 Aug 2004 19:52:23 -0000	1.63
--- index.html	17 Dec 2005 14:56:48 -0000	1.64
***************
*** 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="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="samples.html">screenshots</a> of the sample applications</li>
 </ul>
 

Showing results of 993

<< < 1 .. 4 5 6 7 8 .. 40 > >> (Page 6 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 によって変換されたページ (->オリジナル) /