v9.05 Issues


29-06-2009 13:43:50

Hi Kungfoomasta,

I'm back to give QuickGUI another run. I've started setting up a pretty extensive GUI and here are some preliminary issues I've run into straight off the bat.

1. List appears to be missing methods to create specific list items that take the appropriate desc. i.e. the following methods appear to be missing. I can see ways to create these, but I figured methods like these will make it a lot easier.

ListImageItem* createImageItem(ListImageItemDesc* d, int index = -1)
ListPanelItem* createPanelItem(ListImagePanelDesc* d, int index = -1)
ListTextItem* createTextItem(ListImageTextDesc* d, int index = -1)

2. ToolBar is missing a method to create a menu that takes the appropriate desc. Same deal as before.

Menu* createMenu(MenuDesc* d, int index = -1)

3. Menu is missing methods to create specific menu items that take the appropriate desc. Same again :?

MenuPanelItem* createPanelItem(MenuImagePanelDesc* d, int index = -1)
MenuTextItem* createTextItem(MenuImageTextDesc* d, int index = -1)

4. Why is TabPage* createTabPage(TabPageDesc* d, int index = -1) protected?

5. DescManager appears to pass a cached Desc when calling any of the getDefault*Desc() methods. This means that settings are retained from last use and if not reset causes strange behaviour. Correct me if I'm wrong, but I think these methods should be resetting their Desc before passing it.

6. Would be great if there was a MenuSeparatorItem widget that is used to create the horizontal rule you see in menus to separate logical groups of menu items.

7. When you have a ModalWindow open, you can still pass input to the underlying scene around the window. In my opinion, a modal window should block all user input so that mouse clicks anywhere outside the window are captured and discarded. Otherwise I find that I can modify my scene around an open modal window.


29-06-2009 19:05:30

hey rubasurex, thanks for the input!

As you've found out, I've removed some older APIs allowing creation of certain widgets using a desc. The reason for this is that these widgets are very simple in nature, and while they have tons of properties because of inheritance, the properties are not meant to be modified by end users. Widgets such as ListItems, MenuItems, TreeNodes, etc. are very basic in nature, all I really need from the user is Text and/or Image file, and the widget can be created. Users cannot modify the size, position, dragability, resizability, min/max size etc. for these widgets. Allowing users to use a Desc would give users access to properties that are not end user configurable.

The reason for the protected desc member is that I still re-use the desc method to create Widgets, but I control how the desc gets populated, before its used to create the Widget. (answer to number 4)

5. These are default provided descs that the user can use. You can create your own and use them, or re-use provided ones. You raise an interesting point of resetting them prior to giving access to them, its a decent idea, although users can simply get access to a desc, and use it to create 10 buttons, for example, and theres no way I can reset the desc to default values between each use. I imagine there would be scenarios where users would re-use the desc, only changing 1 or 2 fields, ie position and text, for mass button creation.

6. I need to create a MenuImageItem and supply a default separator image for use. This is pretty simple, I will try to add this in by Wednesday.

7. From what I see in the Editor it looks like input is being blocked. Can you give me a minimal layout so I can repro and fix?


30-06-2009 06:55:58

I added in a "MenuImageItem" Widget, allowing users to create Menu's with images. I tried to see how this would look as Menu Separators, but I'm not sure if it really fits. (And yes, I know that separator looks bad, if only I knew how to use Gimp..) It seems that Menu Separators are not the same size as normal Menu Items, which makes things difficult, as I rely on all items being the same size. I'll have to think about it some and see what can be done. At least we can now have Image Menu's with QuickGUI. 8)