File: ExportGui.cpp

package info (click to toggle)
mygui 3.2.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 36,224 kB
  • sloc: cpp: 118,031; ansic: 30,202; xml: 15,544; cs: 12,602; tcl: 776; python: 417; makefile: 34
file content (131 lines) | stat: -rw-r--r-- 3,866 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "ExportDefine.h"
#include "ExportMarshaling.h"
#include "Generate/MyGUI_Export_MarshalingWidget.h"
#include "ExportMarshalingType.h"
#include <MyGUI.h>
#include "MyGUI_LogManager.h"

namespace Export
{
	//struct HasManagedParentTrait { };

	MYGUIEXPORT MyGUI::Widget* MYGUICALL ExportGui_CreateWidget(
		MyGUI::Widget* _parent,
		Convert<MyGUI::WidgetStyle>::Type _style,
		Convert<const std::string&>::Type _type,
		Convert<const std::string&>::Type _skin,
		Convert<MyGUI::IntCoord>::Type _coord,
		Convert<MyGUI::Align>::Type _align,
		Convert<const std::string&>::Type _layer,
		Convert<const std::string&>::Type _name
	)
	{
		MyGUI::WidgetPtr widget = nullptr;
		if (_parent == nullptr)
		{
			widget = MyGUI::Gui::getInstance().createWidgetT(
				Convert<const std::string&>::From(_type),
				Convert<const std::string&>::From(_skin),
				Convert<const MyGUI::IntCoord&>::From(_coord),
				Convert<MyGUI::Align>::From(_align),
				Convert<const std::string&>::From(_layer),
				Convert<const std::string&>::From(_name));
		}
		else
		{
			widget = _parent->createWidgetT(
				Convert<MyGUI::WidgetStyle>::From(_style),
				Convert<const std::string&>::From(_type),
				Convert<const std::string&>::From(_skin),
				Convert<const MyGUI::IntCoord&>::From(_coord),
				Convert<MyGUI::Align>::From(_align),
				Convert<const std::string&>::From(_layer),
				Convert<const std::string&>::From(_name));
		}

		return widget;
	}

	MYGUIEXPORT void MYGUICALL ExportGui_ExportTest()
	{
		MyGUI::xml::Document* doc = new MyGUI::xml::Document();
		doc->createDeclaration();
		doc->save(MyGUI::UString("MyGUI_ExportTest.xml"));
		delete doc;
	}

	MYGUIEXPORT void MYGUICALL ExportGui_DestroyWidget( MyGUI::Widget* _widget )
	{
		MyGUI::WidgetManager::getInstance().destroyWidget(_widget);
	}

	MYGUIEXPORT void MYGUICALL ExportGui_WrapWidget(MyGUI::Widget* _widget )
	{
		//_widget->setUserData(_wrapper);
		_widget->setUserString("Internal__HasManagedParent", "");
	}

	MYGUIEXPORT void MYGUICALL ExportGui_UnwrapWidget( MyGUI::Widget* _widget )
	{
		//_widget->setUserData(MyGUI::Any::Null);
		_widget->clearUserString("Internal__HasManagedParent");
	}

	MYGUIEXPORT MyGUI::Widget* MYGUICALL ExportGui_GetManagedParent( MyGUI::Widget* _widget )
	{
		MyGUI::Widget* parent = _widget->getParent();
		while (parent != nullptr)
		{
			if (parent->isUserString("Internal__HasManagedParent"))
				return parent;
			parent = parent->getParent();
		}

		return nullptr;
	}

	MYGUIEXPORT Convert<const std::string&>::Type MYGUICALL ExportGui_GetWidgetType( MyGUI::Widget* _widget )
	{
		return Convert<const std::string&>::To(_widget->getTypeName());
	}

	MYGUIEXPORT void MYGUICALL ExportGui_LoadResource(
		Convert<const std::string&>::Type _source)
	{
		MyGUI::ResourceManager::getInstance().load(
			Convert<const std::string&>::From(_source) );
	}

	MYGUIEXPORT void MYGUICALL ExportGui_SetProperty(
		MyGUI::Widget* _widget,
		Convert<const std::string&>::Type _key ,
		Convert<const MyGUI::UString &>::Type _value )
	{
		const MyGUI::UString & value = Convert<const MyGUI::UString &>::From(_value);
		_widget->setProperty(
			Convert<const std::string&>::From(_key) ,
			value.asUTF8());
	}

	MYGUIEXPORT Convert<const std::string&>::Type MYGUICALL ExportGui_GetPath(
		Convert<const std::string&>::Type _filename)
	{
		return Convert<const std::string&>::To(
			MyGUI::DataManager::getInstance().getDataPath(
				Convert<const std::string&>::From(_filename) )
				);
	}

	MYGUIEXPORT void MYGUICALL ExportGui_Log(
		Convert<const std::string&>::Type _section,
		Convert<MyGUI::LogLevel>::Type _level,
		Convert<const std::string&>::Type _message )
	{
		MyGUI::LogManager::getInstance().log(
			Convert<const std::string&>::From(_section),
			Convert<MyGUI::LogLevel>::From(_level),
			Convert<const std::string&>::From(_message),
			__FILE__,
			__LINE__);
	}
}