2.8.4.0 release

Hi all, here's your official warning that a 2.8.4.0 release of wxPython is coming soon (probably in a couple weeks) so if you have updates for your contribs that need to be checked in and tested then get me patches as soon as possible. I'd especially like to have an updated FloatCanvas. (hint, hint...)

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

It is evil to put 2.8.4.0 in the title of a post and not even release a small alpha version of it…
evil, evil I tell you… :wink:

···

On 4/20/07, Robin Dunn robin@alldunn.com wrote:

Hi all, here’s your official warning that a 2.8.4.0 release of wxPython
is coming soon (probably in a couple weeks) so if you have updates for
your contribs that need to be checked in and tested then get me patches

as soon as possible. I’d especially like to have an updated
FloatCanvas. (hint, hint…)


Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!


To unsubscribe, e-mail: wxPython-dev-unsubscribe@lists.wxwidgets.org

For additional commands, e-mail: wxPython-dev-help@lists.wxwidgets.org


There is NO FATE, we are the creators.

Robin Dunn wrote:

Hi all, here's your official warning that a 2.8.4.0 release of wxPython is coming soon (probably in a couple weeks) so if you have updates for your contribs that need to be checked in and tested then get me patches as soon as possible. I'd especially like to have an updated FloatCanvas. (hint, hint...)

OK. hint received -- I'm still having some weird bugs with 2.8 on OS-X (thought the current bug may not be OS-X specific, I think it's in my code, 'cause I refactored the hit-test bitmap stuff.)

Anyway, I have a little time to work on it this week, so wish me luck!

By the way, I think our firewall still blocks CVS access. without it, what's the best way to submit a patch?

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Peter Damoc wrote:

It is evil to put 2.8.4.0 in the title of a post and not even release a small alpha version of it...
evil, evil I tell you... :wink:

Oops. Sorry, I should have thought through that a bit more.

<conspiracy-theory>Or maybe I did it on purpose just to make everyone anxious and impatient! Muah-ha-ha-ha...</conspiracy-theory> :wink:

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Christopher Barker wrote:

By the way, I think our firewall still blocks CVS access. without it, what's the best way to submit a patch?

I don't think there have been any changes to the CVS version of FloatCanvas, so you can do it simply be saving a copy of the floatcanvas package dir as floatcanvas.orig, and then run a command like:

  diff -ru wx/lib/floatcanvas.orig wx/lib/floatcanvas > fc.patch

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Robin Dunn wrote:

I don't think there have been any changes to the CVS version of FloatCanvas, so you can do it simply be saving a copy of the floatcanvas package dir as floatcanvas.orig, and then run a command like:

    diff -ru wx/lib/floatcanvas.orig wx/lib/floatcanvas > fc.patch

got it. Now to fix those pesky bugs--

I remember one more that's not in my code -- I have problems adding items to an existing toolbar on OS-X -- It think I posted that one to sourceforge. Any idea of anyone has looked at those toolbar issues on OS-X?

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Christopher Barker wrote:

Robin Dunn wrote:

I don't think there have been any changes to the CVS version of FloatCanvas, so you can do it simply be saving a copy of the floatcanvas package dir as floatcanvas.orig, and then run a command like:

    diff -ru wx/lib/floatcanvas.orig wx/lib/floatcanvas > fc.patch

got it. Now to fix those pesky bugs--

I remember one more that's not in my code -- I have problems adding items to an existing toolbar on OS-X -- It think I posted that one to sourceforge. Any idea of anyone has looked at those toolbar issues on OS-X?

I think Stefan commented about it. I don't think anything has been changed yet though.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Hi, I just updated XRCed to revision 0.1.8-5. It has a new experimental
feature to add controls by draging icons on the test window using the
right button. Mouse position is tracked to highlight the future parent.

Roman

···

On Fri, 2007-04-20 at 13:15 -0700, Robin Dunn wrote:

Hi all, here's your official warning that a 2.8.4.0 release of wxPython
is coming soon (probably in a couple weeks) so if you have updates for
your contribs that need to be checked in and tested then get me patches
as soon as possible. I'd especially like to have an updated
FloatCanvas. (hint, hint...)

