Hi,

As we've been talking in dabo-users here is my dMdiLayoutPanel patch.
Some notes on the implementation:
- I've used the ChildBorn event to solve the panel as parent problem.... 
Paul's solution seemed a bit too hackish, IMHO such a simple class 
should not mess with the framework internals.

- I've simplified the API exposed by wxPython, it has a couple of dark 
corners, i think it is much nicer this way

- I had a problem with the Resizable property as it depends on the 
Alignment property being set. Is there a way to set the order the 
properties ar parsed...my solution of using _afterSetProperties seems a 
bit hackish

- Framework classes must use the _afterX or _beforeX and not the afterX  
or beforeX right? this prevents  the  user forgetting to call self.super 
problem...

I think thats it... i must admit it was a snap to wrap this one...i was 
expecting more problems.... i played with the wxPython demo yesterday 
and found some really great candidates to be my second dabo contributed 
wraped controls... i'll keep in touch.

Ok...lets ear it guys...is this ok? any changes needed? suggestions?

Regards,
Pedro Vale de Gato

SW5kZXg6IHVpL3Vpd3gvZE1kaUxheW91dFBhbmVsLnB5DQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0g
dWkvdWl3eC9kTWRpTGF5b3V0UGFuZWwucHkJKHJldmlzaW9uIDApDQorKysgdWkvdWl3eC9k
TWRpTGF5b3V0UGFuZWwucHkJKHJldmlzaW9uIDApDQpAQCAtMCwwICsxLDE3MCBAQA0KKyMg
LSotIGNvZGluZzogdXRmLTggLSotDQorIiIiIGRNZGlMYXlvdXRQYW5lbC5weQ0KKw0KK0Eg
c3BlY2lhbCBwYW5lbCB1c2VkIHRvZ2V0aGVyIHdpdGggZE1haW5Gb3JtIGluIE1ESSBtb2Rl
ICh3aW5kb3dzIG9ubHkpLg0KKw0KK1BhbmVscyBjYW4gYmUgcG9zaXRpb25lZCBpbnNpZGUg
dGhlIE1ESSBjbGllbnQgYXJlYSBhdCBhIGdpdmVuIHBsYWNlIGFuZCBjYW4NCitiZSB1c2Vy
IHJlc2l6ZWQuDQorDQorRXhhbXBsZToNCisJbHAgPSBkTWRpTGF5b3V0UGFuZWwoc2VsZiwg
U2l6ZT0oMTUwLDUwKSwgDQorCQlSZXNpemFibGU9VHJ1ZSwgQWxpZ25tZW50PSJMZWZ0Iiwg
DQorCQlPcmllbnRhdGlvbj0iVmVydGljYWwiKQ0KKyIiIg0KKw0KK2ltcG9ydCB3eA0KK2lt
cG9ydCBkYWJvDQoraW1wb3J0IGRhYm8udWkNCitkYWJvLnVpLmxvYWRVSSgid3giKQ0KK2lt
cG9ydCBkYWJvLmRFdmVudHMgYXMgZEV2ZW50cw0KK2Zyb20gZGFiby5kTG9jYWxpemUgaW1w
b3J0IF8NCitpbXBvcnQgZENvbnRyb2xNaXhpbiBhcyBkY20NCisNCitjbGFzcyBkTWRpTGF5
b3V0UGFuZWwoZGNtLmRDb250cm9sTWl4aW4sIHd4LlNhc2hMYXlvdXRXaW5kb3cpOg0KKwlk
ZWYgX19pbml0X18oc2VsZiwgcGFyZW50PU5vbmUsIHByb3BlcnRpZXM9Tm9uZSwgYXR0UHJv
cGVydGllcz1Ob25lLCAqYXJncywgKiprd2FyZ3MpOg0KKwkJc2VsZi5fYmFzZUNsYXNzID0g
ZE1kaUxheW91dFBhbmVsDQorCQlwcmVDbGFzcyA9IHd4LlNhc2hMYXlvdXRXaW5kb3cNCisJ
CQ0KKwkJc2VsZi5fX2RvX3Jlc2l6YWJsZV9hZnRlciA9IEZhbHNlDQorCQlzZWxmLl9fcmVz
aXphYmxlID0gRmFsc2UNCisJDQorCQlkY20uZENvbnRyb2xNaXhpbi5fX2luaXRfXyhzZWxm
LCBwcmVDbGFzcywgcGFyZW50LCBwcm9wZXJ0aWVzLCBhdHRQcm9wZXJ0aWVzLCAqYXJncywg
Kiprd2FyZ3MpDQorDQorCQkjbWFpbiBwYW5lbCBjcmVhdGlvbg0KKwkJc2VsZi5fX3BubCA9
IGRhYm8udWkuZFBhbmVsKHNlbGYpDQorCQlzZWxmLl9fcG5sLlNpemVyID0gZGFiby51aS5k
U2l6ZXIoInYiKQ0KKw0KKwkJc2VsZi5zdXBlcigpDQorDQorCWRlZiBpbml0RXZlbnRzKHNl
bGYpOg0KKwkJc2VsZi5CaW5kKHd4LkVWVF9TQVNIX0RSQUdHRUQsIHNlbGYuX19Pbld4U2Fz
aERyYWdnZWQpDQorCQlzZWxmLmJpbmRFdmVudChkYWJvLmRFdmVudHMuQ2hpbGRCb3JuLCBz
ZWxmLl9jaGlsZEJvcm4pDQorDQorCWRlZiBfYWZ0ZXJTZXRQcm9wZXJ0aWVzKHNlbGYpOg0K
KwkJaWYgc2VsZi5fX2RvX3Jlc2l6YWJsZV9hZnRlcjoNCisJCQlzZWxmLlJlc2l6YWJsZSA9
IHNlbGYuX19yZXNpemFibGUNCisNCisJCXNlbGYuc3VwZXIoKQ0KKw0KKwlkZWYgX19Pbld4
U2FzaERyYWdnZWQoc2VsZiwgZXZ0KToNCisJCWlmIGV2dC5HZXREcmFnU3RhdHVzKCkgPT0g
d3guU0FTSF9TVEFUVVNfT1VUX09GX1JBTkdFOg0KKwkJCXJldHVybg0KKw0KKwkJaWYgc2Vs
Zi5BbGlnbm1lbnQgPT0gIlRvcCIgb3Igc2VsZi5BbGlnbm1lbnQgPT0gIkJvdHRvbSI6DQor
CQkJc2VsZi5TZXREZWZhdWx0U2l6ZSgoMSwgZXZ0LkdldERyYWdSZWN0KCkuaGVpZ2h0KSkN
CisJCWVsc2U6DQorCQkJc2VsZi5TZXREZWZhdWx0U2l6ZSgoZXZ0LkdldERyYWdSZWN0KCku
d2lkdGgsIDEpKQ0KKw0KKwkJI3JlLWxheW91dCB0aGUgcGFyZW50IGZyYW1lDQorCQl3eC5M
YXlvdXRBbGdvcml0aG0oKS5MYXlvdXRNRElGcmFtZShzZWxmLlBhcmVudCkNCisNCisJIyBX
ZSBuZWVkIHRvIHJlLXBhcmVudCBhbGwgY2hpbGRzIGV4Y2VwdCB0aGUgbWFpbiBwYW5lbA0K
KwlkZWYgX2NoaWxkQm9ybihzZWxmLCBldnQpOg0KKwkJaWYgbm90IGlzaW5zdGFuY2UoZXZ0
LkNoaWxkLCBkYWJvLnVpLmRQYW5lbCk6DQorCQkJZXZ0LkNoaWxkLlBhcmVudCA9IHNlbGYu
X19wbmwNCisNCisJIyBQcm94eSBtZXRob2QgcmUtcGFyZW50aW5nIHRoZSBhZGRlZCBvYmpl
Y3RzIHRvIHRoZSBtYWluIHBhbmVsDQorCWRlZiBhZGRPYmplY3Qoc2VsZiwgY2xhc3NSZWYs
IE5hbWU9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToNCisJCXJldHVybiBzZWxmLl9fcG5sLmFk
ZE9iamVjdChjbGFzc1JlZiwgTmFtZSwgKmFyZ3MsICoqa3dhcmdzKQ0KKw0KKw0KKwkjIFBy
b3BlcnRpZXMgZ2V0dGVycy9zZXR0ZXJzDQorCWRlZiBfZ2V0U2l6ZShzZWxmKToNCisJCXJl
dHVybiBzZWxmLkdldERlZmF1bHRTaXplKCkNCisNCisJZGVmIF9zZXRTaXplKHNlbGYsIHNp
emUpOg0KKwkJc2VsZi5TZXREZWZhdWx0U2l6ZShzaXplKQ0KKw0KKwlkZWYgX2dldE9yaWVu
dGF0aW9uKHNlbGYpOg0KKwkJaWYgc2VsZi5HZXRPcmllbnRhdGlvbigpID09IHd4LkxBWU9V
VF9WRVJUSUNBTDoNCisJCQlyZXR1cm4gIlZlcnRpY2FsIg0KKwkJcmV0dXJuICJIb3Jpem9u
dGFsIg0KKw0KKwlkZWYgX3NldE9yaWVudGF0aW9uKHNlbGYsIG9yaWVudGF0aW9uKToNCisJ
CWlmIHNlbGYuX2NvbnN0cnVjdGVkKCk6DQorCQkJaWYgb3JpZW50YXRpb25bMF0ubG93ZXIo
KSA9PSAiaCI6DQorCQkJCXNlbGYuU2V0T3JpZW50YXRpb24od3guTEFZT1VUX0hPUklaT05U
QUwpDQorCQkJZWxzZToNCisJCQkJc2VsZi5TZXRPcmllbnRhdGlvbih3eC5MQVlPVVRfVkVS
VElDQUwpDQorCQllbHNlOg0KKwkJCXNlbGYuX3Byb3BlcnRpZXNbIk9yaWVudGF0aW9uIl0g
PSBvcmllbnRhdGlvbg0KKw0KKwlkZWYgX2dldEFsaWdubWVudChzZWxmKToNCisJCWFsID0g
c2VsZi5HZXRBbGlnbm1lbnQoKQ0KKw0KKwkJaWYgYWwgPT0gd3guTEFZT1VUX1RPUDoNCisJ
CQlyZXR1cm4gIlRvcCINCisJCWVsaWYgYWwgPT0gd3guTEFZT1VUX0xFRlQ6DQorCQkJcmV0
dXJuICJMZWZ0Ig0KKwkJZWxpZiBhbCA9PSB3eC5MQVlPVVRfUklHSFQ6DQorCQkJcmV0dXJu
ICJSaWdodCINCisJCWVsaWYgYWwgPT0gd3guTEFZT1VUX0JPVFRPTToNCisJCQlyZXR1cm4g
IkJvdHRvbSINCisJCWVsc2U6DQorCQkJcmV0dXJuICIiDQorDQorCWRlZiBfc2V0QWxpZ25t
ZW50KHNlbGYsIGFsaWdubWVudCk6DQorCQlpZiBzZWxmLl9jb25zdHJ1Y3RlZCgpOg0KKwkJ
CWFsID0gYWxpZ25tZW50WzBdLmxvd2VyKCkNCisNCisJCQlpZiBhbCA9PSAidCI6DQorCQkJ
CXNlbGYuU2V0QWxpZ25tZW50KHd4LkxBWU9VVF9UT1ApDQorCQkJZWxpZiBhbCA9PSAibCI6
DQorCQkJCXNlbGYuU2V0QWxpZ25tZW50KHd4LkxBWU9VVF9MRUZUKQ0KKwkJCWVsaWYgYWwg
PT0gInIiOg0KKwkJCQlzZWxmLlNldEFsaWdubWVudCh3eC5MQVlPVVRfUklHSFQpDQorCQkJ
ZWxpZiBhbCA9PSAiYiI6DQorCQkJCXNlbGYuU2V0QWxpZ25tZW50KHd4LkxBWU9VVF9CT1RU
T00pDQorDQorCQllbHNlOg0KKwkJCXNlbGYuX3Byb3BlcnRpZXNbIkFsaWdubWVudCJdID0g
YWxpZ25tZW50DQorDQorCWRlZiBfZ2V0U2l6ZXIoc2VsZik6DQorCQlyZXR1cm4gc2VsZi5f
X3BubC5TaXplcg0KKw0KKwlkZWYgX3NldFNpemVyKHNlbGYsIHNpemVyKToNCisJCXNlbGYu
X19wbmwuU2l6ZXIgPSBzaXplcg0KKw0KKwlkZWYgX2dldFJlc2l6YWJsZShzZWxmKToNCisJ
CWlmIHNlbGYuQWxpZ25tZW50ID09ICJUb3AiOg0KKwkJCXJldHVybiBzZWxmLkdldFNhc2hW
aXNpYmxlKHd4LlNBU0hfQk9UVE9NKQ0KKwkJZWxpZiBzZWxmLkFsaWdubWVudCA9PSAiQm90
dG9tIjoNCisJCQlyZXR1cm4gc2VsZi5HZXRTYXNoVmlzaWJsZSh3eC5TQVNIX1RPUCkNCisJ
CWVsaWYgc2VsZi5BbGlnbm1lbnQgPT0gIkxlZnQiOg0KKwkJCXJldHVybiBzZWxmLkdldFNh
c2hWaXNpYmxlKHd4LlNBU0hfUklHSFQpDQorCQllbGlmIHNlbGYuQWxpZ25tZW50ID09ICJS
aWdodCI6DQorCQkJcmV0dXJuIHNlbGYuR2V0U2FzaFZpc2libGUod3guU0FTSF9MRUZUKQ0K
KwkJZWxzZToNCisJCQlyZXR1cm4gRmFsc2UNCisNCisNCisJZGVmIF9zZXRSZXNpemFibGUo
c2VsZiwgcmVzaXphYmxlKToNCisJCWlmIHNlbGYuX2NvbnN0cnVjdGVkKCk6DQorCQkJaWYg
c2VsZi5BbGlnbm1lbnQgPT0gIlRvcCI6DQorCQkJCXNlbGYuU2V0U2FzaFZpc2libGUod3gu
U0FTSF9CT1RUT00sIHJlc2l6YWJsZSkNCisJCQllbGlmIHNlbGYuQWxpZ25tZW50ID09ICJC
b3R0b20iOg0KKwkJCQlzZWxmLlNldFNhc2hWaXNpYmxlKHd4LlNBU0hfVE9QLCByZXNpemFi
bGUpDQorCQkJZWxpZiBzZWxmLkFsaWdubWVudCA9PSAiTGVmdCI6DQorCQkJCXNlbGYuU2V0
U2FzaFZpc2libGUod3guU0FTSF9SSUdIVCwgcmVzaXphYmxlKQ0KKwkJCWVsaWYgc2VsZi5B
bGlnbm1lbnQgPT0gIlJpZ2h0IjoNCisJCQkJc2VsZi5TZXRTYXNoVmlzaWJsZSh3eC5TQVNI
X0xFRlQsIHJlc2l6YWJsZSkNCisJCQllbHNlOg0KKwkJCQkjIFJlc2l6YWJsZSBkZXBlbmRz
IG9uIEFsaWdubWVudCwgYXMgd2UgY2Fubm90IG9yZGVyIHRoZSANCisJCQkJIyBwcm9wZXJ0
aWVzIHdlIHdpbGwgaW5pdCBSZXNpemFibGUgbGF0ZXIgaW4gX2FmdGVyU2V0UHJvcGVydGll
cw0KKwkJCQlzZWxmLl9fcmVzaXphYmxlID0gcmVzaXphYmxlDQorCQkJCXNlbGYuX19kb19y
ZXNpemFibGVfYWZ0ZXIgPSBUcnVlDQorCQllbHNlOg0KKwkJCXNlbGYuX3Byb3BlcnRpZXNb
IlJlc2l6YWJsZSJdID0gcmVzaXphYmxlDQorDQorCSMgUHJvcGVydGllcw0KKwkNCisJU2l6
ZSA9IHByb3BlcnR5KF9nZXRTaXplLCBfc2V0U2l6ZSwgKDEwMCwxMDApLCBfKCJUaGUgc2l6
ZSBvZiB0aGUgTURJIHBhbmVsLCBpdCB3aWxsIGdyb3cgb24gdGhlIG9wb3NpdGUgY29vcmRp
bmF0ZSBvZiBpdHMgT3JpZW50YXRpb24iKSkNCisJDQorCU9yaWVudGF0aW9uID0gcHJvcGVy
dHkoX2dldE9yaWVudGF0aW9uLCBfc2V0T3JpZW50YXRpb24sICJIb3Jpem9udGFsIiwgXygi
VGhlIG9yaWVudGF0aW9uIG9mIHRoZSBNREkgcGFuZWwsIHZhbGlkIHZhbHVlcyBhcmUgSG9y
aXpvbnRhbCBvciBWZXJ0aWNhbCIpKQ0KKw0KKwlBbGlnbm1lbnQgPSBwcm9wZXJ0eShfZ2V0
QWxpZ25tZW50LCBfc2V0QWxpZ25tZW50LCAiVG9wIiwgXygiVGhlIGFsaWdubWVudCBvZiB0
aGUgTURJIHBhbmVsLCB2YWxpZCB2YWx1ZXMgYXJlIFRvcCwgTGVmdCwgUmlnaHQgb3IgQm90
dG9tIikpDQorDQorCVNpemVyID0gcHJvcGVydHkoX2dldFNpemVyLCBfc2V0U2l6ZXIsIE5v
bmUsIF8oIlRoZSBzaXplciB1c2VkIGluIHRoaXMgTURJIHBhbmVsIikpDQorDQorCVJlc2l6
YWJsZSA9IHByb3BlcnR5KF9nZXRSZXNpemFibGUsIF9zZXRSZXNpemFibGUsIEZhbHNlLCBf
KCJJcyB0aGlzIE1ESSBwYW5lbCByZXNpemFibGU/IikpDQorCQ0KSW5kZXg6IHVpL3Vpd3gv
X19pbml0X18ucHkNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB1aS91aXd4L19faW5pdF9fLnB5CShy
ZXZpc2lvbiAzOTAyKQ0KKysrIHVpL3Vpd3gvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkN
CkBAIC0xNDYsNiArMTQ2LDcgQEANCiBmcm9tIGRMZWQgaW1wb3J0IGRMZWQKIGltcG9ydCBk
VUlDdXJzb3JzIGFzIGRVSUN1cnNvcnMKIGltcG9ydCBkU2hlbGwKK2Zyb20gZE1kaUxheW91
dFBhbmVsIGltcG9ydCBkTWRpTGF5b3V0UGFuZWwKIAogdHJ5OgogCWZyb20gZExpbmVQbG90
IGltcG9ydCBkTGluZVBsb3QKSW5kZXg6IHVpL3Vpd3gvZEZvcm1NYWluLnB5DQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09DQotLS0gdWkvdWl3eC9kRm9ybU1haW4ucHkJKHJldmlzaW9uIDM5MDIpDQorKysg
dWkvdWl3eC9kRm9ybU1haW4ucHkJKHdvcmtpbmcgY29weSkNCkBAIC01Nyw2ICs1NywxNiBA
QA0KIAogCQlkRm9ybU1haW5CYXNlLl9faW5pdF9fKHNlbGYsIHByZUNsYXNzLCBwYXJlbnQs
IHByb3BlcnRpZXMsICphcmdzLCAqKmt3YXJncykKIAorCWRlZiBpbml0RXZlbnRzKHNlbGYp
OgorCQlzZWxmLkJpbmQod3guRVZUX1NJWkUsIHNlbGYuX19vbld4U2l6ZSkKKworCWRlZiBf
X29uV3hTaXplKHNlbGYsIGV2dCk6CisJCXRyeToKKwkJCWlmIHNlbGYuX21kaSBhbmQgaXNp
bnN0YW5jZShzZWxmLCBkYWJvLnVpLmRGb3JtTWFpbik6CisJCQkJd3guTGF5b3V0QWxnb3Jp
dGhtKCkuTGF5b3V0TURJRnJhbWUoc2VsZikKKwkJZXhjZXB0OgorCQkJcGFzcworCiAJZGVm
IFNob3coc2VsZiwgc2hvdz1UcnVlLCAqYXJncywgKiprd2FyZ3MpOgogCQlzZWxmLl9ndGtf
c2hvd19maXgoc2hvdykKIAkJZEZvcm1NYWluLl9fYmFzZXNfX1stMV0uU2hvdyhzZWxmLCBz
aG93LCAqYXJncywgKiprd2FyZ3MpCg==

--- StripMime Report -- processed MIME parts ---
multipart/mixed
  text/plain (text body -- kept)
  text/plain (text body -- kept)
---

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/dabo-dev/[EMAIL PROTECTED]

Reply via email to