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]
