SourceForge logo
SourceForge logo
Menu

pythoncard-devel — PythonCard Developers List

You can subscribe to this list here.

2005 Jan
Feb
Mar
(1)
Apr
(21)
May
(24)
Jun
Jul
(16)
Aug
(28)
Sep
(5)
Oct
(4)
Nov
(2)
Dec
(25)
2006 Jan
(9)
Feb
(1)
Mar
(3)
Apr
(5)
May
(24)
Jun
(5)
Jul
(2)
Aug
(3)
Sep
(4)
Oct
(8)
Nov
(37)
Dec
(25)
2007 Jan
Feb
Mar
Apr
May
Jun
(4)
Jul
(1)
Aug
Sep
(1)
Oct
Nov
Dec
2008 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(10)
Nov
(1)
Dec
(2)
2009 Jan
Feb
Mar
Apr
May
Jun
Jul
(2)
Aug
Sep
Oct
Nov
Dec

Showing results of 236

<< < 1 .. 4 5 6 7 8 .. 10 > >> (Page 6 of 10)
From: Kevin A. <al...@se...> - 2005年12月26日 23:49:27
On Dec 26, 2005, at 3:29 PM, Alex Tweedly wrote:
> Kevin Altis wrote:
>
>> I haven't scanned through all of the cvs commits for the last year or 
>> so, but the changelog.txt for 0.8.2 definitely doesn't reflect all of 
>> the additions and fixes that have been done, especially the new 
>> samples and tools. Feel free to add some descriptive lines for each 
>> of your contributions. As we approach an actual release I'll add, 
>> trim and edit as necessary to the changelog if you (Alex, Andy, Phil, 
>> etc.) don't have time.
>>
> Sorry Kevin - I had totally forgotten to add anything to changelog.txt
>
> I've put added brief description for most things I did - but should 
> probably put in a longer description or documentation somewhere for 
> the multiresourceEditor (and maybe tabcodeEditor).
>
> -- 
> Alex Tweedly http://www.tweedly.net
>
Thanks Alex. readme.txt should be adequate for both of the new apps. Do 
you think multiresourceEditor should have a shortcut in 0.8.2 or wait 
another release?
I need to look at my script for generating the samples HTML from the 
readme.txt files and run through it again for the new stuff.
ka
From: Alex T. <al...@tw...> - 2005年12月26日 23:28:32
Kevin Altis wrote:
> I haven't scanned through all of the cvs commits for the last year or 
> so, but the changelog.txt for 0.8.2 definitely doesn't reflect all of 
> the additions and fixes that have been done, especially the new 
> samples and tools. Feel free to add some descriptive lines for each of 
> your contributions. As we approach an actual release I'll add, trim 
> and edit as necessary to the changelog if you (Alex, Andy, Phil, etc.) 
> don't have time.
>
Sorry Kevin - I had totally forgotten to add anything to changelog.txt
I've put added brief description for most things I did - but should 
probably put in a longer description or documentation somewhere for the 
multiresourceEditor (and maybe tabcodeEditor).
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.5/212 - Release Date: 23/12/2005
From: Kevin A. <al...@se...> - 2005年12月26日 08:59:52
I haven't scanned through all of the cvs commits for the last year or 
so, but the changelog.txt for 0.8.2 definitely doesn't reflect all of 
the additions and fixes that have been done, especially the new samples 
and tools. Feel free to add some descriptive lines for each of your 
contributions. As we approach an actual release I'll add, trim and edit 
as necessary to the changelog if you (Alex, Andy, Phil, etc.) don't 
have time.
ka
From: Kevin A. <al...@se...> - 2005年12月24日 21:32:30
I uploaded the updated version along with all of the fixed images.
It may not be of use to either of you, but I also checked in the batch 
file I use to upload all of the images at once using the pscp program 
included with PuTTY (Windows). I just built the file list with a quick 
little script in the shell and output it to .bat file.
ka
From: Kevin A. <al...@se...> - 2005年12月24日 04:57:03
On Dec 23, 2005, at 6:16 PM, Kevin Altis wrote:
> See my "Re: ignore Raise/Lower comment for now" message at:
>
> http://news.gmane.org/gmane.comp.python.wxpython.devel
>
> What I'm still not sure about is why the resourceEditor widget 
> reordering doesn't appear to work on Windows or the Mac. I'm going to 
> dig further and see where we broke this since it should at least do 
> the right thing on at least one of the platforms. So far it appears 
> that fixComponentOrder is not actually being called when it should be 
> which certainly is a problem, so I need to figure out when and why 
> that was changed.
>
> ka
I think I may have got it. As far as I can tell, Lower() doesn't always 
work, but Raise() does, so I simply changed the code to do a little 
extra work...
 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()
