Thread: [Boa Constr] Impressions and comments...
Status: Beta
Brought to you by:
riaan
From: Mike C. F. <mcf...@ho...> - 2001-03-23 22:59:14
|
Hi all, I've been playing with Boa (from the CVS) for a few days now, working on building a whole slew of dialogues for a wxPython app I'm behind on. Overall I'm impressed. The dialogue building is going well, and it's saving me some serious time. The following is a list of the nits I've run across so far. I'm using Boa primarily as a GUI layout system, rather than as an actual IDE, so most comments will focus on the design window. 1) Need a way to specify a particular ID for a given button (particularly need wxID_OK and wxID_CANCEL so that we can get automatic OK/Cancel behaviour in dialogues. Potentially include OK/Cancel buttons explicitly in the buttons toolbar as well (still need the ability to specify). 2) Inspector's Event Handler Definition needs ability to specify a non-default name for the method 3) Inspector's "checkmark to expand options" is not intuitive, possibly use an owner-drawn icon instead? 4) Option for auto-expansion of the editing window when not showing the designer would help with editing. Would likely require adding the "new" toolbar as a menu in the editor. Alternate window layouts with, for instance, a "design window" set and a "code editing" set might be useful. 5) Would be nice to have drag-and-drop functionality for the widgets. (i.e. drag from the toolbar to the design window). 6) How do you add new items to the list of available widgets (sub-classes, entirely new classes, etceteras)? 7) For a text control, altering "label" in the properties panel changes the control value, but doesn't alter the "value" attribute in the construction panel. (Reverse does work). 8) I couldn't find a "test dialog" function anywhere, i.e. run the dialog using run-time controls and report each event/call/etceteras generated by user interactions. Not sure if I just missed it, but it's a really useful feature for figuring out what's going on. 9) Events panel of the inspector should likely use something other than "small list" style. Because the names are touching the edges it looks as though scrolling only lets you see the "Event" text rather than showing entirely new event classes. A downward-scrolling list gives a better "feel" that there's more items to see. 10) Default editor font for windows is very large on my machine, not sure why that is, I'm running a 1152x864 resolution, font looks to be about 15 or 16 point. It's changeable, of course, but a smaller default might be reasonable. 11) A wxWindow option should be available in the Containers/Layout toolbar. (Or see #6) 12) Could really use "nudge" key bindings for the design window. i.e. the arrow keys nudge the selection 1 pixel or grid-point in their appropriate direction. 13) Would suggest that when grid mode is on that new items be sized in increments of the grid 14) Sequence: Create dialog, Add Button, Add Button, Delete Button, Delete Button --> crashes (consistently) 16) Having menus on a "nested" window (i.e. the edit window) instead of at the top of the screen is "counter-experiential" (unfamiliar/breaks habits) for most GUI users. 17) Having an option to use a single top-level window which always restores a "window set" of the IDE would be useful (versus having to click 3 separate windows to get "back to Boa"). 18) Sizer support would be a nice feature. wxDesigner is cool, but still awkward for doing lots of dialogues. 19) Icon editor or file drag-and-drop or image cut-and-paste would be useful for editing icon attributes. 20) Colour editor should use the "full dialogue" to allow for defining non-16-colour palette colours. 21) Colour fields in the inspector should paint themselves the appropriate colour or contain the "text" of the colour e.g. FFFFFF or 255,255,255 or 1.0,1.0,1.0 (preferably a standardised representation, of course) on the colour (text colour = (255 & (colour.Red()+128)), (255 & (colour.Green()+128)), (255 & (colour.Blue()+128))). Okay, must be off now. Keep up the good work and enjoy yourselves, Mike __________________________________ Mike C. Fletcher Designer, VR Plumber http://members.home.com/mcfletch |
From: Riaan B. <riaan@e.co.za> - 2001-04-09 23:08:36
|
Hi Mike, thanks for the comments, "Mike C. Fletcher" wrote: > > Hi all, > > I've been playing with Boa (from the CVS) for a few days now, working on > building a whole slew of dialogues for a wxPython app I'm behind on. > Overall I'm impressed. The dialogue building is going well, and it's saving > me some serious time. The following is a list of the nits I've run across > so far. I'm using Boa primarily as a GUI layout system, rather than as an > actual IDE, so most comments will focus on the design window. > > 1) Need a way to specify a particular ID for a given button (particularly > need wxID_OK and wxID_CANCEL so that we can get automatic OK/Cancel > behaviour in dialogues. Potentially include OK/Cancel buttons explicitly in > the buttons toolbar as well (still need the ability to specify). I was not aware (or have forgotten) about this behaviour of buttons. Boa should support it. It might be a little tricky because the parent and id parameters are automatically managed internally by Boa and regenerated the whole time. I will look into this. > > 2) Inspector's Event Handler Definition needs ability to specify a > non-default name for the method Yes, I intend to do this soon. The wxChoice in the Inspector will change to a wxComboBox where you may edit the method name. Note that you can change the name at the moment by just renaming it in the source in 2 places, the EVT_* binding and the method name in the class. Boa will respect such changes. > > 3) Inspector's "checkmark to expand options" is not intuitive, possibly use > an owner-drawn icon instead? How intuitive does a boolean control need to be ? ;) I would prefer an small white boxed image of a + and - like in Delphi, but this is low priority for me at the moment. > > 4) Option for auto-expansion of the editing window when not showing the > designer would help with editing. Would likely require adding the "new" > toolbar as a menu in the editor. Alternate window layouts with, for > instance, a "design window" set and a "code editing" set might be useful. The problem with this is that Boa is not in just one state at any given time. You may have 5 frame modules of which 2 have Designers open. Best you would probably be to have the editor window at full width and to show and hide the inspector when needed. There are shortcut keys which will save you time, F11 brings up the Inspector, F12 switches between the Designer and the Editor. This works quite well. > > 5) Would be nice to have drag-and-drop functionality for the widgets. (i.e. > drag from the toolbar to the design window). I prefer the Delphi way, so this is very low priority for me. Patches are welcome to make this an optional feature. > > 6) How do you add new items to the list of available widgets (sub-classes, > entirely new classes, etceteras)? There are many many examples ;) I will add an 'Extending Boa Constructor' section to the Help when I have time. Basically you need to do the following: * Define a Companion class that mirrors the component that you want to wrap; Constructor, events, extra properties, style flags, etc. See code for details. * Define new Property Editors if necessary. * Register the component and companion with the Palette. See bottom of Companion modules for examples * Add a 24x24 bitmap for the component to the Images/Palette and Images/Palette/Gray directories. The one in the Gray dir should have a gray background while the other should have a magenta background. * Restart Boa I've just refactored the Palette code a bit so that registering should be simpler. I've also added the module Companions.UserCompanions to which you should add your own companions. As another self contained example I've wrapped wxCalendarCtrl, but it's not yet on the Palette by default as there are still some problems. To enable it remove the comment in line 78 in Companions.UserCompanions. Please take a look at the calendar code in Companions.UserCompanions. There is also a Property Editor example. > > 7) For a text control, altering "label" in the properties panel changes the > control value, but doesn't alter the "value" attribute in the construction > panel. (Reverse does work). It's a more general problem where changing one property affects another but Boa can not know this unless it is explicitly coded. I do handle some properties and will cover them all as time goes by. > > 8) I couldn't find a "test dialog" function anywhere, i.e. run the dialog > using run-time controls and report each event/call/etceteras generated by > user interactions. Not sure if I just missed it, but it's a really useful > feature for figuring out what's going on. There is no test dialog function as such, but "Edit -> Add simple app" comes close. It adds a code to the module which creates the frame and a wxPySimpleApp(). Now run the module with the Blue arrow (F10/Run module) > > 9) Events panel of the inspector should likely use something other than > "small list" style. Because the names are touching the edges it looks as > though scrolling only lets you see the "Event" text rather than showing > entirely new event classes. A downward-scrolling list gives a better "feel" > that there's more items to see. The scrollbar which appears on downward scrolling list controls took too much horizontal space on lower resolutions for my taste, that's why it's small list style. Maybe I should make this a preference? > > 10) Default editor font for windows is very large on my machine, not sure > why that is, I'm running a 1152x864 resolution, font looks to be about 15 or > 16 point. It's changeable, of course, but a smaller default might be > reasonable. Seems fine to me. Can you look at the screenshots on the boa web site and tell me if your font is bigger than what I see? > > 11) A wxWindow option should be available in the Containers/Layout toolbar. > (Or see #6) Ok, I've added it. > > 12) Could really use "nudge" key bindings for the design window. i.e. the > arrow keys nudge the selection 1 pixel or grid-point in their appropriate > direction. This is already done. Ctrl-Cursor keys moves the current selection in the Designer in 1 pixel increments. Shift-Cursor sizes it. > > 13) Would suggest that when grid mode is on that new items be sized in > increments of the grid Grid mode is purely a visual setting. You can set the size in Views.SelectionTags.screenGran. Controls are already sized in the increments of the grid. > > 14) Sequence: Create dialog, Add Button, Add Button, Delete Button, Delete > Button --> crashes (consistently) Not for me. You may try to identify where it happens. Run Boa with command-line param -T until it crashes (try crash it as soon as possible as this trace file grows VERY quickly. After crashing restart Boa normally and while on the Application view of the Boa.py file, select "Edit -> View tracelog as traceback". This may churn for quite a while (there are limits you can set in ErrorStack.py for the impatient) and will then show a traceback of where Boa crashed. > > 16) Having menus on a "nested" window (i.e. the edit window) instead of at > the top of the screen is "counter-experiential" (unfamiliar/breaks habits) > for most GUI users. That is the way it works ;) The Editor is the IDE (all menu/toolbar actions apply to the Editor, not the Palette). The Palette could conceivably be optionally hidden when Boa is used more as an IDE than a GUI builder. All I can say is please get used to it. > > 17) Having an option to use a single top-level window which always restores > a "window set" of the IDE would be useful (versus having to click 3 separate > windows to get "back to Boa"). On windows I think this is possible to do with Activate events. Would it suffice if the Palette raised the Editor and Inspector when it's activated? > > 18) Sizer support would be a nice feature. wxDesigner is cool, but still > awkward for doing lots of dialogues. When I can figure out how to integrate Sizers into the current architechture I will. In the meanwhile Anchors can cover some of your layout needs. > > 19) Icon editor or file drag-and-drop or image cut-and-paste would be useful > for editing icon attributes. Open for patches/contributions. > > 20) Colour editor should use the "full dialogue" to allow for defining > non-16-colour palette colours. Ok done, this was just a setting on the ColourDialog I had to set. Docs says it should be on by default. > > 21) Colour fields in the inspector should paint themselves the appropriate > colour or contain the "text" of the colour e.g. FFFFFF or 255,255,255 or > 1.0,1.0,1.0 (preferably a standardised representation, of course) on the > colour (text colour = (255 & (colour.Red()+128)), (255 & > (colour.Green()+128)), (255 & (colour.Blue()+128))). I agree and have wanted to do this, and in general improve property editors, but have not had time yet. > > Okay, must be off now. Keep up the good work and enjoy yourselves, > Mike Thanks again for all the feedback! > > __________________________________ > Mike C. Fletcher > Designer, VR Plumber > http://members.home.com/mcfletch > > _______________________________________________ > Boa-constructor-users mailing list > Boa...@li... > http://lists.sourceforge.net/lists/listinfo/boa-constructor-users -- Riaan Booysen ___________________________________________________ Boa Constructor - RAD GUI building IDE for wxPython http://boa-constructor.sourceforge.net |