File Index Symbol Index

#include "GuiReflectionPlugin.h"
namespace
vl
{
namespace
reflection
{
namespace
description
{
using
namespace
presentation
;
using
namespace
presentation
::
compositions
;
using
namespace
presentation
::
controls
;
using
namespace
presentation
::
controls
::
list
;
using
namespace
presentation
::
templates
;
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
#define _ ,
#define GUI_TEMPLATE_PROPERTY_REFLECTION(CLASS, TYPE, NAME, VALUE)\
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(NAME)
/*********************************************************************** Type Declaration (Extra) ***********************************************************************/
/*********************************************************************** Type Declaration (Class) ***********************************************************************/
#define GUI_CONTROL_TEMPLATE(NAME, BASE)\
BEGIN_CLASS_MEMBER(NAME)\
CLASS_MEMBER_BASE(BASE)\
CLASS_MEMBER_CONSTRUCTOR(NAME*(), NO_PARAMETER)\
NAME ## _PROPERTIES(GUI_TEMPLATE_PROPERTY_REFLECTION)\
END_CLASS_MEMBER(NAME)\
#undef GUI_CONTROL_TEMPLATE
#undef GUI_TEMPLATE_PROPERTY_REFLECTION
#undef _
/*********************************************************************** Type Loader ***********************************************************************/
class
GuiTemplateTypeLoader
:
public
Object
,
public
ITypeLoader
{
public
:
void
Load
(
ITypeManager
*
manager
) {
#define GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO(NAME, BASE) ADD_TYPE_INFO(presentation::templates::NAME)
#undef GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO
}
void
Unload
(
ITypeManager
*
manager
) { } };
#endif
bool
LoadGuiTemplateTypes
() {
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
ITypeManager
*
manager
=
GetGlobalTypeManager
();
if
(
manager
) {
Ptr
<
ITypeLoader
>
loader
=
new
GuiTemplateTypeLoader
;
return
manager
->
AddTypeLoader
(
loader
); }
#endif
return
false
; } } } }