/***********************************************************************
!!!!!! DO NOT MODIFY !!!!!!

GacGen.exe ResourceToolstrip.xml

This file is generated by Workflow compiler
https://github.com/vczh-libraries
***********************************************************************/

#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_EDITORTOOLSTRIPPARTIALCLASSES
#define VCZH_WORKFLOW_COMPILER_GENERATED_EDITORTOOLSTRIPPARTIALCLASSES

#include "EditorBase.h"

#if defined( _MSC_VER)
#pragma warning(push)
#pragma warning(disable:4250)
#elif defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wparentheses-equality"
#elif defined(__GNUC__)
#pragma GCC diagnostic push
#endif

namespace vl_workflow_global
{
	struct __vwsnf1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
	struct __vwsnf2_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
	struct __vwsnf3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
	struct __vwsnf4_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
	class __vwsnc1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription;
	class __vwsnc2_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
	class __vwsnc3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
}

namespace demo
{
	class DocumentEditorToolstripConstructor;
	class DocumentEditorToolstrip;
	class MainWindowConstructor;
	class MainWindow;

	class DocumentEditorToolstripConstructor : public ::vl::Object, public ::vl::reflection::Description<DocumentEditorToolstripConstructor>
	{
		friend class ::vl_workflow_global::__vwsnc2_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
		friend class ::vl_workflow_global::__vwsnc3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
		friend struct ::vl_workflow_global::__vwsnf3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
		friend struct ::vl_workflow_global::__vwsnf4_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
		friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<DocumentEditorToolstripConstructor>;
#endif
	protected:
		::demo::DocumentEditorToolstrip* self;
		::vl::presentation::controls::GuiToolstripButton* buttonAlignment;
		::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_0;
		::vl::presentation::controls::GuiToolstripMenuBar* __vwsn_precompile_1;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_2;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_3;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_4;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_5;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_6;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_7;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_8;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_9;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_10;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_11;
		::vl::presentation::controls::GuiToolstripGroupContainer* __vwsn_precompile_12;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_13;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_14;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_15;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_16;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_17;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_18;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_19;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_20;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_21;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_22;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_23;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_24;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_25;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_26;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_27;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_28;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_29;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_30;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_31;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_32;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_33;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_34;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_35;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_36;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_37;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_38;
		::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_39;
		::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_40;
		::vl::presentation::controls::GuiToolstripToolBar* __vwsn_precompile_41;
		::vl::presentation::controls::GuiToolstripGroupContainer* __vwsn_precompile_42;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_43;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_44;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_45;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_46;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_47;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_48;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_49;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_50;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_51;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_52;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_53;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_54;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_55;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_56;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_57;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_58;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_59;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_60;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_61;
		::vl::presentation::controls::GuiToolstripGroup* __vwsn_precompile_62;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_63;
		::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_64;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_65;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_66;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_67;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_68;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_69;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_70;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_71;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_72;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_73;
		::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_74;
		::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_75;
		void __vwsn_demo_DocumentEditorToolstrip_Initialize(::demo::DocumentEditorToolstrip* __vwsn_this_);
	public:
		DocumentEditorToolstripConstructor();
	};

	class DocumentEditorToolstrip : public ::demo::DocumentEditorBase, public ::demo::DocumentEditorToolstripConstructor, public ::vl::reflection::Description<DocumentEditorToolstrip>
	{
		friend class ::demo::DocumentEditorToolstripConstructor;
		friend class ::vl_workflow_global::__vwsnc2_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
		friend class ::vl_workflow_global::__vwsnc3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription;
		friend struct ::vl_workflow_global::__vwsnf3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
		friend struct ::vl_workflow_global::__vwsnf4_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
		friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<DocumentEditorToolstrip>;
#endif
	public:
		DocumentEditorToolstrip();
		~DocumentEditorToolstrip();
	};

	class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description<MainWindowConstructor>
	{
		friend class ::vl_workflow_global::__vwsnc1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription;
		friend struct ::vl_workflow_global::__vwsnf1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
		friend struct ::vl_workflow_global::__vwsnf2_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
		friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<MainWindowConstructor>;
#endif
	protected:
		::demo::DocumentEditorToolstrip* editor;
		::demo::MainWindow* __vwsn_precompile_0;
		::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_1;
		void __vwsn_demo_MainWindow_Initialize(::demo::MainWindow* __vwsn_this_);
	public:
		MainWindowConstructor();
	};

