This commit is contained in:
Zihan Chen
2018-04-02 03:46:32 -07:00
parent a4ed8b7d4b
commit 13842387a3
11 changed files with 2207 additions and 1742 deletions
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Instance ref.CodeBehind="true" ref.Class="demo::MainWindow"> <Folder>
<Instance name="MainWindowResource">
<Instance ref.CodeBehind="true" ref.Class="demo::MainWindow">
<ref.Members> <ref.Members>
<![CDATA[ <![CDATA[
@cpp:UserImpl @cpp:UserImpl
@@ -25,6 +27,9 @@
@cpp:Protected @cpp:Protected
var findWindow : GuiWindow^ = null; var findWindow : GuiWindow^ = null;
@cpp:Protected
var recentFiles : observe ToolstripCommand*[] = {};
]]> ]]>
</ref.Members> </ref.Members>
<Window ref.Name="self" Text="TextEditor" ClientSize="x:480 y:320" ev.WindowClosing="window_Closing"> <Window ref.Name="self" Text="TextEditor" ClientSize="x:480 y:320" ev.WindowClosing="window_Closing">
@@ -152,6 +157,17 @@
<MenuItemButton Command-ref="commandFileSave" Alt="S"/> <MenuItemButton Command-ref="commandFileSave" Alt="S"/>
<MenuItemButton Command-ref="commandFileSaveAs" Alt="A"/> <MenuItemButton Command-ref="commandFileSaveAs" Alt="A"/>
</ToolstripGroup> </ToolstripGroup>
<MenuItemButton Text="Recent Files">
<att.SubMenu-set>
<MenuItemButton Text="(Empty)" Enabled="false" Visible-bind="self.recentFiles.observe as _(_.Count == 0 on _.ItemChanged)" />
<CustomControl Visible-bind="self.recentFiles.observe as _(_.Count != 0 on _.ItemChanged)">
<RepeatStack AlignmentToParent="left:0 top:0 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren" Direction="Vertical">
<att.ItemSource-eval>self.recentFiles</att.ItemSource-eval>
<att.ItemTemplate>demo::RecentFileItemTemplate</att.ItemTemplate>
</RepeatStack>
</CustomControl>
</att.SubMenu-set>
</MenuItemButton>
<MenuItemButton Command-ref="commandFileExit" Alt="X"/> <MenuItemButton Command-ref="commandFileExit" Alt="X"/>
</ToolstripGroupContainer> </ToolstripGroupContainer>
</att.SubMenu-set> </att.SubMenu-set>
@@ -229,4 +245,17 @@
</Cell> </Cell>
</Table> </Table>
</Window> </Window>
</Instance> </Instance>
</Instance>
<Instance name="RecentFileItemTemplateResource">
<Instance ref.CodeBehind="false" ref.Class="demo::RecentFileItemTemplate">
<ref.Parameter Name="ViewModel" Class="presentation::controls::GuiToolstripCommand"/>
<ControlTemplate>
<MenuItemButton Command-ref="ViewModel">
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
</MenuItemButton>
</ControlTemplate>
</Instance>
</Instance>
</Folder>
@@ -11,5 +11,5 @@
<Folder name="Images" content="Link">Images\Folder.xml</Folder> <Folder name="Images" content="Link">Images\Folder.xml</Folder>
<Folder name="AboutWindow" content="Link">AboutWindow.xml</Folder> <Folder name="AboutWindow" content="Link">AboutWindow.xml</Folder>
<Folder name="FindWindow" content="Link">FindWindow.xml</Folder> <Folder name="FindWindow" content="Link">FindWindow.xml</Folder>
<Instance name="MainWindowResource" content="File">MainWindow.xml</Instance> <Folder name="MainWindow" content="Link">MainWindow.xml</Folder>
</Resource> </Resource>
@@ -1,4 +1,4 @@
/*********************************************************************** /***********************************************************************
!!!!!! DO NOT MODIFY !!!!!! !!!!!! DO NOT MODIFY !!!!!!
GacGen.exe Resource.xml GacGen.exe Resource.xml
@@ -28,8 +28,8 @@ namespace demo
class AboutWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::AboutWindowConstructor, public ::vl::reflection::Description<AboutWindow> class AboutWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::AboutWindowConstructor, public ::vl::reflection::Description<AboutWindow>
{ {
friend class ::demo::AboutWindowConstructor; friend class ::demo::AboutWindowConstructor;
friend struct ::vl_workflow_global::__vwsnf26_Demo_demo_AboutWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf2_Demo_demo_AboutWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno25_Demo_demo_AboutWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno1_Demo_demo_AboutWindowConstructor___vwsn_initialize_instance__;
#ifndef VCZH_DEBUG_NO_REFLECTION #ifndef VCZH_DEBUG_NO_REFLECTION
friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<AboutWindow>; friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<AboutWindow>;
#endif #endif
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -37,6 +37,8 @@ namespace vl
IMPL_CPP_TYPE_INFO(demo::FindWindowConstructor) IMPL_CPP_TYPE_INFO(demo::FindWindowConstructor)
IMPL_CPP_TYPE_INFO(demo::MainWindow) IMPL_CPP_TYPE_INFO(demo::MainWindow)
IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor) IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor)
IMPL_CPP_TYPE_INFO(demo::RecentFileItemTemplate)
IMPL_CPP_TYPE_INFO(demo::RecentFileItemTemplateConstructor)
#define _ , #define _ ,
BEGIN_CLASS_MEMBER(::demo::AboutWindow) BEGIN_CLASS_MEMBER(::demo::AboutWindow)
@@ -128,6 +130,7 @@ namespace vl
CLASS_MEMBER_FIELD(fileName) CLASS_MEMBER_FIELD(fileName)
CLASS_MEMBER_FIELD(findWindow) CLASS_MEMBER_FIELD(findWindow)
CLASS_MEMBER_FIELD(isXml) CLASS_MEMBER_FIELD(isXml)
CLASS_MEMBER_FIELD(recentFiles)
END_CLASS_MEMBER(::demo::MainWindow) END_CLASS_MEMBER(::demo::MainWindow)
BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor) BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor)
@@ -191,6 +194,11 @@ namespace vl
CLASS_MEMBER_FIELD(__vwsn_precompile_59) CLASS_MEMBER_FIELD(__vwsn_precompile_59)
CLASS_MEMBER_FIELD(__vwsn_precompile_6) CLASS_MEMBER_FIELD(__vwsn_precompile_6)
CLASS_MEMBER_FIELD(__vwsn_precompile_60) CLASS_MEMBER_FIELD(__vwsn_precompile_60)
CLASS_MEMBER_FIELD(__vwsn_precompile_61)
CLASS_MEMBER_FIELD(__vwsn_precompile_62)
CLASS_MEMBER_FIELD(__vwsn_precompile_63)
CLASS_MEMBER_FIELD(__vwsn_precompile_64)
CLASS_MEMBER_FIELD(__vwsn_precompile_65)
CLASS_MEMBER_FIELD(__vwsn_precompile_7) CLASS_MEMBER_FIELD(__vwsn_precompile_7)
CLASS_MEMBER_FIELD(__vwsn_precompile_8) CLASS_MEMBER_FIELD(__vwsn_precompile_8)
CLASS_MEMBER_FIELD(__vwsn_precompile_9) CLASS_MEMBER_FIELD(__vwsn_precompile_9)
@@ -220,6 +228,22 @@ namespace vl
CLASS_MEMBER_FIELD(textBox) CLASS_MEMBER_FIELD(textBox)
END_CLASS_MEMBER(::demo::MainWindowConstructor) END_CLASS_MEMBER(::demo::MainWindowConstructor)
BEGIN_CLASS_MEMBER(::demo::RecentFileItemTemplate)
CLASS_MEMBER_CONSTRUCTOR(::demo::RecentFileItemTemplate*(::vl::presentation::controls::GuiToolstripCommand*), { L"__vwsn_ctor_parameter_ViewModel" })
CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER)
CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel)
CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel)
END_CLASS_MEMBER(::demo::RecentFileItemTemplate)
BEGIN_CLASS_MEMBER(::demo::RecentFileItemTemplateConstructor)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::RecentFileItemTemplateConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" })
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
CLASS_MEMBER_FIELD(ViewModel)
END_CLASS_MEMBER(::demo::RecentFileItemTemplateConstructor)
#undef _ #undef _
class DemoTypeLoader : public Object, public ITypeLoader class DemoTypeLoader : public Object, public ITypeLoader
{ {
@@ -232,6 +256,8 @@ namespace vl
ADD_TYPE_INFO(::demo::FindWindowConstructor) ADD_TYPE_INFO(::demo::FindWindowConstructor)
ADD_TYPE_INFO(::demo::MainWindow) ADD_TYPE_INFO(::demo::MainWindow)
ADD_TYPE_INFO(::demo::MainWindowConstructor) ADD_TYPE_INFO(::demo::MainWindowConstructor)
ADD_TYPE_INFO(::demo::RecentFileItemTemplate)
ADD_TYPE_INFO(::demo::RecentFileItemTemplateConstructor)
} }
void Unload(ITypeManager* manager) void Unload(ITypeManager* manager)
@@ -40,6 +40,8 @@ namespace vl
DECL_TYPE_INFO(::demo::FindWindowConstructor) DECL_TYPE_INFO(::demo::FindWindowConstructor)
DECL_TYPE_INFO(::demo::MainWindow) DECL_TYPE_INFO(::demo::MainWindow)
DECL_TYPE_INFO(::demo::MainWindowConstructor) DECL_TYPE_INFO(::demo::MainWindowConstructor)
DECL_TYPE_INFO(::demo::RecentFileItemTemplate)
DECL_TYPE_INFO(::demo::RecentFileItemTemplateConstructor)
#endif #endif
extern bool LoadDemoTypes(); extern bool LoadDemoTypes();
@@ -28,8 +28,8 @@ namespace demo
class FindWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::FindWindowConstructor, public ::vl::reflection::Description<FindWindow> class FindWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::FindWindowConstructor, public ::vl::reflection::Description<FindWindow>
{ {
friend class ::demo::FindWindowConstructor; friend class ::demo::FindWindowConstructor;
friend struct ::vl_workflow_global::__vwsnf27_Demo_demo_FindWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf3_Demo_demo_FindWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf28_Demo_demo_FindWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_FindWindowConstructor___vwsn_initialize_instance__;
#ifndef VCZH_DEBUG_NO_REFLECTION #ifndef VCZH_DEBUG_NO_REFLECTION
friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<FindWindow>; friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<FindWindow>;
#endif #endif
@@ -294,6 +294,7 @@ namespace demo
, fileName(::vl::WString(L"", false)) , fileName(::vl::WString(L"", false))
, isXml(false) , isXml(false)
, findWindow(::vl::Ptr<::vl::presentation::controls::GuiWindow>()) , findWindow(::vl::Ptr<::vl::presentation::controls::GuiWindow>())
, recentFiles(::vl::reflection::description::IValueObservableList::Create())
{ {
auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::MainWindow", false)); auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::MainWindow", false));
auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory()));
@@ -34,30 +34,35 @@ namespace demo
friend class ::vl_workflow_global::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc4_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription;
friend class ::vl_workflow_global::__vwsnc5_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc5_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription;
friend class ::vl_workflow_global::__vwsnc6_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc6_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription;
friend struct ::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend class ::vl_workflow_global::__vwsnc7_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription;
friend struct ::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend class ::vl_workflow_global::__vwsnc8_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription;
friend struct ::vl_workflow_global::__vwsnf15_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf14_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf17_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf16_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf19_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf18_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsnf20_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf22_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf24_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf29_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf30_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno14_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno16_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno15_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno18_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno17_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno1_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno19_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno20_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno21_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno21_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno22_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno23_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno23_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno24_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno25_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno2_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno26_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno3_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno27_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno4_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno28_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno5_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno31_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno6_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno6_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno7_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno7_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno8_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; friend struct ::vl_workflow_global::__vwsno8_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
friend struct ::vl_workflow_global::__vwsno9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__;
#ifndef VCZH_DEBUG_NO_REFLECTION #ifndef VCZH_DEBUG_NO_REFLECTION
friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<MainWindow>; friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<MainWindow>;
#endif #endif
@@ -71,6 +76,7 @@ namespace demo
::vl::WString fileName; ::vl::WString fileName;
bool isXml; bool isXml;
::vl::Ptr<::vl::presentation::controls::GuiWindow> findWindow; ::vl::Ptr<::vl::presentation::controls::GuiWindow> findWindow;
::vl::Ptr<::vl::reflection::description::IValueObservableList> recentFiles;
void commandFileNewText_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments); void commandFileNewText_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments);
void commandFileNewXml_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments); void commandFileNewXml_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments);
void commandFileOpen_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments); void commandFileOpen_Executed(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments);
Binary file not shown.