...
Since fixComponentOrder is always called this appears to work correctly 
on the Mac as well. I'm still tempted to call Lower() on the Mac when a 
component is created in model.py but that is a separate issue. Anyway, 
I'll let this sit for a bit, so let me know if you notice any behavior 
that seems wrong. I don't want to start changing code to reverse the 
Property Editor list or change the current Front/Back semantics until 
we know this works correctly. I'll assume the developers are still in 
favor of reversing the Front/Back semantics, so I'll look at that next.
ka
From: Kevin A. <al...@se...> - 2005年12月24日 02:16:28
See my "Re: ignore Raise/Lower comment for now" message at:
http://news.gmane.org/gmane.comp.python.wxpython.devel
What I'm still not sure about is why the resourceEditor widget 
reordering doesn't appear to work on Windows or the Mac. I'm going to 
dig further and see where we broke this since it should at least do the 
right thing on at least one of the platforms. So far it appears that 
fixComponentOrder is not actually being called when it should be which 
certainly is a problem, so I need to figure out when and why that was 
changed.
ka
From: Alex T. <al...@tw...> - 2005年12月24日 00:24:23
Kevin Altis wrote:
> This was a fairly extensive update, so I would appreciate it if you 
> can go over it when you have time just to make sure I didn't bugger 
> something up. I am purposely putting all pre blocks against the left 
> edge of the document to make it easier to see the indent spacing, 
> especially since some code blocks are meant to be inserted into an 
> existing method.
>
Checked over the diffs, and the finished result, and all looks good to me.
> The instructions appeared to be missing an import wx statement so I 
> added that so that the wx.WakeUpIdle would actually work if you 
> followed the steps.
>
> Walkthrough2.html and timers-threads.html have also been uploaded to 
> the main site. I'm going to get the updated 
> resource_editor_overview.html with all its updated images up next.
I will check each one you upload - but won't say anything unless there's 
a problem or question.
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.5/212 - Release Date: 23/12/2005
From: Kevin A. <al...@se...> - 2005年12月23日 20:10:06
This was a fairly extensive update, so I would appreciate it if you can 
go over it when you have time just to make sure I didn't bugger 
something up. I am purposely putting all pre blocks against the left 
edge of the document to make it easier to see the indent spacing, 
especially since some code blocks are meant to be inserted into an 
existing method.
The instructions appeared to be missing an import wx statement so I 
added that so that the wx.WakeUpIdle would actually work if you 
followed the steps.
Walkthrough2.html and timers-threads.html have also been uploaded to 
the main site. I'm going to get the updated 
resource_editor_overview.html with all its updated images up next.
ka
From: Alex T. <al...@tw...> - 2005年12月23日 02:02:21
Kevin Altis wrote:
> I've updated walkthrough2.html to use <pre> instead of the div code 
> block. This was only done for code that is meant to be copied and 
> pasted, so not the inline bits in a paragraph, just where we used to 
> have non-breaking spaces in use. If this looks ok and works fine for 
> both of you I will update other docs to the same form over the next 
> day or two.
Looks and works fine for me (Firefox and IE - on Windows).
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.3/209 - Release Date: 21/12/2005
From: Kevin A. <al...@se...> - 2005年12月22日 18:26:31
I've updated walkthrough2.html to use <pre> instead of the div code 
block. This was only done for code that is meant to be copied and 
pasted, so not the inline bits in a paragraph, just where we used to 
have non-breaking spaces in use. If this looks ok and works fine for 
both of you I will update other docs to the same form over the next day 
or two.
ka
From: Alex T. <al...@tw...> - 2005年12月19日 22:54:31
Kevin Altis wrote:
>
> Alex I have updated your project permissions so you should be able to 
> close tracker items as well as receive notifications on items. If this 
> isn't working let me know and I'll double-check the changes on SF. 
> They changed the UI again so I may not have changed all the flags.
>
That did it - thank you Kevin.
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/206 - Release Date: 16/12/2005
From: Kevin A. <al...@se...> - 2005年12月19日 02:47:40
On Dec 18, 2005, at 12:41 PM, Alex Tweedly wrote:
> Andrew Todd wrote:
>
>> Alex Tweedly wrote:
>>
>>>
>>> I just fixed a trivial bug in the docs, in response to the entry in 
>>> the SourceForge bugs list.
>>>
>>> How do I update the bug entry ?
>>>
>>
>> Just make sure that you are logged in to SourceForge and then select 
>> the particular bug or feature request you would like to update.
>>
>> Scroll to the bottom of the page, make any changes you require - 
>> usually just the addition of a comment and/or a change to the status 
>> and then press the 'Submit Changes' button at the bottom.
>>
> I can add comments - but I can't change status (or other similar 
> fields). The "?" next to status says "... this drop-down box ...." but 
> for me it's not a drop-down box, merely a title. Maybe only an admin 
> can update the fields, while anyone can add comments.
>
Alex I have updated your project permissions so you should be able to 
close tracker items as well as receive notifications on items. If this 
isn't working let me know and I'll double-check the changes on SF. They 
changed the UI again so I may not have changed all the flags.
ka
From: Alex T. <al...@tw...> - 2005年12月18日 20:41:38
Andrew Todd wrote:
> Alex Tweedly wrote:
>
>>
>> I just fixed a trivial bug in the docs, in response to the entry in 
>> the SourceForge bugs list.
>>
>> How do I update the bug entry ?
>>
>
> Just make sure that you are logged in to SourceForge and then select 
> the particular bug or feature request you would like to update.
>
> Scroll to the bottom of the page, make any changes you require - 
> usually just the addition of a comment and/or a change to the status 
> and then press the 'Submit Changes' button at the bottom.
>
I can add comments - but I can't change status (or other similar 
fields). The "?" next to status says "... this drop-down box ...." but 
for me it's not a drop-down box, merely a title. Maybe only an admin can 
update the fields, while anyone can add comments.
> Don't forget that you can use the SourceForgeTracker sample to look at 
> the data before venturing onto the web.
I'll try that out - thanks.
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/206 - Release Date: 16/12/2005
From: Kevin A. <al...@se...> - 2005年12月18日 17:13:10
Robin is back. He has started going through his backlog of email and is 
making test builds of wxPython.
ka
From: Andrew T. <an...@ha...> - 2005年12月18日 05:12:23
Alex Tweedly wrote:
> 
> I just fixed a trivial bug in the docs, in response to the entry in the 
> SourceForge bugs list.
> 
> How do I update the bug entry ?
> 
Just make sure that you are logged in to SourceForge and then select the 
particular bug or feature request you would like to update.
Scroll to the bottom of the page, make any changes you require - usually 
just the addition of a comment and/or a change to the status and then 
press the 'Submit Changes' button at the bottom.
Don't forget that you can use the SourceForgeTracker sample to look at 
the data before venturing onto the web.
Regards,
Andy
-- 
--------------------------------------------------------------------------------
 From the desk of Andrew J Todd esq - http://www.halfcooked.com/
