示例#1
0
        void RegisterWindow(Stetic.WidgetInfo widget, bool notify)
        {
            if (formInfos != null)
            {
                foreach (GuiBuilderWindow w in formInfos)
                {
                    if (w.RootWidget == widget)
                    {
                        return;
                    }
                }

                GuiBuilderWindow win = new GuiBuilderWindow(this, gproject, widget);
                formInfos.Add(win);

                if (notify)
                {
                    if (WindowAdded != null)
                    {
                        WindowAdded(this, new WindowEventArgs(win));
                    }
                    NotifyChanged();
                }
            }
        }
示例#2
0
		void OnProjectReloaded (object s, EventArgs args)
		{
			rootWidget.Changed -= OnChanged;
			rootWidget = gproject.GetWidget (name);
			if (rootWidget != null)
				rootWidget.Changed += OnChanged;
		}
示例#3
0
 public Stetic.WidgetInfo AddNewComponent(XmlElement element)
 {
     Stetic.WidgetInfo c = SteticProject.AddNewComponent(element);
     // Register the window now, don't wait for the WidgetAdded event since
     // it may take some time, and the GuiBuilderWindow object is needed
     // just after this call
     RegisterWindow(c, true);
     return(c);
 }
示例#4
0
		internal GuiBuilderWindow (GuiBuilderProject fproject, Stetic.Project gproject, Stetic.WidgetInfo rootWidget)
		{
			this.fproject = fproject;
			this.rootWidget = rootWidget;
			this.gproject = gproject;
			name = rootWidget.Name;
			gproject.ProjectReloaded += OnProjectReloaded;
			rootWidget.Changed += OnChanged;
		}
示例#5
0
 void OnProjectReloaded(object s, EventArgs args)
 {
     rootWidget.Changed -= OnChanged;
     rootWidget          = gproject.GetWidget(name);
     if (rootWidget != null)
     {
         rootWidget.Changed += OnChanged;
     }
 }
示例#6
0
 internal GuiBuilderWindow(GuiBuilderProject fproject, Stetic.Project gproject, Stetic.WidgetInfo rootWidget)
 {
     this.fproject             = fproject;
     this.rootWidget           = rootWidget;
     this.gproject             = gproject;
     name                      = rootWidget.Name;
     gproject.ProjectReloaded += OnProjectReloaded;
     rootWidget.Changed       += OnChanged;
 }
示例#7
0
        public void RegisterWindow(Stetic.WidgetInfo widget, bool notify)
        {
            if (formInfos != null)
            {
                foreach (GuiBuilderWindow w in formInfos)
                {
                    if (w.RootWidget == widget)
                    {
                        return;
                    }
                }

                GuiBuilderWindow win = new GuiBuilderWindow(this, gproject, widget);
                formInfos.Add(win);

                GuiBuilderWindow winToRemove = null;
                foreach (GuiBuilderWindow form in formInfosRemoved)
                {
                    if (form.RootWidget == widget)
                    {
                        winToRemove = form;
                        break;
                    }
                }

                if (winToRemove != null)
                {
                    formInfosRemoved.Remove(winToRemove);
                }

                if (notify)
                {
                    if (WindowAdded != null)
                    {
                        WindowAdded(this, new WindowEventArgs(win));
                    }
                    NotifyChanged();
                }
            }
        }
示例#8
0
 public Stetic.WidgetInfo AddNewComponent(Stetic.ComponentType type, string name)
 {
     Stetic.WidgetInfo c = SteticProject.AddNewComponent(type, name);
     RegisterWindow(c, true);
     return(c);
 }