You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(116) |
Sep
(146) |
Oct
(78) |
Nov
(69) |
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(188) |
Feb
(142) |
Mar
(143) |
Apr
(131) |
May
(97) |
Jun
(221) |
Jul
(127) |
Aug
(89) |
Sep
(83) |
Oct
(66) |
Nov
(47) |
Dec
(70) |
2003 |
Jan
(77) |
Feb
(91) |
Mar
(103) |
Apr
(98) |
May
(134) |
Jun
(47) |
Jul
(74) |
Aug
(71) |
Sep
(48) |
Oct
(23) |
Nov
(37) |
Dec
(13) |
2004 |
Jan
(24) |
Feb
(15) |
Mar
(52) |
Apr
(119) |
May
(49) |
Jun
(41) |
Jul
(34) |
Aug
(91) |
Sep
(169) |
Oct
(38) |
Nov
(32) |
Dec
(47) |
2005 |
Jan
(61) |
Feb
(47) |
Mar
(101) |
Apr
(130) |
May
(51) |
Jun
(65) |
Jul
(71) |
Aug
(96) |
Sep
(28) |
Oct
(20) |
Nov
(39) |
Dec
(62) |
2006 |
Jan
(13) |
Feb
(19) |
Mar
(18) |
Apr
(34) |
May
(39) |
Jun
(50) |
Jul
(63) |
Aug
(18) |
Sep
(37) |
Oct
(14) |
Nov
(56) |
Dec
(32) |
2007 |
Jan
(30) |
Feb
(13) |
Mar
(25) |
Apr
(3) |
May
(15) |
Jun
(42) |
Jul
(5) |
Aug
(17) |
Sep
(6) |
Oct
(25) |
Nov
(49) |
Dec
(10) |
2008 |
Jan
(12) |
Feb
|
Mar
(17) |
Apr
(18) |
May
(12) |
Jun
(2) |
Jul
(2) |
Aug
(6) |
Sep
(4) |
Oct
(15) |
Nov
(45) |
Dec
(9) |
2009 |
Jan
(1) |
Feb
(3) |
Mar
(18) |
Apr
(8) |
May
(3) |
Jun
|
Jul
(13) |
Aug
(2) |
Sep
(1) |
Oct
(9) |
Nov
(13) |
Dec
|
2010 |
Jan
(2) |
Feb
(3) |
Mar
(9) |
Apr
(10) |
May
|
Jun
(1) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(44) |
May
(9) |
Jun
(22) |
Jul
(2) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(3) |
Aug
(8) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Brian D. <deb...@ho...> - 2004-04-26 02:56:04
|
<html><div style='background-color:'><DIV class=RTE>I am sorry, but i couldnt send the app with hotmail.</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>I will try again later.</DIV> <DIV class=RTE> </DIV> <DIV class=RTE>Brian</DIV></div><br clear=all><hr>Protect your PC - <a href="http://g.msn.com/8HMAEN/2755??PS=">Click here</a> for McAfee.com VirusScan Online </html> |
From: Brian D. <deb...@ho...> - 2004-04-26 02:53:02
|
<html><div style='background-color:'><DIV> <DIV class=RTE> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">Hi everyone! : )<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">I have wrote a Python Card App that I used to call Python Builder for PyGame Aplications, and what It really does is to create a basic PyGame application or project with some options. <o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">I sent this app to Kevin Altis and he already gave me some tips like to change the name to PyGame Builder and I totally agree.<o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">This is the reason why I am sending this app to the mailing list, the possibility of your help, I mean ideas, tips, advices, critics, etc.<o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">I will also send this app, when become acceptable, to the PyGame mailing list and see if this could help some pygame programmers, but lets see how far can this get <o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">Thanks for all your support.<o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">Enjoy it!<o:p></o:p></FONT></FONT></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><o:p><FONT face="Times New Roman" size=3> </FONT></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="mso-ansi-language: EN-US"><FONT size=3><FONT face="Times New Roman">Brian<o:p></o:p></FONT></FONT></SPAN></P></DIV></DIV></div><br clear=all><hr>MSN 8 helps <a href="http://g.msn.com/8HMAEN/2743??PS=">ELIMINATE E-MAIL VIRUSES. </a> Get 2 months FREE*.</html> |
From: Kevin A. <al...@se...> - 2004-04-26 00:02:46
|
On Apr 25, 2004, at 7:39 AM, Arthur Elsenaar wrote: > Hi, > > I let codeEditor sit idle overnight and it took more than 500MB of > RAM.. > looking at it using 'top' it shows grabbing ~100k every ~10 seconds! > > OS X 10.3.3, Apple's Python, wxPython 2.5.2.5 panther and PythonCard > 0.7.3.1 > > If it is a wxPython issue, I read wxPython has been substantially > improved in CVS, does it address the leak? > > Thanks, Arthur. > Thanks for the report. Sadly, this is not something I can pin on wxSTC or wxPython. It appears that we have some circular references with the event objects that we use to handle dispatch. I tested with PythonCardPrototype and wxPython 2.4.2.4 as well as PythonCard with 2.5.1.5 on Win2K and Mac OS X and saw the same kind of behavior. The memory leak is very apparent with the codeEditor because it generates "idle" messages almost continuously. However, the leak is definitely there with other samples. Anyway, Rowland and I will investigate and see if we can narrow it down this week. I haven't done much of this kind of memory leak debugging with Python before. I started looking at the gc module, but would appreciate recommendations on tools, code snippets, things to try in the shell, etc. to help pinpoint the problem. I'm sure some of the other developers on this list have far more experience than I. http://docs.python.org/lib/module-gc.html Thanks, ka |
From: Arthur E. <ar...@mo...> - 2004-04-25 18:53:53
|
Hi, I let codeEditor sit idle overnight and it took more than 500MB of RAM.. looking at it using 'top' it shows grabbing ~100k every ~10 seconds! OS X 10.3.3, Apple's Python, wxPython 2.5.2.5 panther and PythonCard 0.7.3.1 If it is a wxPython issue, I read wxPython has been substantially improved in CVS, does it address the leak? Thanks, Arthur. |
From: Kevin A. <al...@se...> - 2004-04-25 14:09:13
|
On Apr 25, 2004, at 3:35 AM, Arthur Elsenaar wrote: > Hi, > > I'm working my way through the tutorials and stumbled upon some issues > at walkthrough 3, timers and threads here: > > http://pythoncard.sourceforge.net/timers-threads.html > > Running the threads example, I got a time.sleep() unknown error that i > fixed by importing the time module (this should be added to the page). > Also when I run the thing, it's continuously spitting out idle events. > Is this supposed to happen, it seems very inefficient. In the code, > the thread is sleeping for 10 seconds and then an idle event is > generated by a wx.wxWakeUpIdle(). > > Hope someone has some answers for a newbie. > > Arthur > btw: running OS X 10.3.3 > I'll add the note about importing the time module when I update the document for release 0.8 unless David is going to do that. The problem with the idle events that you're seeing could be explained by the fact that on wxWidgets/wxPython the "idle" event really means the event queue just emptied. That means simply moving the mouse is going to result in an idle event after each mouseMove since the queue will empty. That is why the PythonCard Message Watcher doesn't have an option to display idle events. Anyway, for release 0.8 I'm seriously considering renaming the idle event to something that more accurately describes what the event really means like eventQueueEmpty, the problem being that that is very long name and everyone will misspell queue ;-) Perhaps noMoreEvents would be better but that isn't very accurate. I'm open to suggestions. For threading rather than using WakeUpIdle I think I will start recommending a change to using wxCallAfter and some user-defined event handler instead since that will have the same effect. When I look at updating the timers-threads.html document and the other samples that use WakeUpIdle I'll take a closer look at the alternatives. David McNab is still on the mailing list, so he might have some other comments to add. ka |
From: Arthur E. <ar...@mo...> - 2004-04-25 11:40:21
|
Hi, I'm working my way through the tutorials and stumbled upon some issues at walkthrough 3, timers and threads here: http://pythoncard.sourceforge.net/timers-threads.html Running the threads example, I got a time.sleep() unknown error that i fixed by importing the time module (this should be added to the page). Also when I run the thing, it's continuously spitting out idle events. Is this supposed to happen, it seems very inefficient. In the code, the thread is sleeping for 10 seconds and then an idle event is generated by a wx.wxWakeUpIdle(). Hope someone has some answers for a newbie. Arthur btw: running OS X 10.3.3 |
From: Kevin A. <al...@se...> - 2004-04-24 22:16:00
|
I'm using mixedCase method names below because I've already checked in=20= the changes for 0.8 so that Skip and Close methods have lowercase=20 equivelants: skip and close. I am going to add an exit command event handler, which in my test code=20= I'm just calling on_exit_command. This event handler figures out the=20 main application background window so that it can be called from child=20= windows as well as the main application window. All it does is call=20 close() on the main window, so that will effectively lead to your app=20 exiting. You can prevent the app exiting with on_close event handler=20 and avoid calling event.skip() if for some reason the app shouldn't=20 exit; that is also how you deal with the user clicking the close box in=20= the window titlebar. The event handler just calls a new background=20 method called exit(). By providing a common on_exit_command event handler, user code won't=20 have to provide one or have this kind of event handler code to support=20= a File->Exit menu item. def on_menuFileExit_select(self, event): self.close() Almost every sample and tool has that event handler with this=20 corresponding resource description: { 'type':'MenuItem', 'name':'menuFileExit', 'label':'E&xit\tAlt+X' } =00 To use the the exit command you can add a command attribute so that the=20= default on_exit_command event handler gets used. { 'type':'MenuItem', 'name':'menuFileExit', 'label':'E&xit\tAlt+X' , 'command':'exit' } =00 =00If that is done then the minimal sample really becomes minimal <wink> from PythonCard import model class Minimal(model.Background): pass if __name__ =3D=3D '__main__': app =3D model.Application(Minimal) app.MainLoop() =00 Using the exit command will work anywhere command events are used (e.g.=20= Buttons). The whole reason I'm bringing this up on the list is I'm wondering if=20 this seems a bit too magical for anyone? I don't want to blow away=20 every "on_menuFileExit_select" event handler in all the samples and=20 tools and update all the resource files only to find out that NOT=20 having an explicit event handler for exiting defined in user code, just=20= confuses everyone. The following bits of "zen" are probably relevant """ ... Explicit is better than implicit. Simple is better than complex. ... There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. ... If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea.=00 =00""" I'm looking at it as a built-in feature of the framework that will be=20 documented and used in all the examples. It standardizes the event=20 handler used to exit the application, simplifies the code a user needs=20= to write and the event handler while not in the user code, is in the=20 superclass and visible in the shell, docs, etc. to it is explicit. Well, that's a whole lot of explanation, but it is good to get this=20 kind of thing right the first time. If anyone thinks it is a bad idea,=20= please respond this weekend. I'll hold off updating all the samples and=20= tools until Monday morning. Other suggestions are also welcome. ka= |
From: Kenneth P. <pro...@sk...> - 2004-04-24 16:49:02
|
Andy - > For those who haven't noticed yet, The web site as been updated. I've > put the new versions of the files in CVS and copied them onto the public > web site (http://pythoncard.sourceforge.net or http://www.pythoncard.org). It looks nice. Very smooth. Nice work. :-) KEN -- Kenneth J. Pronovici <pro...@sk...> Personal Homepage: http://www.skyjammer.com/~pronovic/ "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin, Historical Review of Pennsylvania, 1759 |
From: Andy T. <an...@ha...> - 2004-04-24 14:41:13
|
For those who haven't noticed yet, The web site as been updated. I've put the new versions of the files in CVS and copied them onto the public web site (http://pythoncard.sourceforge.net or http://www.pythoncard.org). Why an update? And why now? As work ramps up towards 0.8 and then our 1.0 release we will need to review and revise both the project documentation and web site. To make this a little easier I've reworked the html that makes up our web site (and documentation) with a few aims; 1. Make them all valid (X)HTML. 2. Use CSS for layout, positioning and presentation. 3. Enforce a common look and feel across the whole site. All of our pages now use a single style sheet and validate as XHTML transitional at the W3C Validator (http://validator.w3c.org/). The major source of inspiration for the code was Jeffrey Zeldman's rather excellent Desiging with Web Standards (http://www.zeldman.com/dwws/) These changes are in the PythonCardPrototype CVS tree if you wish to look at the source. Note that I've used a .htaccess file to enable us to use PHP without changing the file extensions to .php. So the pages may not render as expected unless you view them through Apache. The eagle eyed will also notice that I haven't update the dialogs directory. This is mainly because I haven't found a nice accessible way to remove the frames. Any suggestions are welcome. At this stage the content hasn't changed, but if anyone has spotted any errors or thinks they would benefit from a correction please post a message to the list. Regards, Andy -- -------------------------------------------------------------------------------- From the desk of Andrew J Todd esq - http://www.halfcooked.com/ |
From: Kevin A. <al...@se...> - 2004-04-23 19:25:37
|
I've created a new mailing list so that anyone interested can be notified automatically of cvs commits as they occur. This list will not be archived. http://lists.sourceforge.net/lists/listinfo/pythoncard-cvs It doesn't appear the list is sending out messages yet, but I'm going to wait at least 24 hours before submitting a support request to SF staff. ka |
From: Kevin A. <al...@se...> - 2004-04-23 15:54:56
|
On Apr 23, 2004, at 8:18 AM, Thomas Heller wrote: > "Kevin Altis" <al...@se...> writes: > >> You didn't specify which components were broken, so if this doesn't >> solve the problem or other components need a similar workaround on >> Windows, please let me know. Hopefully, the 3D border offset is the >> same on Win98, 2K, XP; I can only check it on Win2K. > > I don't think it is the same on these systems, and it may even depend=20= > on > some user settings. > > Windows exposes the GetSystemMetrics api to find out a lot of these > things, although I have no idea whether wxPython exposes this = function. > > Thomas Aha, I didn't know that was a system setting you could query. In=20 wxPython, those numbers are available via the GetMetric method in the=20 wxSystemSettings class. So, the code for resourceEditor.py in=20 PythonCardPrototype would be: # KEA 2003-05-05 # workaround for 3D border on Windows t =3D target.__class__.__name__ if wx.Platform =3D=3D "__WXMSW__": if ['List', 'PasswordField', 'TextField',=20 'TextArea'].count(t): self.startGlobalOffset =3D = [self.startGlobalOffset[0]=20 + wx.wxSystemSettings.GetMetric(wx.wxSYS_EDGE_X), self.startGlobalOffset[1] +=20 wx.wxSystemSettings.GetMetric(wx.wxSYS_EDGE_Y)] elif ['Gauge', 'StaticLine'].count(t): self.startGlobalOffset =3D = [self.startGlobalOffset[0]=20 + wx.wxSystemSettings.GetMetric(wx.wxSYS_BORDER_X), self.startGlobalOffset[1] +=20 wx.wxSystemSettings.GetMetric(wx.wxSYS_BORDER_Y)] =00 Calendar and Spinner are still screwed up, but that is because they are=20= compound wxWidget controls and don't report positions correctly. I'm=20 still not sure what I should do about them to get the offset right on=20 all platforms. ka= |
From: Thomas H. <th...@py...> - 2004-04-23 15:18:52
|
"Kevin Altis" <al...@se...> writes: > You didn't specify which components were broken, so if this doesn't > solve the problem or other components need a similar workaround on > Windows, please let me know. Hopefully, the 3D border offset is the > same on Win98, 2K, XP; I can only check it on Win2K. I don't think it is the same on these systems, and it may even depend on some user settings. Windows exposes the GetSystemMetrics api to find out a lot of these things, although I have no idea whether wxPython exposes this function. Thomas |
From: Kevin A. <al...@se...> - 2004-04-23 14:46:40
|
On Apr 23, 2004, at 2:13 AM, Uwe Schmitt wrote: > > Hi, > > I used a new version of PythonCard these days and observed a = difference > when using the resource editor: if I click at a widget for editing its > properties, the widget moves, which makes some trouble because every=20= > time I > change something, I have to correct the coordinates manually. > PythonCard version is 0.7.2, OS is Windows XP, > > Greetings, Uwe > Argh, no make that argh, argh. I don't have a good explanation for this=20= mistake considering that I have a specific workaround in place and this=20= is a "one off" type error. Anyway, starting on line 381 in=20 resourceEditor.py you'll see the following block of code. # KEA 2003-05-05 # workaround for 3D border on Windows t =3D target.__class__.__name__ =00=00 if wx.wxPlatform =3D=3D "__WXMSW__": if ['List', 'PasswordField', 'TextField',=20 'TextArea'].count(t): self.startGlobalOffset =3D = [self.startGlobalOffset[0]=20 + 3, self.startGlobalOffset[1] + 3] elif ['Gauge', 'StaticLine'].count(t): self.startGlobalOffset =3D = [self.startGlobalOffset[0]=20 + 1, self.startGlobalOffset[1] + 1] =00 Instead of '+ 3', the offset for List and fields should be '+ 2'. if ['List', 'PasswordField', 'TextField',=20 'TextArea'].count(t): self.startGlobalOffset =3D = [self.startGlobalOffset[0]=20 + 2, self.startGlobalOffset[1] + 2] I've already checked this change into cvs along with the=20 propertyEditor.py bug found yesterday, but the change probably won't=20 show up on the anonymous cvs server for 24 hours. You didn't specify which components were broken, so if this doesn't=20 solve the problem or other components need a similar workaround on=20 Windows, please let me know. Hopefully, the 3D border offset is the=20 same on Win98, 2K, XP; I can only check it on Win2K. And thanks for reporting the issue! Remember folks, if something seems=20= broke, it probably is, but I may not realize it, so you have to report=20= the problem for it to get fixed. :) ka= |
From: ralph h. <1st...@1I...> - 2004-04-23 11:58:28
|
I notice this behavior as well. I guess I wasn't aware that the functionality changed. --- "Uwe Schmitt" <sc...@nu...> wrote: Hi, I used a new version of PythonCard these days and observed a difference when using the resource editor: if I click at a widget for editing its properties, the widget moves, which makes some trouble because every time I change something, I have to correct the coordinates manually. PythonCard version is 0.7.2, OS is Windows XP, Greetings, Uwe ------------------------------------------------------- This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek For a limited time only, get FREE Ground shipping on all orders of $35 or more. Hurry up and shop folks, this offer expires April 30th! http://www.thinkgeek.com/freeshipping/?cpg=12297 _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Uwe S. <sc...@nu...> - 2004-04-23 09:12:12
|
Hi, I used a new version of PythonCard these days and observed a difference when using the resource editor: if I click at a widget for editing its properties, the widget moves, which makes some trouble because every time I change something, I have to correct the coordinates manually. PythonCard version is 0.7.2, OS is Windows XP, Greetings, Uwe |
From: Kevin A. <al...@se...> - 2004-04-22 20:50:51
|
On Apr 22, 2004, at 1:32 PM, ralph heimburger wrote: > I am implementing a pass-through security scheme in where I get the > login name and then inspect a users table. > > Depending on their access capabilities, I would like to Disable the > Delete and Update buttons on the form (Inquiry Mode). > > I tried: > self.components.DeleteButton.disable() > > Obviously this is not the correct method. self.components.DeleteButton.enabled = False PythonCard uses component attributes for this type of common operation. These are listed in the property editor when you're using the resourceEditor and you can play with them interactively at runtime in the shell or runtime property editor as well. Here is the output from the widgets.py Create Component Docs... command. http://pythoncard.sourceforge.net/framework/components/Button.html Since PythonCard components are wxPython subclasses it is legal to use the Disable() method, but using attributes is preferred; note the CamelCase naming style of wxPython methods. The docs will be updated to show True and False for boolean attributes instead of 1 and 0: default, enabled, and visible. ka |
From: ralph h. <1st...@1I...> - 2004-04-22 20:32:11
|
I am implementing a pass-through security scheme in where I get the login name and then inspect a users table. Depending on their access capabilities, I would like to Disable the Delete and Update buttons on the form (Inquiry Mode). I tried: self.components.DeleteButton.disable() Obviously this is not the correct method. _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Kevin A. <al...@se...> - 2004-04-22 20:17:18
|
In release 0.8 the PythonCard About dialog has been moved from debug.py to its own module so that it can be more easily used by any PythonCard app. You can look at the code in cvs. http://cvs.sourceforge.net/viewcvs.py/pythoncard/PythonCard/about.py Right now it is the same simplistic ScrolledMessageDialog that it used to be. However, I thought it would be fun to have a contest for the PythonCard About dialog so I'm accepting submissions for the About dialog that we'll use in release 0.8 and above. Submissions will be accepted from now through Sunday, May 9th, which gives you just over two weeks. Submissions will then be voted on and in case of a tie, I will have the deciding vote. While the winner will become the standard PythonCard About dialog, at least a few of the runners up will probably be included in the about.py module so they are also available. If all of the submissions are great, we'll include them all :) The rule set below seems overly long, but I want to be as clear as possible. Rules (these may be modified if needed) * The information displayed should be in English. We may provide alternate language versions of the dialog in the future, but for the purposes of selecting a winner, everyone should use English for their submissions. * You can use raw wxPython capabilities if needed. * The dialog must work on Windows, Mac OS X, and Linux. It is okay to use alternative layouts and capabilities for each platform, but I don't want to encourage the use of a dialog that only looks good on one platform. For example, using some fancy Flash on Windows might not be acceptable. * The About dialog should be a CustomDialog subclass. See the various samples for examples: dbBrowser, dialogs, jabberChat, pysshed, codeEditor, templates.dialogs.findDialog, codeEditor, resourceEditor. You will probably want to use the resourceEditor to create your dialog. * You should supply a function wrapper, again see the samples for examples of how to do this. The function def should be: def aboutPythonCardDialog(parent=None): * While your design and code will be given attribution in the about.py module, it may not carry with it any license. This will be a fundamental part of PythonCard, so it will use the BSD style license we've already adopted. * You may not use any artwork, images, other media, or source that you don't own the rights to. * There should be some space for a PythonCard logo, at least 100 x 50 pixels. The logo will be a separate contest, but feel free to create your own as a placeholder. * The dialog should be no larger than 600 x 400 so it fits on all displays. * There should be a hypertext link to http://www.pythoncard.org/. Use the Python webbrowser module to launch the web page. The link can be a button, Image, ImageButton, StaticText with mouseDown handler, etc. * At least a minimum set of debug system info should be displayed similar to the current About dialog: version info for PythonCard, wxPython, Python, and the operating system platform. There is no need to include PyCrust. If the information is not selectable and copyable to the clipboard, then a button should be provided to put the information in the clipboard. * You do not need to display all the info in the current About dialog, even the one-line PythonCard description is optional, but there should be something that says what PythonCard is. Additional guidelines: * The submission should be sent to the mailing list as a zip of all the required files or as a URL to the source so that everyone can try the dialog out. If you have questions before you make a final submissiion, you can send the dialog and questions to me <al...@se...>. * It is okay to use release 0.7.3.1 or 0.8 naming conventions. All entries included in about.py be converted to the 0.8 API if needed. * You can request feedback from the list and modify your design up until the deadline, but if you do so, I suggest maintaining the source on your own site rather than sending zipped revisions continually to the mailing list. If you don't have a site for storage, it can probably be hosted on pythoncard.sf.net. Hopefully, that gives everyone enough freedom to create something that looks great. If any of the guidelines above are unclear or you think we should have different requirements, feel free to reply. ka |
From: Kevin A. <al...@se...> - 2004-04-22 18:37:46
|
Since at a minimum we're a couple of weeks away from being able to make a 0.8 release I thought it would be good to give a progress report. The short story is that we're making a lot of progress and the framework is already much cleaner and the API exposed to user code is more consistent. I was able to build a set of docs using epydoc that are suitable for framework developers and we might put that online or at least describe how to do it yourself; the last epydoc release needs a small patch to work with wxPython. I'm still trying to figure out if I can suppress particular subclasses and/or CamelCase methods to make it suitable for generating some user docs from source. I have not started the migration guide yet, but it should be pretty clear from the changelog below where your own code will need to be changed. The nice thing about the new package name is that you can run PythonCardPrototype and PythonCard at the same time with the caveat that release 0.8 requires Python 2.3.x and wxPython 2.5.x. cvs is changing each day, usually multiple times a day, so if you're interested in keeping up with the changes and helping test stuff then you should probably contact me directly via email or the irc channel #pythoncard on irc.freenode.net. When cvs starts to stabilize I'll make another request for testers on various platforms. There is an additional complication with the files in the pythoncard_config dir such as the stc-styles.rc.cfg file which is not compatible between PythonCardPrototype and PythonCard; that file is used if you run the codeEditor or run any sample with the runtime tools. I may rename that file to avoid a conflict when upgrading, but I haven't decided yet. The same issue might arise with other config files. I'm in the midst of the 'selection' and 'stringSelection' attribute change below. It is a big change, so I'm doing it in stages. As always, comments and questions are welcome. Any decision I deem worthy of discussion will get posted here, for the most part the stuff below are things where Rowland and I already knew the "right answer" or it had been covered in an earlier list discussion. http://wiki.wxpython.org/index.cgi/PythonCard08 Release 0.8 2004-05-?? [progress as of 2004-04-22] updated Choice, ComboBox, List, RadioGroup to use 'selection' and 'stringSelection' attributes instead of mixed-capability 'selected' and 'selection' attribute see migration guide for more info added templates sub-package to hold common backgrounds and dialogs updated all samples and tools to use lowercase skip() removed CamelCase methods from BitmapCanvas (Draw -> draw) changed Component __init__ init underlying control before Widget class added makeNewId function removed postInit event binding is now part of component init removed getId() from Widget, using GetId() calls in framework *ROWLAND describe binding and spec changes here* added SetValue workaround for TextArea component on Windows removed dispatch.py and moved classes to event.py SetFocus -> setFocus Hide/Show -> visible attribute added visible, position, and size properties to tool windows added Tom Jacobs' montyhall sample added about.py module added About PythonCard dialog to codeEditor and resourceEditor added singleton.py module used by configuration.py, log.py, registry.py, and resource.py removed Ptr classes from isinstance checks removed old addresses052.py sample renamed res.py to resource.py replaced the use of __getattr__ and __setattr__ in Font, StatusBar, and Widget classes with property(), so those classes and components no longer have restrictive attribute access this change also eliminated the need for the _createAttributes and _getAttributeNames methods changed to wx.Frame for runtime tools on Windows to make them the same across platforms removed conditional code check PyCrust since PyCrust is a standard part of wxPython now added createStatusBar method to Background and CustomDialog classes so applications can override that method if they want to use a more complex StatusBar made statusbar.StatusBar a direct subclass of wx.StatusBar renamed PythonCardApp to Application refactored config.py to configuration.py removed PythonCardObject and all references to it removed ObjectMap and all references to it removed ObjectLookup and all references to it changed on_openBackground to on_initialize renamed pom.py to component.py added test.py added timer.py module and simple Timer wrapper added deactivate event to Background updated sound.py to use wx.Sound changed model.py to require Python >= 2.3 and wxPython >= 2.5 converted DC methods to use tuples instead of separate x, y and width, height args changed wx.NULL to None switched to wx package from wxPython import changed to import wx changed wx.wx style prefixes to wx. except for wx.wxEVT constants changed wx.wxHtmlEasyPrinting to wx.html.HtmlEasyPrinting changed default on Message Watcher to show unused events PythonCardPrototype package renamed to PythonCard all references to Prototype updated in source and docs ka |
From: ralph h. <1st...@1I...> - 2004-04-22 16:26:45
|
Thanks for the input and tips. Being a staunch DataFlex proponent for many years, I can truly see that Python is a far superior language! Quick question In getting the current user (login id), I saw that apparently in Python 2.3.3 the geteuid() method of the os class is no longer supported. I found this somehwhere and it appears to work: self.currentuser=getpass.getuser() Does anyone know if this is supported across platforms? --- "Kevin Altis" <al...@se...> wrote: On Apr 22, 2004, at 7:41 AM, ralph heimburger wrote: > If have a loseFocus event coded as follows: > > def on_SSN_loseFocus(self, event): > > ssnn=self.fmtString(string.replace(self.components.SSN.text,"-",""),'^^ > ^-^^-^^^^') > if len(ssnn) == 11: > self.components.SSN.text = ssnn > else: > msg='SSN Must contain all 9 digits!' > result=self.showAlert(msg,'SSN Validation Error') > > I am validation the SS number and if it's "invalid" I report an error > in an alert. I want to "refocus" to the same textfield. What is the > "get focus" event? The method is called setFocus. So you'll want to call self.components.SSN.setFocus(). You may want to select all the text in the field as well and/or set the insertion point. I have a few of comments about the event handler above that might help improve your code. * Use closeField instead of loseFocus, closeField will only occur when the contents of the field change. * You can use event.target to refer to the component receiving the event, so in the case above event.target would be the same as self.components.SSN because you are in an event handler for SSN. Using event.target also makes it easier to change component names because then you only have to update the event handler name. * Use string methods instead of the string module functions. Using event.target the code becomes: ssnn=self.fmtString(event.target.text.replace("-",""),'^^^-^^-^^^^') * If you don't need the result for a dialog, then you don't have to store the result, so you can get rid of the result= above. Hope that helps. ka _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: Kevin A. <al...@se...> - 2004-04-22 15:09:02
|
On Apr 22, 2004, at 7:41 AM, ralph heimburger wrote: > If have a loseFocus event coded as follows: > > def on_SSN_loseFocus(self, event): > > ssnn=self.fmtString(string.replace(self.components.SSN.text,"-",""),'^^ > ^-^^-^^^^') > if len(ssnn) == 11: > self.components.SSN.text = ssnn > else: > msg='SSN Must contain all 9 digits!' > result=self.showAlert(msg,'SSN Validation Error') > > I am validation the SS number and if it's "invalid" I report an error > in an alert. I want to "refocus" to the same textfield. What is the > "get focus" event? The method is called setFocus. So you'll want to call self.components.SSN.setFocus(). You may want to select all the text in the field as well and/or set the insertion point. I have a few of comments about the event handler above that might help improve your code. * Use closeField instead of loseFocus, closeField will only occur when the contents of the field change. * You can use event.target to refer to the component receiving the event, so in the case above event.target would be the same as self.components.SSN because you are in an event handler for SSN. Using event.target also makes it easier to change component names because then you only have to update the event handler name. * Use string methods instead of the string module functions. Using event.target the code becomes: ssnn=self.fmtString(event.target.text.replace("-",""),'^^^-^^-^^^^') * If you don't need the result for a dialog, then you don't have to store the result, so you can get rid of the result= above. Hope that helps. ka |
From: ralph h. <1st...@1I...> - 2004-04-22 14:42:07
|
If have a loseFocus event coded as follows: def on_SSN_loseFocus(self, event): ssnn=self.fmtString(string.replace(self.components.SSN.text,"-",""),'^^^-^^-^^^^') if len(ssnn) == 11: self.components.SSN.text = ssnn else: msg='SSN Must contain all 9 digits!' result=self.showAlert(msg,'SSN Validation Error') I am validation the SS number and if it's "invalid" I report an error in an alert. I want to "refocus" to the same textfield. What is the "get focus" event? _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: ralph h. <1st...@1I...> - 2004-04-22 14:39:22
|
In my version it was line 230. I just replaced the code. thanks. --- "Kevin Altis" <al...@se...> wrote: I just found a bug in 0.7.3 and 0.7.3.1 with the resourceEditor property editor. I made an editing mistake in revision 1.33 on January 25th and just never caught it before. It will be fixed in release 0.8, but you might want to change your copy of 0.7.3.x if you see the resourcEditor throw this kind of exception: File "C:\python\PythonCard\tools\resourceEditor\modules\propertyEditor.py", line 228, in on_wUpdate_mouseClick self.comp(wName, self._comp[wName].__class__.__name__) AttributeError: 'PropertyEditor' object has no attribute 'comp' That method call should be self.selectComponentList instead of self.comp, so the line should read: self.selectComponentList(wName, self._comp[wName].__class__.__name__) I don't want to go through the hassle of doing a 0.7.3.2 release to fix this one line even though it is pretty critical if you're using the resourceEditor. ka ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Pythoncard-users mailing list Pyt...@li... https://lists.sourceforge.net/lists/listinfo/pythoncard-users _____________________________________________________________ ======================================= www.StrictlyEmail.com ...our name says it all! |
From: gaston <ga...@nt...> - 2004-04-21 22:21:46
|
Kevin Altis wrote: >I just found a bug in 0.7.3 and 0.7.3.1 with the resourceEditor property >editor. I made an editing mistake in revision 1.33 on January 25th and just >never caught it before. It will be fixed in release 0.8, but you might want >to change your copy of 0.7.3.x if you see the resourcEditor throw this kind >of exception: > > File >"C:\python\PythonCard\tools\resourceEditor\modules\propertyEditor.py", line >228, in on_wUpdate_mouseClick > self.comp(wName, self._comp[wName].__class__.__name__) >AttributeError: 'PropertyEditor' object has no attribute 'comp' > >That method call should be self.selectComponentList instead of self.comp, so >the line should read: > > self.selectComponentList(wName, self._comp[wName].__class__.__name__) > >I don't want to go through the hassle of doing a 0.7.3.2 release to fix this >one line even though it is pretty critical if you're using the >resourceEditor. > >ka > > > >------------------------------------------------------- >This SF.Net email is sponsored by: IBM Linux Tutorials >Free Linux tutorial presented by Daniel Robbins, President and CEO of >GenToo technologies. Learn everything from fundamentals to system >administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click >_______________________________________________ >Pythoncard-users mailing list >Pyt...@li... >https://lists.sourceforge.net/lists/listinfo/pythoncard-users > > > > Thanks, actually I'm using it for just about a week ago. Good to know I can fix this. Thanks, the pythoncard is great work. Gaston. |
From: Kevin A. <al...@se...> - 2004-04-21 21:17:21
|
I just found a bug in 0.7.3 and 0.7.3.1 with the resourceEditor property editor. I made an editing mistake in revision 1.33 on January 25th and just never caught it before. It will be fixed in release 0.8, but you might want to change your copy of 0.7.3.x if you see the resourcEditor throw this kind of exception: File "C:\python\PythonCard\tools\resourceEditor\modules\propertyEditor.py", line 228, in on_wUpdate_mouseClick self.comp(wName, self._comp[wName].__class__.__name__) AttributeError: 'PropertyEditor' object has no attribute 'comp' That method call should be self.selectComponentList instead of self.comp, so the line should read: self.selectComponentList(wName, self._comp[wName].__class__.__name__) I don't want to go through the hassle of doing a 0.7.3.2 release to fix this one line even though it is pretty critical if you're using the resourceEditor. ka |