From: Alex T. <al...@tw...> - 2005年12月17日 15:14:34
I just fixed a trivial bug in the docs, in response to the entry in the 
SourceForge bugs list.
How do I update the bug entry ?
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.371 / Virus Database: 267.14.1/206 - Release Date: 16/12/2005
From: AVS <md...@ho...> - 2005年12月08日 21:19:29
Hello Pythoncard-devel,
At this time we can offer a small update at our system - LS-L0 LITA and LITTLE CUTIES!
Studio and our little stars are proud to present their new project. You can 
now compare this one with our other sites, judge the level of professionalism 
and exposure of subject, with have never been so high! Starign from over 
4,000 HQ pics, the project features sets made in the studio, as well as on 
the side of nature. 
 http://Cherokee.offer4in1.com/6/?subcontract
 
Our great and unique offer: for each subscribtion You get access to another
three sites from our portal for 31 days... without any additional payments!
Simply subscribe, select and use!
MSGID: 8WoBArE9RyRtKqwantweYDTpyc7pQ83O
From: Andy T. <an...@ha...> - 2005年11月12日 01:52:32
Phil Edwards wrote:
> Just another thought that has occurred to me which I'd appreciate some
> feedback on.
> 
> In the current build of the RPMs for PythonCard, only the samples
> launcher itself is made executable. In response to a bug report filed by
> someone earlier in the year I looked at what would be involved in
> shipping the RPM so that *all* of the samples were set to be executable,
> meaning that a given sample app could be run directly without having to
> either type 'python /path/to/required/sample' or explicitly fire up the
> samples launcher. It's simple to do, just requiring some extra 'chmod
> 755' lines in the RPM spec file.
> 
> Does anybody have any strong feelings on this one way or the other?
> 
Sounds like a good plan. We should also make the tool applications 
executable as well.
It would be a benefit in the Debian package as well.
Does this need to be in the packaging scripts? Or can we just set the 
file permissions in CVS and let distutils take care of it for us?
Regards,
Andy
-- 
--------------------------------------------------------------------------------
 From the desk of Andrew J Todd esq - http://www.halfcooked.com/
