static void GenerateWidgetCode(SteticCompilationUnit globalUnit, CodeNamespace globalNs, GenerationOptions options, List<SteticCompilationUnit> units, Gtk.Widget w, ArrayList warnings)
{
// Generate the build method
CodeTypeDeclaration type = CreatePartialClass (globalUnit, units, options, w.Name);
CodeMemberMethod met = new CodeMemberMethod ();
met.Name = "Build";
type.Members.Add (met);
met.ReturnType = new CodeTypeReference (typeof(void));
met.Attributes = MemberAttributes.Family;
if (options.GenerateEmptyBuildMethod) {
GenerateWrapperFields (type, Wrapper.Widget.Lookup (w));
return;
}
met.Statements.Add (
new CodeMethodInvokeExpression (
new CodeTypeReferenceExpression (globalNs.Name + ".Gui"),
"Initialize",
new CodeThisReferenceExpression ()
)
);
Stetic.Wrapper.Widget wwidget = Stetic.Wrapper.Widget.Lookup (w);
if (wwidget.GeneratePublic)
type.TypeAttributes = TypeAttributes.Public;
else
type.TypeAttributes = TypeAttributes.NotPublic;
Stetic.WidgetMap map = Stetic.CodeGenerator.GenerateCreationCode (globalNs, type, w, new CodeThisReferenceExpression (), met.Statements, options, warnings);
CodeGenerator.BindSignalHandlers (new CodeThisReferenceExpression (), wwidget, map, met.Statements, options);
}