Difference between revisions of "NewModelViewArchitecture"
From CEGUI Wiki - Crazy Eddie's GUI System (Open Source)
(initial commit.) |
(first draft) |
||
Line 1: | Line 1: | ||
Homepage for the WIP Model-View architecture for CEGUI widgets! | Homepage for the WIP Model-View architecture for CEGUI widgets! | ||
+ | |||
+ | =Introduction= | ||
+ | The new architecture aims to unify the underlying implementation of several widgets so that they will use a common base model provider. This will involve a lot of ABI and API breakage. | ||
+ | |||
+ | =Proposed architecture= | ||
+ | TODO | ||
+ | |||
+ | ==ModelIndex== | ||
+ | Identify uniquely items in the model. | ||
+ | |||
+ | ==ViewModel== | ||
+ | The model for the view, that provides data like items count to the view. This is implemented by the developers that want to use this new architecture. | ||
+ | |||
+ | =Affected widgets= | ||
+ | ===Changed (to the new architecture) widgets=== | ||
+ | * ComboBox + ComboDropList | ||
+ | * Tree | ||
+ | * ListBox | ||
+ | |||
+ | ===New widgets=== | ||
+ | * Grid | ||
+ | * ListBoxWidget (combines model & view together for simple usage cases) | ||
+ | |||
+ | ===Removed/deprecated widgets=== | ||
+ | * MultiColumnList (replaced by Grid) | ||
+ | * ItemListbox (duplicated by ListBox) | ||
+ | |||
+ | ===To decide=== | ||
+ | * ItemListBase | ||
+ | ** It's used in other places like: MenuBase and ScrolledItemListBase | ||
+ | ** Remove the other usages as well? |
Revision as of 22:24, 7 May 2014
Homepage for the WIP Model-View architecture for CEGUI widgets!
Contents
Introduction
The new architecture aims to unify the underlying implementation of several widgets so that they will use a common base model provider. This will involve a lot of ABI and API breakage.
Proposed architecture
TODO
ModelIndex
Identify uniquely items in the model.
ViewModel
The model for the view, that provides data like items count to the view. This is implemented by the developers that want to use this new architecture.
Affected widgets
Changed (to the new architecture) widgets
- ComboBox + ComboDropList
- Tree
- ListBox
New widgets
- Grid
- ListBoxWidget (combines model & view together for simple usage cases)
Removed/deprecated widgets
- MultiColumnList (replaced by Grid)
- ItemListbox (duplicated by ListBox)
To decide
- ItemListBase
- It's used in other places like: MenuBase and ScrolledItemListBase
- Remove the other usages as well?