Roman Rolinsky wrote:

Hi all, here's your official warning that a 2.8.4.0 release of wxPython is coming soon (probably in a couple weeks) so if you have updates for your contribs that need to be checked in and tested then get me patches as soon as possible. I'd especially like to have an updated FloatCanvas. (hint, hint...)

Hi, I just updated XRCed to revision 0.1.8-5. It has a new experimental
feature to add controls by draging icons on the test window using the
right button. Mouse position is tracked to highlight the future parent.

Hi Roman,

I've experimented a bit with this new code and have run into the following problems:

* After starting XRCed I add a Panel to the tree, then click the test button and then drag a box sizer onto the test window. Although the sizer is added successfully, I get this exception twice:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1359, in OnLeave
     self.RemoveHL()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1364, in RemoveHL
     if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
AttributeError: 'XML_Tree' object has no attribute 'itemColour'

* Then I added some controls, and when adding a wxEXPAND flag to a TextCtrl I got this exception, and continued getting it when I tried to do anything else with the items in the tree:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 772, in OnSelChanged
     self.SelectItem(evt.GetItem())
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1126, in SelectItem
     self.ChangeSelection(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 786, in ChangeSelection
     self.Apply(xxx, oldItem)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1252, in Apply
     g.panel.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 173, in Apply
     for p in self.pages: p.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 242, in Apply
     paramObj = xxx.params[param]
KeyError: 'border'

* In another test run I made a panel with a box sizer and a flex sizer inside of that. Then I added a bunch of controls to the flex sizer without DnD. Then I dragged some buttons using DnD. Since they ended up in the box sizer instead of the flex sizer I used the make child button on the toolbar and although it did move as expected, I got this exception:

Traceback (most recent call last):
   File "xrced.py", line 1334, in OnIdle
     tree.HighLight(tree.pendingHighLight)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 827, in HighLight
     obj = self.FindNodeObject(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 760, in FindNodeObject
     child = parentWin.GetChildren()[self.WindowIndex(item)]
IndexError: list index out of range

* The green text in the tree is hard to read because of the greenish background. I expect that it would probably almost be invisible for people with some forms of color blindness. You should use a darker color for that. A dark green will probably be okay if you want to stick with a green shade. Also, what does the colored text indicate for that item?

···

On Fri, 2007-04-20 at 13:15 -0700, Robin Dunn wrote:

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Robin Dunn wrote:

Roman Rolinsky wrote:

Hi all, here's your official warning that a 2.8.4.0 release of wxPython is coming soon (probably in a couple weeks) so if you have updates for your contribs that need to be checked in and tested then get me patches as soon as possible. I'd especially like to have an updated FloatCanvas. (hint, hint...)

Hi, I just updated XRCed to revision 0.1.8-5. It has a new experimental
feature to add controls by draging icons on the test window using the
right button. Mouse position is tracked to highlight the future parent.

Hi Roman,

I've experimented a bit with this new code and have run into the following problems:

* After starting XRCed I add a Panel to the tree, then click the test button and then drag a box sizer onto the test window. Although the sizer is added successfully, I get this exception twice:

Traceback (most recent call last):
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1359, in OnLeave
    self.RemoveHL()
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1364, in RemoveHL
    if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
AttributeError: 'XML_Tree' object has no attribute 'itemColour'

* Then I added some controls, and when adding a wxEXPAND flag to a TextCtrl I got this exception, and continued getting it when I tried to do anything else with the items in the tree:

Traceback (most recent call last):
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 772, in OnSelChanged
    self.SelectItem(evt.GetItem())
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1126, in SelectItem
    self.ChangeSelection(item)
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 786, in ChangeSelection
    self.Apply(xxx, oldItem)
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1252, in Apply
    g.panel.Apply()
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 173, in Apply
    for p in self.pages: p.Apply()
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 242, in Apply
    paramObj = xxx.params[param]
KeyError: 'border'

* In another test run I made a panel with a box sizer and a flex sizer inside of that. Then I added a bunch of controls to the flex sizer without DnD. Then I dragged some buttons using DnD. Since they ended up in the box sizer instead of the flex sizer I used the make child button on the toolbar and although it did move as expected, I got this exception:

Traceback (most recent call last):
  File "xrced.py", line 1334, in OnIdle
    tree.HighLight(tree.pendingHighLight)
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 827, in HighLight
    obj = self.FindNodeObject(item)
  File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 760, in FindNodeObject
    child = parentWin.GetChildren()[self.WindowIndex(item)]
IndexError: list index out of range

* The green text in the tree is hard to read because of the greenish background. I expect that it would probably almost be invisible for people with some forms of color blindness. You should use a darker color for that. A dark green will probably be okay if you want to stick with a green shade. Also, what does the colored text indicate for that item?

* On Windows when trying to do a DnD I get this:

Traceback (most recent call last):
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tools.py", line 171, in OnRightClick
     dragSource = wx.DropSource(self, icon)
   File "c:\PROJECTS\wx2.8\wxPython\wx\_misc.py", line 5293, in __init__
     _misc_.DropSource_swiginit(self,_misc_.new_DropSource(*args, **kwargs))
TypeError: in method 'new_DropSource', expected argument 2 of type 'wxCursor const &'

···

On Fri, 2007-04-20 at 13:15 -0700, Robin Dunn wrote:

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Hi Robin,

Roman Rolinsky wrote:
>> Hi all, here's your official warning that a 2.8.4.0 release of wxPython
>> is coming soon (probably in a couple weeks) so if you have updates for
>> your contribs that need to be checked in and tested then get me patches
>> as soon as possible. I'd especially like to have an updated
>> FloatCanvas. (hint, hint...)
>
> Hi, I just updated XRCed to revision 0.1.8-5. It has a new experimental
> feature to add controls by draging icons on the test window using the
> right button. Mouse position is tracked to highlight the future parent.

Hi Roman,

I've experimented a bit with this new code and have run into the
following problems:

* After starting XRCed I add a Panel to the tree, then click the test
button and then drag a box sizer onto the test window. Although the
sizer is added successfully, I get this exception twice:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 1359, in OnLeave
     self.RemoveHL()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 1364, in RemoveHL
     if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
AttributeError: 'XML_Tree' object has no attribute 'itemColour'

fixed.

* Then I added some controls, and when adding a wxEXPAND flag to a
TextCtrl I got this exception, and continued getting it when I tried to
do anything else with the items in the tree:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 772, in OnSelChanged
     self.SelectItem(evt.GetItem())
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 1126, in SelectItem
     self.ChangeSelection(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 786, in ChangeSelection
     self.Apply(xxx, oldItem)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 1252, in Apply
     g.panel.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py",
line 173, in Apply
     for p in self.pages: p.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py",
line 242, in Apply
     paramObj = xxx.params[param]
KeyError: 'border'

Can you tell exactly how to reproduce this?

* In another test run I made a panel with a box sizer and a flex sizer
inside of that. Then I added a bunch of controls to the flex sizer
without DnD. Then I dragged some buttons using DnD. Since they ended
up in the box sizer instead of the flex sizer I used the make child
button on the toolbar and although it did move as expected, I got this
exception:

Traceback (most recent call last):
   File "xrced.py", line 1334, in OnIdle
     tree.HighLight(tree.pendingHighLight)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 827, in HighLight
     obj = self.FindNodeObject(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
line 760, in FindNodeObject
     child = parentWin.GetChildren()[self.WindowIndex(item)]
IndexError: list index out of range

I made some fixes, please try if it works now.

* The green text in the tree is hard to read because of the greenish
background. I expect that it would probably almost be invisible for
people with some forms of color blindness. You should use a darker
color for that. A dark green will probably be okay if you want to stick
with a green shade. Also, what does the colored text indicate for that
item?

It indicates the future parent item. I changed the highlight colour to
dark green. The parent detection is based on the current window under
the mouse, and it if it's a panel it takes the panel's sizer which in
your case is the external one. If you drop on a object who can't have
children, then the tree parent of this object is used, which will be the
internal sizer. Unfortunately it only works for some controls, which do
not use drag-and-drop themselfs, the controls like TextCtrl are
invisible to the drop oject.

I plan to add usage of modifier keys similar to sibling/insert modes,
for example a mode to limit the future parent to be inside the currently
selected tree item.

*** Non-stop coding mode off ***

Regards,

Roman

···

On Fri, 2007-04-27 at 12:07 -0700, Robin Dunn wrote:

> On Fri, 2007-04-20 at 13:15 -0700, Robin Dunn wrote:

Robin Dunn wrote:
* On Windows when trying to do a DnD I get this:

Traceback (most recent call last):
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tools.py", line 171,
in OnRightClick
     dragSource = wx.DropSource(self, icon)
   File "c:\PROJECTS\wx2.8\wxPython\wx\_misc.py", line 5293, in __init__
     _misc_.DropSource_swiginit(self,_misc_.new_DropSource(*args, **kwargs))
TypeError: in method 'new_DropSource', expected argument 2 of type
'wxCursor const &'

It seems wxWIN does not like to make Cursor from Icon, while wxGTK does
not like Images. Mac requires an Icon argument too, but drag-and-drop
does not seem to work (BTW I did get a MacBook and installed wxPython
2.8.3 binary distribution so now can test things there. It seems some
basic controls are not fully implemented with native objects for example
ComboBox, and SpinCtrl I think too. Is this due to some compatibility
with previous versions of MacOS? Overall it's a very nice machine and
can run Linux in Parallels which is great).

Regards,

Roman

···

On Fri, 2007-04-27 at 12:18 -0700, Robin Dunn wrote:

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-dev-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-dev-help@lists.wxwidgets.org

Roman Rolinsky wrote:

* After starting XRCed I add a Panel to the tree, then click the test button and then drag a box sizer onto the test window. Although the sizer is added successfully, I get this exception twice:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1359, in OnLeave
     self.RemoveHL()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1364, in RemoveHL
     if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
AttributeError: 'XML_Tree' object has no attribute 'itemColour'

fixed.

This exception still happens for me.

* Then I added some controls, and when adding a wxEXPAND flag to a TextCtrl I got this exception, and continued getting it when I tried to do anything else with the items in the tree:

Traceback (most recent call last):
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 772, in OnSelChanged
     self.SelectItem(evt.GetItem())
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1126, in SelectItem
     self.ChangeSelection(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 786, in ChangeSelection
     self.Apply(xxx, oldItem)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 1252, in Apply
     g.panel.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 173, in Apply
     for p in self.pages: p.Apply()
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py", line 242, in Apply
     paramObj = xxx.params[param]
KeyError: 'border'

Can you tell exactly how to reproduce this?

I havn't figured out how to consistently reproduce it yet. Still trying... I did find a way to reproduce another bug however. See below.

* In another test run I made a panel with a box sizer and a flex sizer inside of that. Then I added a bunch of controls to the flex sizer without DnD. Then I dragged some buttons using DnD. Since they ended up in the box sizer instead of the flex sizer I used the make child button on the toolbar and although it did move as expected, I got this exception:

Traceback (most recent call last):
   File "xrced.py", line 1334, in OnIdle
     tree.HighLight(tree.pendingHighLight)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 827, in HighLight
     obj = self.FindNodeObject(item)
   File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py", line 760, in FindNodeObject
     child = parentWin.GetChildren()[self.WindowIndex(item)]
IndexError: list index out of range

I made some fixes, please try if it works now.

I just checked in a fix for a similar bug with the Make Sibling button.

Here's the steps for the other bug I mentioned above. So far this only happens on Windows:

Click "XML Tree" node in the tree
Click the wxPanel button in the sidebar
click the wxBoxSizer button
click the wxPanel button three times
click the Make Sibling toolbar button
select the next to last panel in the tree
click the Cut toolbar button, this results in this traceback:

Traceback (most recent call last):
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 772, in OnSelChanged

     self.SelectItem(evt.GetItem())
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 1127, in SelectItem
     self.ChangeSelection(item)
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 783, in ChangeSelect
ion
     xxx = self.GetPyData(oldItem)
   File "c:\PROJECTS\wx2.8\wxPython\wx\_controls.py", line 5267, in GetItemPyData
     return _controls_.TreeCtrl_GetItemPyData(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "param" failed at ..\..\src\msw\treectrl.cpp
(1022) in wxTreeCtrl::SetItemData(): failed to change tree items data

At this point selecting any other items in the XML Tree results in the property pane not being updated.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Roman Rolinsky wrote:

It seems wxWIN does not like to make Cursor from Icon, while wxGTK does
not like Images. Mac requires an Icon argument too, but drag-and-drop
does not seem to work

It should. Maybe it is having a problem with the fact you are using the right mouse button to do the DnD. (Right buttons are a 2n'd class citizen on Macs.) Try switching to the left. You should be able to detect the difference between a left click and a left drag without too much trouble. Just make sure that you don't start the DnD from the left down event, but rather set a flag and then wait for motion events. If the drag goes for more than a few pixels before the left-up then you can start the DnD from there.

(BTW I did get a MacBook and installed wxPython
2.8.3 binary distribution so now can test things there. It seems some
basic controls are not fully implemented with native objects for example
ComboBox, and SpinCtrl I think too. Is this due to some compatibility
with previous versions of MacOS?

IIUC there wasn't a native widget that had enough wxComboBox-like functionality so it was emulated using a textctrl and a popup menu. There is now a native widget but the work hasn't been done yet to switch over to it for some reason, maybe there is still something lacking with it on 10.3 or something like that.

···

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

Hi Roman,

Robin Dunn wrote:
* On Windows when trying to do a DnD I get this:

Traceback (most recent call last):
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tools.py", line 171,
in OnRightClick
     dragSource = wx.DropSource(self, icon)
   File "c:\PROJECTS\wx2.8\wxPython\wx\_misc.py", line 5293, in __init__
     _misc_.DropSource_swiginit(self,_misc_.new_DropSource(*args, **kwargs))
TypeError: in method 'new_DropSource', expected argument 2 of type
'wxCursor const &'

It seems wxWIN does not like to make Cursor from Icon, while wxGTK does
not like Images. Mac requires an Icon argument too, but drag-and-drop
does not seem to work (BTW I did get a MacBook and installed wxPython
2.8.3 binary distribution so now can test things there. It seems some
basic controls are not fully implemented with native objects for example
ComboBox, and SpinCtrl I think too. Is this due to some compatibility
with previous versions of MacOS?

SpinCtrl does use native objects, but there's no native combination of SpinButton and TextCtrl, so we combine them in wx. There are a couple other cases where we do something like this (e.g. wxSlider's labels, as the native control has no labels concept).

As for ComboBox, it's a long story, but the gist of it is that Carbon (Apple's C++ bindings) did not have a native ComboBox control until Panther or Tiger (can't remember which), and when they finally did release it, we found out that it didn't fire an event for when the selection changed, making it unusable in our case. ;-/ (There is an implementation in wx sources, though.) I'm not sure if that's been fixed yet, but I do know Apple said it was going to be fixed, so at some point I plan to look into it again.

In general, Carbon works well, but Apple does give more attention to Cocoa than Carbon, so there are a few rough spots that we've had to deal with. Of course, the reason we use Carbon is that there was a wxMac port for older Mac versions that was largely reusable for OS X.

Overall it's a very nice machine and
can run Linux in Parallels which is great).

Glad to hear you like it! :slight_smile:

BTW, thanks for the updates on XRCEd! I'm really looking forward to the custom control stuff (I'd like to add support for SizedControls) and also the IDE embedding stuff. :slight_smile:

Regards,

Kevin

···

On Apr 27, 2007, at 1:44 PM, Roman Rolinsky wrote:

On Fri, 2007-04-27 at 12:18 -0700, Robin Dunn wrote:

Regards,

Roman

--
Robin Dunn
Software Craftsman
http://wxPython.org Java give you jitters? Relax with wxPython!

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-dev-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-dev-help@lists.wxwidgets.org

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-dev-unsubscribe@lists.wxwidgets.org
For additional commands, e-mail: wxPython-dev-help@lists.wxwidgets.org

Roman Rolinsky wrote:

>> * After starting XRCed I add a Panel to the tree, then click the test
>> button and then drag a box sizer onto the test window. Although the
>> sizer is added successfully, I get this exception twice:
>>
>> Traceback (most recent call last):
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 1359, in OnLeave
>> self.RemoveHL()
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 1364, in RemoveHL
>> if hl.item: g.tree.SetItemTextColour(hl.item, g.tree.itemColour)
>> AttributeError: 'XML_Tree' object has no attribute 'itemColour'
>
> fixed.

This exception still happens for me.

Oops, sorry. Had to do a little more testing. Not it's fixed for sure (I
didn't realise I put itemColour initialization in a method called only
upon opening an existing file).

>
>> * Then I added some controls, and when adding a wxEXPAND flag to a
>> TextCtrl I got this exception, and continued getting it when I tried to
>> do anything else with the items in the tree:
>>
>> Traceback (most recent call last):
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 772, in OnSelChanged
>> self.SelectItem(evt.GetItem())
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 1126, in SelectItem
>> self.ChangeSelection(item)
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 786, in ChangeSelection
>> self.Apply(xxx, oldItem)
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 1252, in Apply
>> g.panel.Apply()
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py",
>> line 173, in Apply
>> for p in self.pages: p.Apply()
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/panel.py",
>> line 242, in Apply
>> paramObj = xxx.params[param]
>> KeyError: 'border'
>
> Can you tell exactly how to reproduce this?

I havn't figured out how to consistently reproduce it yet. Still
trying... I did find a way to reproduce another bug however. See below.

>
>> * In another test run I made a panel with a box sizer and a flex sizer
>> inside of that. Then I added a bunch of controls to the flex sizer
>> without DnD. Then I dragged some buttons using DnD. Since they ended
>> up in the box sizer instead of the flex sizer I used the make child
>> button on the toolbar and although it did move as expected, I got this
>> exception:
>>
>> Traceback (most recent call last):
>> File "xrced.py", line 1334, in OnIdle
>> tree.HighLight(tree.pendingHighLight)
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 827, in HighLight
>> obj = self.FindNodeObject(item)
>> File "/home/work/projects/wx2.9/wxPython/wx/tools/XRCed/tree.py",
>> line 760, in FindNodeObject
>> child = parentWin.GetChildren()[self.WindowIndex(item)]
>> IndexError: list index out of range
>
> I made some fixes, please try if it works now.

I just checked in a fix for a similar bug with the Make Sibling button.

Here's the steps for the other bug I mentioned above. So far this only
happens on Windows:

Will look at this in the coming hours (no WinPC at hand).

···

On Fri, 2007-04-27 at 15:41 -0700, Robin Dunn wrote:

Click "XML Tree" node in the tree
Click the wxPanel button in the sidebar
click the wxBoxSizer button
click the wxPanel button three times
click the Make Sibling toolbar button
select the next to last panel in the tree
click the Cut toolbar button, this results in this traceback:

Traceback (most recent call last):
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 772,
in OnSelChanged

     self.SelectItem(evt.GetItem())
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 1127,
in SelectItem
     self.ChangeSelection(item)
   File "c:\PROJECTS\wx2.8\wxPython\wx\tools\XRCed\tree.py", line 783,
in ChangeSelect
ion
     xxx = self.GetPyData(oldItem)
   File "c:\PROJECTS\wx2.8\wxPython\wx\_controls.py", line 5267, in
GetItemPyData
     return _controls_.TreeCtrl_GetItemPyData(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "param" failed at
..\..\src\msw\treectrl.cpp
(1022) in wxTreeCtrl::SetItemData(): failed to change tree items data

At this point selecting any other items in the XML Tree results in the
property pane not being updated.