Stetic.WidgetEditSession.WidgetEditSession C# (CSharp) Method

WidgetEditSession() public method

public WidgetEditSession ( ProjectBackend sourceProject, WidgetDesignerFrontend frontend, string windowName, Stetic editingBackend, bool autoCommitChanges ) : System
sourceProject ProjectBackend
frontend WidgetDesignerFrontend
windowName string
editingBackend Stetic
autoCommitChanges bool
return System
        public WidgetEditSession(ProjectBackend sourceProject, WidgetDesignerFrontend frontend, string windowName, Stetic.ProjectBackend editingBackend, bool autoCommitChanges)
        {
            this.frontend = frontend;
            this.autoCommitChanges = autoCommitChanges;
            undoManager = new ContainerUndoRedoManager ();
            undoQueue = new UndoQueue ();
            undoManager.UndoQueue = undoQueue;

            sourceWidget = windowName;
            this.sourceProject = sourceProject;

            if (!autoCommitChanges) {
                // Reuse the action groups and icon factory of the main project
                gproject = editingBackend;

                // Attach will prevent the destruction of the action group list by gproject
                gproject.AttachActionGroups (sourceProject.ActionGroups);

                gproject.IconFactory = sourceProject.IconFactory;
                gproject.FileName = sourceProject.FileName;
                gproject.ImagesRootPath = sourceProject.ImagesRootPath;
                gproject.ResourceProvider = sourceProject.ResourceProvider;
                gproject.WidgetLibraries = (ArrayList) sourceProject.WidgetLibraries.Clone ();
                gproject.InternalWidgetLibraries = (ArrayList) sourceProject.InternalWidgetLibraries.Clone ();
                gproject.TargetGtkVersion = sourceProject.TargetGtkVersion;
                sourceProject.ComponentTypesChanged += OnSourceProjectLibsChanged;
                sourceProject.ProjectReloaded += OnSourceProjectReloaded;

                rootWidget = editingBackend.GetTopLevelWrapper (sourceWidget, false);
                if (rootWidget == null) {
                    // Copy the widget to edit from the source project
                    // When saving the file, this project will be merged with the main project.
                    sourceProject.CopyWidgetToProject (windowName, gproject, windowName);
                    rootWidget = gproject.GetTopLevelWrapper (windowName, true);
                }

                gproject.Modified = false;
            }
            else {
                rootWidget = sourceProject.GetTopLevelWrapper (windowName, true);
                gproject = sourceProject;
            }

            rootWidget.Select ();
            undoManager.RootObject = rootWidget;

            gproject.ModifiedChanged += new EventHandler (OnModifiedChanged);
            gproject.Changed += new EventHandler (OnChanged);
            gproject.ProjectReloaded += new EventHandler (OnProjectReloaded);
            gproject.ProjectReloading += new EventHandler (OnProjectReloading);
            //			gproject.WidgetMemberNameChanged += new Stetic.Wrapper.WidgetNameChangedHandler (OnWidgetNameChanged);
        }