Thread: [Boa Constr] absolute sizes
Status: Beta
Brought to you by:
riaan
From: <ia...@gm...> - 2007-04-18 19:00:06
|
Qm9hIGlzIGdyZWF0LCBhbmQgdGhlIG5ldyB2ZXJzaW9uIGRvZXMgZml4IHNvbWUgdGhpbmdzIHRo YXQgd2VyZQppbmNyZWRpYmx5IGlycml0YXRpbmcgKGxpa2Ugbm90IHJlY29nbml6aW5nIO+7vyMg LSotIGNvZGluZzogdXRmLTggLSotCikuCgpIb3dldmVyIG15IGJpZ2dlc3QgcHJvYmxlbSBpcyB0 aGUgZm9yY2VkIHVzZSBvZiBmaXhlZCBzaXplcyBmb3IKd2lkZ2V0cy4gSSBkZXZlbG9wIGZvciwg YW5kIGluLCBhIG11bHRpcGxhdGZvcm0gZW52aXJvbm1lbnQgKHVidW50dSwKMjAwMCwgWFApLiBU aGlzIG1ha2VzIHd4UHl0aG9uIHBlcmZlY3QuIEhvd2V2ZXIsIHNpbmNlIGJvYSBjYW4ndApoYW5k bGUgd3guU2l6ZSgtMSwgLTEpIG9yIHd4LkRlZmF1bHRTaXplLCBJJ20gZXRlcm5hbGx5IHN0dWNr CmRlc2lnbmluZyB0aGUgYXBwIGluIHdpbmRvd3MgKG15IHByaW1hcnkgd29ya3N0YXRpb24gaXMg dWJ1bnR1KSBhbmQKdGhlbiBlZGl0aW5nIHRoZW0gd2l0aCBnZWRpdCB0byByZW1vdmUgYWxsIHRo ZSBzaXplIHZhbHVlcywgYnV0IHRoZW4Kb2YgY291cnNlIGl0IHdvbid0IHdvcmsgd2l0aCBib2Eg YW55bW9yZS4gQlRXLCBJIHJlbW92ZSB0aGVtIGJlY2F1c2UKaWYgSSB1c2UgKC0xLC0xKSBhbmQg SSBvcGVuIGl0IHVwIGluIGJvYSwgaXQgZ2V0cyBzZXQgdG8gd2hhdGV2ZXIgc2l6ZQppdCBsaWtl cyBmb3IgdGhhdCBwbGF0Zm9ybS4KCkxvb2tpbmcgdGhyb3VnaCB0aGUgYm9hIHNvdXJjZXMgKDAu NS4yKSwgYWxsIEkgc2VlIGFyZSBhYnNvbHV0ZSBzaXplcy4KSW4gbXkgdmlldywgdGhpcyBpcyBh IGZ1bmRhbWVudGFsIGRlc2lnbiBmbGF3IGZvciBhbiBhcHBsaWNhdGlvbiB0aGF0CmlzIChzdXBw b3NlZGx5KSBjcm9zcyBwbGF0Zm9ybS4gSSBzYXkgInN1cHBvc2VkbHkiIGJlY2F1c2UgaWYgeW91 IHVzZQpib2EgdW5kZXIgR1RLIHlvdSBoYXZlIHRvIGFncmVlIHRoZSBleHBlcmllbmNlIGlzIGZh ciBiZWxvdyB0aGUgbGV2ZWwKb2YgdXNhYmlsaXR5IG9mIHRoZSB3aW5kb3dzIHZlcnNpb24uCgpB cmUgeW91IHBsYW5uaW5nIG9uIGFkZHJlc3NpbmcgdGhpcyBpbiB0aGUgbmV4dCByZWxlYXNlPyBX b3VsZCB5b3UKYWNjZXB0IHBhdGNoZXMgcmVnYXJkaW5nIHRoaXMgaXNzdWU/CgotLSAKLSBpYW5h csOpIHPDqXZpCg== |
From: Werner F. B. <wer...@fr...> - 2007-04-19 09:42:20
|
Hi, ianaré sévi wrote: > Boa is great, and the new version does fix some things that were > incredibly irritating (like not recognizing # -*- coding: utf-8 -*- > ). > > However my biggest problem is the forced use of fixed sizes for > widgets. I develop for, and in, a multiplatform environment (ubuntu, > 2000, XP). This makes wxPython perfect. However, since boa can't > handle wx.Size(-1, -1) or wx.DefaultSize, I'm eternally stuck > designing the app in windows (my primary workstation is ubuntu) and > then editing them with gedit to remove all the size values, but then > of course it won't work with boa anymore. BTW, I remove them because > if I use (-1,-1) and I open it up in boa, it gets set to whatever size > it likes for that platform. My workaround for this is a little utility function: def FixDefaultSize(window): if isinstance(window, wx.lib.masked.numctrl.NumCtrl) or\ isinstance(window, wx.lib.masked.textctrl.TextCtrl) or\ isinstance(window, wx.lib.masked.combobox.ComboBox): ## window.SetMinSize(wx.DefaultSize) return window.SetMinSize(wx.DefaultSize) for child in window.GetChildren(): FixDefaultSize(child) window.Layout() window.Refresh() I used the masked controls a lot, and they don't like if you go and size them. The function is called after self._init_ctrls, although I found that I don't need as often anymore, it is problably because I have a better understanding of sizers. > > Looking through the boa sources (0.5.2), all I see are absolute sizes. > In my view, this is a fundamental design flaw for an application that > is (supposedly) cross platform. I say "supposedly" because if you use > boa under GTK you have to agree the experience is far below the level > of usability of the windows version. > > Are you planning on addressing this in the next release? Would you > accept patches regarding this issue? I can't speak for Riaan, but I would be surprised if he does not accept patches for this or any other issue (e.g. GTK stuff) in Boa. Werner > |
From: Werner F. B. <wer...@fr...> - 2007-04-21 17:00:54
|
Hi, BTW, which one is your first name? ianaré or sévi, and another curiosity question what language are they in? ianaré sévi wrote: > Boa Devs, > > I started with the most annoying one to me, the find/replace dialog. > ... > A function was created to correctly resize the statictexts so they all > have the same length, and nothing gets cut off. Why do you need a function for this? Sizers should be able to deal with this, at least they do for my application. Werner |
From: Werner F. B. <wer...@fr...> - 2007-04-22 07:51:22
|
Hi Ianaré, ianaré sévi wrote: > wasn't sure how to send to other list. Don't worry, the size restriction is the same. Riaan will change it when he resolved his issue with sourceforge access. > > I've made a modification to it, they should be the same size now. I'm > attaching a screenshot of how I tested it, I don't know how to change > the language. How is this done? Preferences/General/i18nLanguage. > > I wasn't able to get the sizers to size the texts the same length. > Using boxsizer, couldn't set their "weight" to 1 because I am doing > that already with the combobox. Couldn't use wx.EXPAND because they're > on horizontal sizers. I rarely use boxsizer, maybe a flexgridsizer will do it, it sizes a row or column according to the largest one. > > I wouldn't be surprised if there's a better way of doing. Me too, but I am not sure either :-) > > My first name, Ianaré, is Tupinamba, a south american indian tribe. My > last name is French. I'm a male of our species ;-) > > What about you? You did the German translation, but have a 'fr' TLD? I am Swiss German, living in the South of France with my New Zealand wife. Riaan wanted to see a few different translations to get things going, so I did the German one (or at least started it). Werner |
From: <ia...@gm...> - 2007-04-30 21:35:14
|
aGV5IFdlcm5lciwKCj4gRW5jbG9zZWQgaXMgYSB2ZXJzaW9uIHVzaW5nIHNpemVycyAoY3JlYXRl ZCB3aXRoIHRoZSBGcmFtZSBEZXNpZ25lciksCj4gZG9lcyB0aGlzIGxvb2sgby5rLiBvbiB5b3Vy IG1hY2hpbmU/ICBPbiBWaXN0YSBpdCBsb29rcyBmaW5lIGZvciBFbmdsaXNoCj4gYW5kIEZyZW5j aC4KClNvcnJ5IEkgY291bGRuJ3QgcmVzcG9uZCBzb29uZXIuIEkgZGlkbid0IHJ1biB0aGlzIHNp bmNlIG15IGVtYWlsCnNpbXBseSBwdXQgdGhlIGZpbGUgYXMgdGV4dCBpbiB0aGUgYm9keSByYXRo ZXIgdGhhbiBhcyBhbiBhdHRhY2hlbWVudC4KQ2FuIHlvdSByZXNlbmQgaXQgYXMgYSB6aXAgZmls ZT8KCkhvd2V2ZXIganVzdCBieSBsb29raW5nIGF0IGl0IEkgY2FuIHRlbGwgaXQgd2lsbCBub3Qg d29yayBwcm9wZXJseToKVGhlIHNpemVzIGFyZSBhYnNvbHV0ZS4KCj4gSSBkb24ndCB3YW50IHRv IGRpc2N1cmFnZSB5b3UgZG9pbmcgcGF0Y2hlcyBmb3IgQm9hLCBob3dldmVyIEkgdGhvdWdodAo+ IHRoZSB0b29sIHNob3VsZCBiZSB1c2VkIHRvIGNyZWF0ZSBsYXlvdXRzIC0gYXQgbGVhc3Qgd2hl bmV2ZXIgcG9zc2libGUKPiAoYXMgc29tZSBNUyBjaGFwIHNhaWQgIm9uZSBzaG91bGQgZWF0IG9u ZXMgb3duIGRvZyBmb29kIiB0byBoaXMgTlQKPiBkZXZlbG9wbWVudCBzdHVmZiB3aGVuIHRoZXkg c3RpbGwgd2FudGVkIHRvIHVzZSBPUy8yIHRvIGRvIHRoZWlyCj4gZGV2ZWxvcG1lbnQgOi0pICku CgpJIHRvdGFsbHkgYWdyZWUsIGFuZCBhY3R1YWxseSB0aGUgc2l6ZXJzIHNob3VsZCBiZSBkb25l IGluIGJvYS4gV2hlbiBJCmdldCB5b3VyIHZlcnNpb24gYXMgemlwIGZpbGUgSSB3aWxsIHVzZSB0 aGUgd2F5IHlvdSBkaWQgaXQgZm9yIHRoZQpzaXplcnMuIEhvd2V2ZXIgYXQgcHJlc2VudCB0aW1l IGJvYSB3aWxsIG5vdCBhbGxvdyBub24tYWJzb2x1dGUgc2l6ZXMKZm9yIGVsZW1lbnRzLCB0aGVy ZWZvcmUgdGhhdCBuZWVkcyB0byBiZSBkb25lIGJ5IGhhbmQsIGFuZCBvcGVuaW5nIGl0CnVwIHdp dGggdGhlIGluc3BlY3RvciB3aWxsIG1lc3MgZXZlcnl0aGluZyB1cC4gQWxzbyBJIGRvbid0IHNl ZQpzdXBwb3J0IGZvciB3eC5JRF9DQU5DRUwgYW5kIG90aGVyIHN0b2NrIGJ1dHRvbnMgaW4gQm9h LCB0aGlzIHdvdWxkCmhhdmUgdG8gYmUgZG9uZSBieSBoYW5kIGFzIHdlbGwuCgpJIHRyaWVkIGxv b2tpbmcgaW50byB0aGUgaW5zcGVjdG9yIGNvZGUgdG8gYWxsb3cgcmVsYXRpdmUgc2l6ZXMsIGJ1 dAppdCBpcyBhIGxpdHRsZSBvdmVyIG15IGhlYWQuIElmIFJ5YWFuIGNhbiB0ZWxsIG1lIHdoZXJl IHRvIGxvb2sgZm9yCnRoZSBzaXppbmcgc3R1ZmYgdGhlbiBpdCB3b3VsZCBtYWtlIHRoaW5ncyBN VUNIIGVhc2llci4KCgotLSAKLSBpYW5hcsOpIHPDqXZpCg== |
From: Werner F. B. <wer...@fr...> - 2007-05-01 10:44:40
|
Hi Ianaré, Attached ZIP file are blocked by SourceForge, so only sent it to Ianaré. ianaré sévi wrote: > hey Werner, > >> Enclosed is a version using sizers (created with the Frame Designer), >> does this look o.k. on your machine? On Vista it looks fine for English >> and French. > > Sorry I couldn't respond sooner. No problem. > I didn't run this since my email > simply put the file as text in the body rather than as an attachement. > Can you resend it as a zip file? Here it is. > > However just by looking at it I can tell it will not work properly: > The sizes are absolute. Yeap, but that should not matter, the sizers will over ride them. If I understand all this correctly the sizes given to a constructor of a control are used as it's minimum size, so what I do now a days is normally leave them whatever the default is and then use sizers to control their growth. BTW, the recent GUI's I did I don't use my work around method anymore and they still work fine for me (also only on Windows 2000, XP and Vista, as I don't work on other platforms - at least not yet, still plan to get a Mac one of these days). > >> I don't want to discurage you doing patches for Boa, however I thought >> the tool should be used to create layouts - at least whenever possible >> (as some MS chap said "one should eat ones own dog food" to his NT >> development stuff when they still wanted to use OS/2 to do their >> development :-) ). > > I totally agree, and actually the sizers should be done in boa. When I > get your version as zip file I will use the way you did it for the > sizers. However at present time boa will not allow non-absolute sizes > for elements, therefore that needs to be done by hand, and opening it > up with the inspector will mess everything up. I believe the way it works currently in Boa has to do that Boa generates source code for the GUI and not e.g. XML (xrced) or some other format, so when it does introspection of the source the minimal size is returned by wxPython and not wx.DEFAULTSIZE. However this is way to technical for me and Riaan or someone else might want to correct me on this. > Also I don't see > support for wx.ID_CANCEL and other stock buttons in Boa, this would > have to be done by hand as well. That can be easily fixed, in boa\companions\ButtonCompanions.py at line 38 change it from: self.windowStyles = ['wx.BU_LEFT', 'wx.BU_TOP', 'wx.BU_RIGHT', 'wx.BU_BOTTOM', 'wx.BU_EXACTFIT'] + self.windowStyles to this (Riaan is this the right place or should one create a separate stock button widget?): self.windowStyles = ['wx.BU_LEFT', 'wx.BU_TOP', 'wx.BU_RIGHT', 'wx.BU_BOTTOM', 'wx.BU_EXACTFIT', 'wx.ID_ADD', 'wx.ID_APPLY', 'wx.ID_BOLD', 'wx.ID_CANCEL', 'wx.ID_CLEAR', 'wx.ID_CLOSE', 'wx.ID_COPY', 'wx.ID_CUT', 'wx.ID_DELETE', 'wx.ID_FIND', 'wx.ID_REPLACE', 'wx.ID_BACKWARD', 'wx.ID_DOWN', 'wx.ID_FORWARD', 'wx.ID_UP', 'wx.ID_HELP', 'wx.ID_HOME', 'wx.ID_INDENT', 'wx.ID_INDEX', 'wx.ID_ITALIC', 'wx.ID_JUSTIFY_CENTER', 'wx.ID_JUSTIFY_FILL', 'wx.ID_JUSTIFY_LEFT', 'wx.ID_JUSTIFY_RIGHT', 'wx.ID_NEW', 'wx.ID_NO', 'wx.ID_OK', 'wx.ID_OPEN', 'wx.ID_PASTE', 'wx.ID_PREFERENCES', 'wx.ID_PRINT', 'wx.ID_PREVIEW', 'wx.ID_PROPERTIES', 'wx.ID_EXIT', 'wx.ID_REDO', 'wx.ID_REFRESH', 'wx.ID_REMOVE', 'wx.ID_REVERT_TO_SAVED', 'wx.ID_SAVE', 'wx.ID_SAVEAS', 'wx.ID_STOP', 'wx.ID_UNDELETE', 'wx.ID_UNDERLINE', 'wx.ID_UNDO', 'wx.ID_UNINDENT', 'wx.ID_YES', 'wx.ID_ZOOM_100', 'wx.ID_ZOOM_FIT', 'wx.ID_ZOOM_IN', 'wx.ID_ZOOM_OUT'] + self.windowStyles > > I tried looking into the inspector code to allow relative sizes, but > it is a little over my head. If Ryaan can tell me where to look for > the sizing stuff then it would make things MUCH easier. As explained above with the current design using "standard" wxPython source code to store the design I am not sure if this is possible. I am pretty sure that Riaan had looked into this some time ago and did not find a solution. Maybe an alternative would be to look into supporting e.g. XRCED as an optional GUI designer from within Boa. It seems that there are more and more people using this and it looks like a lot of work is being done on it to support all the new widgets coming into wxPython. If this would be possible then Boa could support the existing Boa code base with the existing Designer and start using XRCED as the new GUI Designer, with the advantage of others doing work to support all the new widgets being constantly added to wxPython. Best regards Werner |
From: Werner F. B. <wer...@fr...> - 2007-05-24 07:25:29
|
My stupid suggestion. Werner F. Bruhin wrote: > ... >> Also I don't see >> support for wx.ID_CANCEL and other stock buttons in Boa, this would >> have to be done by hand as well. > That can be easily fixed, in boa\companions\ButtonCompanions.py at > line 38 change it from: > self.windowStyles = ['wx.BU_LEFT', 'wx.BU_TOP', 'wx.BU_RIGHT', > 'wx.BU_BOTTOM', 'wx.BU_EXACTFIT'] + > self.windowStyles > These are ID's and not styles, so forget my stupid suggestion in this thread. Werner |