From: Phil E. <ph...@li...> - 2005年11月10日 12:57:13
Just another thought that has occurred to me which I'd appreciate some
feedback on.
In the current build of the RPMs for PythonCard, only the samples
launcher itself is made executable. In response to a bug report filed by
someone earlier in the year I looked at what would be involved in
shipping the RPM so that *all* of the samples were set to be executable,
meaning that a given sample app could be run directly without having to
either type 'python /path/to/required/sample' or explicitly fire up the
samples launcher. It's simple to do, just requiring some extra 'chmod
755' lines in the RPM spec file.
Does anybody have any strong feelings on this one way or the other?
-- 
Phil Edwards
Brighton, UK
From: Alex T. <al...@tw...> - 2005年10月19日 22:15:02
{'application':{'type':'Application',
 'name':'Template',
 'backgrounds': [
 {'type':'Background',
 'name':'bgTemplate',
 'title':'resourceEditor Property Editor',
 'size':(416, 619),
 'statusBar':1,
 'visible':0,
 'components': [
{'type':'CheckBox', 
 'name':'alphabetizeComponents', 
 'position':(5, 231), 
 'label':'Alphabetize Components', 
 },
{'type':'CheckBox', 
 'name':'chkallowNameLabelVariation', 
 'position':(149, 24), 
 'size':(70, -1), 
 'label':'Vary', 
 },
{'type':'ImageButton', 
 'name':'SendToBack', 
 'position':(8, 301), 
 'size':(24, 32), 
 'border':'3d', 
 'command':'componentSendBack', 
 'file':'images/send_to_back.png', 
 'toolTip':'Send component(s) to back', 
 },
{'type':'ImageButton', 
 'name':'MoveBack', 
 'position':(32, 301), 
 'size':(24, 32), 
 'border':'3d', 
 'command':'componentMoveBack', 
 'file':'images/move_back.png', 
 'toolTip':'Move component(s) towards back', 
 },
{'type':'ImageButton', 
 'name':'reLayer', 
 'position':(56, 333), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'componentRelayer', 
 'file':'images/relayer.png', 
 'toolTip':'Re-layer components, top-left to bottom right', 
 },
{'type':'ImageButton', 
 'name':'MoveTogether', 
 'position':(56, 301), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'componentMoveTogether', 
 'file':'images/move_together.png', 
 'toolTip':'Gather components together', 
 },
{'type':'ImageButton', 
 'name':'MoveForward', 
 'position':(88, 301), 
 'size':(24, 32), 
 'border':'3d', 
 'command':'componentMoveForward', 
 'file':'images/move_forward.png', 
 'toolTip':'Move component(s) towards front', 
 },
{'type':'ImageButton', 
 'name':'SendToFront', 
 'position':(112, 301), 
 'size':(24, 32), 
 'border':'3d', 
 'command':'componentBringFront', 
 'file':'images/send_to_front.png', 
 'toolTip':'Send component(s) to front', 
 },
{'type':'StaticText', 
 'name':'Properties', 
 'position':(214, 6), 
 'text':'Properties', 
 },
{'type':'StaticText', 
 'name':'txtname', 
 'position':(160, 24), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'name', 
 },
{'type':'TextField', 
 'name':'fldname', 
 'position':(250, 20), 
 'size':(148, -1), 
 },
{'type':'StaticText', 
 'name':'txtlabel', 
 'position':(160, 56), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'Label', 
 },
{'type':'StaticText', 
 'name':'txttextArea', 
 'position':(160, 56), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'Text', 
 },
{'type':'StaticText', 
 'name':'txttext', 
 'position':(160, 56), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'Text', 
 },
{'type':'StaticBox', 
 'name':'stbAlign', 
 'position':(194, 59), 
 'size':(166, 114), 
 'label':'ALIGN', 
 },
{'type':'TextField', 
 'name':'fldtext', 
 'position':(250, 52), 
 'size':(148, -1), 
 },
{'type':'TextField', 
 'name':'fldlabel', 
 'position':(250, 52), 
 'size':(148, -1), 
 },
{'type':'ImageButton', 
 'name':'alignTop', 
 'position':(236, 79), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_top.png', 
 'toolTip':'Align component tops', 
 },
{'type':'TextArea', 
 'name':'fldtextArea', 
 'position':(250, 52), 
 'size':(148, 55), 
 },
{'type':'ImageButton', 
 'name':'alignVerticalCentres', 
 'position':(315, 81), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_vert_centres.png', 
 'toolTip':'Align component centres in a vertical stack', 
 },
{'type':'CheckBox', 
 'name':'chkenabled', 
 'position':(150, 115), 
 'size':(80, -1), 
 'command':'checkedProperty', 
 'label':'Enabled', 
 },
{'type':'ImageButton', 
 'name':'alignLeft', 
 'position':(200, 112), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_left.png', 
 'toolTip':'Align component left edges', 
 },
{'type':'CheckBox', 
 'name':'chkvisible', 
 'position':(230, 115), 
 'size':(80, -1), 
 'command':'checkedProperty', 
 'label':'Visible', 
 },
{'type':'ImageButton', 
 'name':'alignRight', 
 'position':(270, 112), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_right.png', 
 'toolTip':'Align component right edges', 
 },
{'type':'CheckBox', 
 'name':'chkchecked', 
 'position':(310, 115), 
 'size':(80, -1), 
 'command':'checkedProperty', 
 'label':'Checked', 
 },
{'type':'StaticText', 
 'name':'txtbackgroundColor', 
 'position':(160, 160), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'backgroundColor', 
 },
{'type':'ImageButton', 
 'name':'alignBottom', 
 'position':(236, 140), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_bottom.png', 
 'toolTip':'Align component bottoms', 
 },
{'type':'ImageButton', 
 'name':'alignHorizontalCentres', 
 'position':(314, 139), 
 'size':(24, 24), 
 'border':'3d', 
 'command':'align', 
 'file':'images/align_horiz_centres.png', 
 'toolTip':'Align component centres in a horizontal line', 
 },
{'type':'TextField', 
 'name':'fldbackgroundColor', 
 'position':(250, 160), 
 'text':'backgroundColor', 
 },
{'type':'TextField', 
 'name':'fldforegroundColor', 
 'position':(250, 135), 
 'text':'foregroundColor', 
 },
{'type':'Button', 
 'name':'clrforegroundColor', 
 'position':(356, 135), 
 'size':(35, -1), 
 'command':'color', 
 'label':'...', 
 },
{'type':'Button', 
 'name':'clrbackgroundColor', 
 'position':(356, 160), 
 'size':(35, -1), 
 'command':'color', 
 'label':'...', 
 },
{'type':'StaticText', 
 'name':'txtforegroundColor', 
 'position':(160, 140), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'foregroundColor', 
 },
{'type':'StaticText', 
 'name':'txtborder', 
 'position':(160, 215), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'Border', 
 },
{'type':'Choice', 
 'name':'popborder', 
 'position':(238, 210), 
 'size':(160, -1), 
 'items':[], 
 },
{'type':'StaticText', 
 'name':'txtfont', 
 'position':(160, 240), 
 'size':(84, -1), 
 'alignment':'right', 
 'text':'Font', 
 },
{'type':'TextField', 
 'name':'fldfont', 
 'position':(250, 234), 
 },
{'type':'Button', 
 'name':'fntfont', 
 'position':(350, 232), 
 'size':(55, -1), 
 'command':'changeFont', 
 'label':'Font...', 
 },
{'type':'StaticText', 
 'name':'txtposition', 
 'position':(150, 265), 
 'size':(42, -1), 
 'alignment':'right', 
 'text':'Position', 
 },
{'type':'StaticBox', 
 'name':'stbDistribute', 
 'position':(197, 179), 
 'size':(166, 101), 
 'label':'DISTRIBUTE', 
 },
{'type':'ImageButton', 
 'name':'distHorizEdge', 
 'position':(215, 199), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'distribute', 
 'file':'images/dist_horiz_edge.png', 
 'toolTip':'Distribute horizontally, edge-to-edge', 
 },
{'type':'ImageButton', 
 'name':'distVertEdge', 
 'position':(295, 199), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'distribute', 
 'file':'images/dist_vert_edge.png', 
 'toolTip':'Distribute vertically, edge-to-edge', 
 },
{'type':'TextField', 
 'name':'fldposition', 
 'position':(205, 260), 
 'size':(68, -1), 
 },
{'type':'ImageButton', 
 'name':'distHorizFirstLast', 
 'position':(215, 234), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'distribute', 
 'file':'images/dist_horiz_space.png', 
 'toolTip':'Distribute horizontally, first to last', 
 },
{'type':'StaticText', 
 'name':'txtsize', 
 'position':(290, 265), 
 'size':(31, -1), 
 'alignment':'right', 
 'text':'Size', 
 },
{'type':'ImageButton', 
 'name':'distVertFirstLast', 
 'position':(296, 233), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'distribute', 
 'file':'images/dist_vert_space.png', 
 'toolTip':'Distribute vertically, first to last', 
 },
{'type':'TextField', 
 'name':'fldsize', 
 'position':(330, 260), 
 'size':(68, -1), 
 },
{'type':'StaticBox', 
 'name':'stbEqualize', 
 'position':(197, 290), 
 'size':(166, 62), 
 'label':'EQUALIZE', 
 },
{'type':'ImageButton', 
 'name':'equalWidth', 
 'position':(214, 312), 
 'border':'3d', 
 'command':'equal', 
 'file':'images/equal_width.png', 
 'toolTip':'Equalize heights to those of the first component', 
 },
{'type':'ImageButton', 
 'name':'equalHeight', 
 'position':(265, 312), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'equal', 
 'file':'images/equal_height.png', 
 'toolTip':'Equalize heights to that of the first component', 
 },
{'type':'ImageButton', 
 'name':'equalBoth', 
 'position':(316, 312), 
 'size':(32, 32), 
 'border':'3d', 
 'command':'equal', 
 'file':'images/equal_both.png', 
 'toolTip':'Equalize width & height to those of the first component', 
 },
{'type':'ImageButton', 
 'name':'nudgeDown', 
 'position':(60, 454), 
 'size':(18, 24), 
 'border':'transparent', 
 'command':'nudge', 
 'file':'images/nudge_down.png', 
 'toolTip':'Nudge components down by specified distance', 
 },
{'type':'ImageButton', 
 'name':'nudgeUp', 
 'position':(60, 399), 
 'size':(18, 24), 
 'border':'transparent', 
 'command':'nudge', 
 'file':'images/nudge_up.png', 
 'toolTip':'Nudge components up by specified distance', 
 },
{'type':'Spinner', 
 'name':'nudgeDistance', 
 'position':(51, 430), 
 'size':(41, -1), 
 'max':4, 
 'min':1, 
 'toolTip':'Distance to nudge components', 
 'value':1, 
 },
{'type':'ImageButton', 
 'name':'nudgeRight', 
 'position':(100, 429), 
 'size':(18, 24), 
 'border':'transparent', 
 'command':'nudge', 
 'file':'images/nudge_right.png', 
 'toolTip':'Nudge components to right by specified distance', 
 },
{'type':'ImageButton', 
 'name':'nudgeLeft', 
 'position':(23, 430), 
 'size':(18, 24), 
 'border':'transparent', 
 'command':'nudge', 
 'file':'images/nudge_left.png', 
 'toolTip':'Nudge components to left by specified distance', 
 },
{'type':'StaticBox', 
 'name':'stbNudge', 
 'position':(3, 377), 
 'size':(141, 130), 
 'label':'NUDGE', 
 },
{'type':'Button', 
 'name':'wUpdate', 
 'position':(10, 518), 
 'label':'Update', 
 'toolTip':'Update changes', 
 },
{'type':'List', 
 'name':'wComponentList', 
 'position':(7, 21), 
 'size':(134, 204), 
 'items':[], 
 },
{'type':'StaticText', 
 'name':'stcNameClass', 
 'position':(5, 3), 
 'text':'Name : Class', 
 },
] # end components
} # end background
] # end backgrounds
} }
From: <bra...@om...> - 2005年10月19日 20:19:28
Some of the screens on my app need to have a large number of widgets, and 
I'm
finding this situation difficult to manage in propertyEditor and 
multiPropertyEditor.
I really want to be able to alphabetize the list of widgets, but even if 
that
feature existed, it would screw up the tab order.
Not only would it be nice to be able to alphabetize, it would be nice to 
order
by type of widget. 
Why? Because it's difficult to locate the widget I need to work with. It 
doesn't matter
that I have a consistent naming convention--lacking no consistent sorting 
order, I have
a lot of trouble locating the desired widget in the list. On some screens, 
the list is just
too long.
Why not just click the desired widget? Sometimes that's not an option, for
instance when a staticBox is in the way, or the widget is invisible.
I really think tab order should be a separate list from the list of all 
widgets.
After all, not every widget is tab-focusable (StaticText, StaticBox, 
StaticLine).
And making that separation will allow us to refine the MultiPropertyEditor 
GUI
to do nice things like widget sorting.
Brad Allen
IT Desktop Support
Omnicom Management Services
Dallas, TX
http://www.omsdal.com 
From: Alex T. <al...@tw...> - 2005年10月13日 01:23:49
Andy Todd wrote:
> I say go for it. I'm giving a presentation at the Australian open 
> source developer's conference [1] in about six weeks and this will 
> help answer the first question I'll get [2].
>
> As Brad says it doesn't impact or break any other part of the 
> framework, and if it's in CVS I'm more likely to test it.
>
Done.
As I said before, I've tried most of the samples using it - and it 
pretty well works for most of them that I'd expect it to work for. I'd 
be grateful to hear of any other experience with it - good or bad.
>
> [1] http://www.osdc.com.au/
> [2] Which is always "when will you support sizers"
I'd still like to support more complex sizers - but every time I think 
about adding sizers to resourceEditor, it feels like it's straying too 
far from "easy to use" and "intuitive layout". So if anyone knows of a 
UI editor that supports sizers and is easy (or relatively) easy to use, 
please let me know and I'll take a look at it.
-- 
Alex Tweedly http://www.tweedly.net
-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.14/130 - Release Date: 12/10/2005
From: Andy T. <an...@ha...> - 2005年10月12日 09:53:47
Alex Tweedly wrote:
> bra...@om... wrote:
> 
>>
>> I've only tried this on a couple of the more complex child windows, 
>> but so
>> far so good. The only trouble I ran into was a ZeroDivisionError.
>>
>> Traceback (most recent call last):
>> File "/OMS/dev/main/OMS/Mycroft/source/client/simpleSizer.py", line 
>> 44, in RecalcSizes
>> scaleX = 100 * curWidth / minWidth
>> ZeroDivisionError: integer division or modulo by zero
>>
>> It turned out that this error went away after I made sure the child 
>> window
>> that generated was resizeable.
>>
> I haven't been able to get this to happen (I had tested on 
> non-resizeable windows). The error happens in ReCalcSizes which is only 
> called when the window is resized; if the window is marked as 
> "non-resizeable" then I don't really see why it should be in that 
> section of code at all. Anything unusual about the window/app this 
> happened in ? (I checked it again on Mac just in case it was platform 
> dependent - my earlier testing was Win only - but I don't get an error 
> there either).
> 
> I've put in a safety check - could you please test this (file attached)
> 
>> I vote for simpleSizer to go into PythonCard CVS ASAP. It's not going 
>> to break
>> anything else because nothing else is dependent on it yet. It's a great,
>> super-easy way to add sizers to PythonCard. It obviously hasn't been 
>> tested
>> in every scenario, and it's not perfect, but it's far better than no 
>> sizers at all.
>> It's also very in keeping with the PythonCard spirit of shallow 
>> learning curve.
>> And putting it out there at will net us a lot more testers. Why wait 
>> for 2.0?
> 
> That sounds reasonable to me.
> Anyone object ? Or have other thoughts on adding this to CVS ?
> 
> -- 
> Alex Tweedly http://www.tweedly.net
> 
>
I say go for it. I'm giving a presentation at the Australian open source 
developer's conference [1] in about six weeks and this will help answer 
the first question I'll get [2].
As Brad says it doesn't impact or break any other part of the framework, 
and if it's in CVS I'm more likely to test it.
Regards,
Andy
[1] http://www.osdc.com.au/
[2] Which is always "when will you support sizers"
-- 
--------------------------------------------------------------------------------
 From the desk of Andrew J Todd esq - http://www.halfcooked.com/
