diff --git a/TODO.md b/TODO.md index 6c426ef1..284f8ee0 100644 --- a/TODO.md +++ b/TODO.md @@ -9,23 +9,23 @@ https://zhuanlan.zhihu.com/p/39369370 - [ ] `GlobalStringKey` need to remember the `GlobalStringKeyManager` object, and if the global object is changed, it means this key becomes a wild pointer, it should crash. - [ ] `let X = Y in (F(X.a.b.c))` reports `X does not exist in the current scope` in binding property value - while `F((let X = Y.a.b).c)` works - -### Feature - -- [ ] Move dependended plugin from GacUI to Vlpp (optional) -- [ ] Cannot change column size during datagrid's bounds changing, which is by designed and this could be solved by calling InvokeInMainThread. But new feature for solving this is under considering - - [ ] Considering GuiBindableDataGrid updating columns' sizes according to configuration automatically, and call `GuiControl::InvokeOrDelayIfRendering` (indirectly) inside `DataColumn::NotifyAllColumnsUpdate` when necessary. - - [ ] Like a table, a column can use `Absolute`, `Draggable` and `Percentage` to specify a column size. Only when a column is draggable, users can use their mouse to change the size of a column, and then trigger `IColumnItemView::SetColumnSize` -- [ ] Consider drag and drop support, with column drag and drop -- [ ] New item arranger that can accept a `GuiRepeatCompositionBase` -- [ ] **Update Release** -- [ ] New default control templates with animation, written in XML generated C++ code. -- [ ] A window can be called to update all its controls' and components' template -- [ ] Tutorials use the new default control templates -- [ ] **Update Release** -- [ ] Fix GacGen reports only "error dumping resource file" while the resource file contains some syntax errors preventing GacGen from reading it +- [ ] GacGen reports only "error dumping resource file" while the resource file contains some syntax errors preventing GacGen from reading it - Unable to repro +### Feature (not necessary 1.0) + +- [ ] Drag and Drop framework +- [ ] `IColumnItemView` + - [ ] Support `GuiCellOption` on `GetColumnSize` and `SetColumnSize` + - [ ] Column drag and drop +- [ ] New `GuiListControl::IItemArranger` that can accept a `GuiRepeatCompositionBase` +- [ ] - `` tags +- [ ] INativeImage::SaveToStream handle correctly for git format. It is possible that LoadFromStream need to process diff between git raw frames. +- [ ] New skin + - [ ] New default control templates with animation, written in XML generated C++ code. + - [ ] A window can be called to update all its controls' and components' template + - [ ] Tutorials use the new default control templates + ## GacUI 2.0 ### Vlpp @@ -78,15 +78,7 @@ https://zhuanlan.zhihu.com/p/39369370 ## GacUI -### Before 1.0 (Optional) - -- `` tags -- INativeImage::SaveToStream handle correctly for git format. It is possible that LoadFromStream need to process diff between git raw frames. - -### After 1.0 - - Use collection interfaces on function signatures. -- Move to new ParserGen. ### Cross Platforms @@ -97,20 +89,14 @@ https://zhuanlan.zhihu.com/p/39369370 ### Graphics -- Proposal 1 - - MetaImageElement and MetaImage data structure +- 2D drawing API +- restriction-based MetaImageElement - Remove PolygonElement - - Default non-text element renderer using MetaImageElement - - Replacing GDI and D2D non-text element renderers - - Meta3DElement and Meta3D data structure + - Default non-text element renderer using 2D drawing API +- Meta3DElement and Meta3D data structure - Default Meta3DElement renderer using MetaImageElement with a surface sorting based algorithm -- Proposal 2 - - 2D drawing API - - restriction-based meta image - - basic 3D rendering based on the above item with a surface sorting based algorithm -- Others - - GIF player - - video player +- GIF player +- video player ### Controls