1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
6 * Moonlight List (moonlight-list@lists.ximian.com)
8 * Copyright 2008 Novell, Inc. (http://www.novell.com)
10 * See the LICENSE file included with the distribution for details.
17 #include "namescope.h"
18 #include "deployment.h"
20 FrameworkTemplate::FrameworkTemplate ()
22 SetObjectType (Type::FRAMEWORKTEMPLATE
);
28 FrameworkTemplate::~FrameworkTemplate ()
39 FrameworkTemplate::SetXamlBuffer (XamlContext
*xaml_context
, const char *xaml_buffer
)
41 // printf ("%p setting xaml buffer to %s\n", this, xaml_buffer);
42 this->xaml_buffer
= g_strdup (xaml_buffer
);
43 this->xaml_context
= xaml_context
;
47 FrameworkTemplate::GetVisualTree (FrameworkElement
*templateBindingSource
)
50 XamlLoader
*loader
= new XamlLoader (GetResourceBase(), NULL
, xaml_buffer
, GetDeployment ()->GetSurface(), xaml_context
);
53 loader
->SetExpandingTemplate (true);
54 loader
->SetTemplateOwner (templateBindingSource
);
55 loader
->SetImportDefaultXmlns (true);
57 xaml_context
->SetTemplateBindingSource (templateBindingSource
);
59 DependencyObject
*result
= loader
->CreateDependencyObjectFromString (xaml_buffer
, true, &dummy
);
64 NameScope::GetNameScope (result
)->Lock ();
71 ControlTemplate::ControlTemplate ()
73 SetObjectType (Type::CONTROLTEMPLATE
);
76 DataTemplate::DataTemplate ()
78 SetObjectType (Type::DATATEMPLATE
);
82 DataTemplate::GetVisualTree (FrameworkElement
*templateBindingSource
)
84 // DataTemplate ignores the source paramater and always uses null
85 return FrameworkTemplate::GetVisualTree (NULL
);