From: Alex T. <al...@tw...> - 2005年09月29日 17:07:37
#!/usr/bin/python
"""
Simple sizer for PythonCard
"""
import wx
DEBUG = False
DEBUG1 = False
#----------------------------------------------------------------------
class simpleSizer(wx.PySizer):
 def __init__(self, minsize, rows=100, cols=100, border=0):
 wx.PySizer.__init__(self)
 self.minsize = minsize
 self.cols = cols
 self.rows = rows
 self.border = border
 
 #--------------------------------------------------
 def Add(self, item, option=0, flag=0, border=0,
 pos=None, size=None, 
 growX = False, growY = False
 ):
 if DEBUG: print "adding", item.name, pos, size, growX, growY
 wx.PySizer.Add(self, item, option, flag, border,
 userData=(pos, size, growX, growY))
 #--------------------------------------------------
 def CalcMin( self ):
 x,y = self.minsize
 return wx.Size(x, y)
 
 #--------------------------------------------------
 def RecalcSizes( self ):
 # save current dimensions, etc.
 curWidth, curHeight = self.GetSize()
 px, py = self.GetPosition()
 minWidth, minHeight = self.CalcMin()
 if DEBUG: print minWidth, minHeight , curWidth, curHeight
 if minWidth == 0 or minHeight == 0: return
 
 scaleX = 100 * curWidth / minWidth
 scaleY = 100 * curHeight / minHeight
 
 # iterate children and set dimensions...
 for item in self.GetChildren():
 pos, size, growX, growY = item.GetUserData()
 if DEBUG: print "in recalc", pos, size, growX, growY
 cx,cy = pos
 sx,sy = size
 cx = (cx * scaleX + sx*scaleX/2) / 100
 cy = (cy * scaleY + sy*scaleY/2) / 100
 
 if growX: 
 sx = sx * scaleX / 100
 if growY: 
 sy = sy * scaleY / 100
 
 self.SetItemBounds( item, cx-sx/2, cy-sy/2, sx, sy )
 #--------------------------------------------------
 def SetItemBounds(self, item, x, y, w, h):
 # calculate the item's actual size and position within
 # its grid cell
 ipt = wx.Point(x, y)
 isz = wx.Size(w,h)
 if DEBUG: print "in itembounds", x,y,w,h
 
 item.SetDimension(ipt, isz)