	class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description<MainWindow>
	{
		friend class ::demo::MainWindowConstructor;
		friend class ::vl_workflow_global::__vwsnc1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription;
		friend struct ::vl_workflow_global::__vwsnf1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
		friend struct ::vl_workflow_global::__vwsnf2_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
		friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<MainWindow>;
#endif
	public:
		MainWindow();
		~MainWindow();
	};

}
/***********************************************************************
Global Variables and Functions
***********************************************************************/

namespace vl_workflow_global
{
	class EditorToolstrip
	{
	public:

		static EditorToolstrip& Instance();
	};

/***********************************************************************
Closures
***********************************************************************/

	struct __vwsnf1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_
	{
		::demo::MainWindowConstructor* __vwsnthis_0;

		__vwsnf1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0);

		void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const;
	};

	struct __vwsnf2_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_
	{
		::demo::MainWindowConstructor* __vwsnthis_0;

		__vwsnf2_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_(::demo::MainWindowConstructor* __vwsnctorthis_0);

		void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiRequestEventArgs* arguments) const;
	};

	struct __vwsnf3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_
	{
		::demo::DocumentEditorToolstripConstructor* __vwsnthis_0;

		__vwsnf3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_(::demo::DocumentEditorToolstripConstructor* __vwsnctorthis_0);

		void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const;
	};

	struct __vwsnf4_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_
	{
		::demo::DocumentEditorToolstripConstructor* __vwsnthis_0;

		__vwsnf4_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize_(::demo::DocumentEditorToolstripConstructor* __vwsnctorthis_0);

		void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const;
	};

	class __vwsnc1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription
	{
	public:
		::demo::MainWindowConstructor* __vwsnthis_0;

		__vwsnc1_EditorToolstrip_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0);

		::demo::DocumentEditorToolstrip* __vwsn_bind_cache_0 = nullptr;
		::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0;
		bool __vwsn_bind_opened_ = false;
		bool __vwsn_bind_closed_ = false;
		void __vwsn_bind_activator_();
		void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1);
		bool Open() override;
		bool Update() override;
		bool Close() override;
	};

	class __vwsnc2_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription
	{
	public:
		::demo::DocumentEditorToolstripConstructor* __vwsnthis_0;

		__vwsnc2_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription(::demo::DocumentEditorToolstripConstructor* __vwsnctorthis_0);

		::demo::DocumentEditorToolstrip* __vwsn_bind_cache_0 = nullptr;
		::vl::presentation::controls::GuiToolstripCommand* __vwsn_bind_cache_1 = nullptr;
		::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0;
		::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0;
		bool __vwsn_bind_opened_ = false;
		bool __vwsn_bind_closed_ = false;
		void __vwsn_bind_activator_();
		void __vwsn_bind_callback_0_0();
		void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1);
		bool Open() override;
		bool Update() override;
		bool Close() override;
	};

	class __vwsnc3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription
	{
	public:
		::demo::DocumentEditorToolstripConstructor* __vwsnthis_0;

		__vwsnc3_EditorToolstrip_demo_DocumentEditorToolstripConstructor___vwsn_demo_DocumentEditorToolstrip_Initialize__vl_reflection_description_IValueSubscription(::demo::DocumentEditorToolstripConstructor* __vwsnctorthis_0);

		::vl::presentation::controls::GuiDocumentViewer* __vwsn_bind_cache_0 = nullptr;
		::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0;
		bool __vwsn_bind_opened_ = false;
		bool __vwsn_bind_closed_ = false;
		void __vwsn_bind_activator_();
		void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1);
		bool Open() override;
		bool Update() override;
		bool Close() override;
	};
}

#if defined( _MSC_VER)
#pragma warning(pop)
#elif defined(__clang__)
#pragma clang diagnostic pop
#elif defined(__GNUC__)
#pragma GCC diagnostic pop
#endif

#endif