#--------------------------------------------------
# AGT fill this list
heightGrowableTypes = ["BitmapCanvas", "CodeEditor", "HtmlWindow", \
 "Image", "List", "MultiColumnList", 
 "Notebook", \
 "RadioGroup", "StaticBox", "TextArea", \
 "Tree"]
widthGrowableTypes = ["BitmapCanvas", "CheckBox", "Choice", \
 "CodeEditor", "ComboBox", "HtmlWindow", \
 "Image", "List", "MultiColumnList", \
 "Notebook", \
 "PasswordField", "RadioGroup", "Spinner", \
 "StaticBox", "StaticText", "TextArea", \
 "TextField", "Tree"]
growableTypes = ["Gauge", "Slider", "StaticLine"] 
def autoSizer(aBg):
 winX, winY = aBg.size
 # make list of all components, make a RowCol sizer to hold them
 complist = []
 for compName in aBg.components.iterkeys():
 comp = aBg.components[compName]
 complist.append( comp )
 sizer = simpleSizer(aBg.panel.size, 100,100)
 
 # add the components to the grid
 for comp in complist:
 tx, ty = comp.position
 dx, dy = comp.size
 
 # AGT Must be an easier way to get a component's type ??
 compType = comp._resource.__dict__['type']
 dx1, dy1 = comp.GetBestSize()
 if dx1 > dx: dx = dx1
 if dy1 > dy: 
 # hack to deal with the fact that GetBestSize() comes up with too 
 # large heights for textareas.
 if compType <> "TextArea": dy = dy1
 # AGT FUTURE should replace with growable attribute in a component's spec
 if "HEIGHT_GROWABLE" in comp.userdata or \
 compType in heightGrowableTypes or \
 (compType in growableTypes and comp.layout == "vertical"):
 compGrowableY = True
 else: compGrowableY = False
 if "WIDTH_GROWABLE" in comp.userdata or \
 compType in widthGrowableTypes or \
 (compType in growableTypes and comp.layout == "horizontal"):
 compGrowableX = True
 else: compGrowableX = False
 sizer.Add(comp, pos=(tx,ty), size=(dx,dy), growX = compGrowableX, growY = compGrowableY )
 if DEBUG1: print "adding ", comp.name, (tx, ty), (dx, dy), compGrowableX, compGrowableY
 
 sizer.SetSizeHints(aBg)
 aBg.panel.SetSizer(sizer)
 aBg.panel.SetAutoLayout(1)
 aBg.panel.Layout()
#--------------------------------------------------
From: <bra...@om...> - 2005年09月28日 18:25:15
> Alex Tweedly wrote:
> I've written a simple sizer that (I think) does what I was thinking of. 
> It's pretty simple-minded, but if you have a simple, straightforward 
> layout, this will "work" most of the time. It's not always great - 
> layouts can often look stretched, but it achieves the main purpose of 
> making fields larger as the window size is increased.
Oh, wow. Wow, wow, wow. This works great with my app. Mr. Tweedly, I bow 
and
scrape at your majestic feet. 
I just sat down to resume work on my project after weeks away from it, and
recalled that trying out simpleSizer was on my to-do list. Little did I 
realize
how amazingly simple it would be to implement, and how effectively it 
would
improve my tabbed interface app. 
One of the reasons this is so gratifying is that I kept seeing my boss and
 a couple of other end users unconsciously trying to resize the main 
window even
when it did not have resizeable enabled and they knew full well the 
feature was
not implemented.
To implement simpleSizer in my apps main window (and it's child tabs), all 
I
needed to do was make the main window resizeable using Resource Editor, 
and add
 import simpleSizer
 simpleSizer.autoSizer(self)
to two different on_initialize methods -- one for the main window, and one
for the parent class of all the tabs. This caused ALL the tabs and child 
tabs
to resize their contents beautifully as the window was resized.
I've only tried this on a couple of the more complex child windows, but so
far so good. The only trouble I ran into was a ZeroDivisionError. 
Traceback (most recent call last):
 File "/OMS/dev/main/OMS/Mycroft/source/client/simpleSizer.py", line 44, 
in RecalcSizes
 scaleX = 100 * curWidth / minWidth
ZeroDivisionError: integer division or modulo by zero
It turned out that this error went away after I made sure the child window
that generated was resizeable.
You might notice I stuck simpleSizer.py in one of my own packages rather 
than
in PythonCard. It works fine that way. When simpleSizer makes it into 
PythonCard CVS, I will change my import statements and get rid of the one
from my client package.
All my testing has so far been on Mac OS 10.4.2, wxPython 2.6, and
PythonCard .82, and on Windows XP with wxPython 2.6 and PythonCard .82.
I vote for simpleSizer to go into PythonCard CVS ASAP. It's not going to 
break
anything else because nothing else is dependent on it yet. It's a great,
super-easy way to add sizers to PythonCard. It obviously hasn't been 
tested
in every scenario, and it's not perfect, but it's far better than no 
sizers at all.
It's also very in keeping with the PythonCard spirit of shallow learning 
curve.
And putting it out there at will net us a lot more testers. Why wait for 
2.0?
Brad Allen
IT Desktop Support
Omnicom Management Services
Dallas, TX
http://www.omsdal.com
37 messages has been excluded from this view by a project administrator.

Showing results of 236

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