public Stetic.Wrapper.ActionGroup AddNewActionGroup(string name)
 {
     Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup();
     group.Name = name;
     ActionGroups.Add(group);
     return(group);
 }
        public void RestoreState(object[] data)
        {
            if (data == null)
            {
                return;
            }

            groupCopy      = new Stetic.Wrapper.ActionGroup();
            groupCopy.Name = (string)data [0];

            XmlDocument doc = new XmlDocument();

            doc.LoadXml((string)data [2]);

            // Create the map which links edited action with source actions
            actionCopyMap.Clear();
            foreach (DictionaryEntry e in (Hashtable)data [1])
            {
                Wrapper.Action dupaction = groupCopy.GetAction((string)e.Key);
                Wrapper.Action action    = group.GetAction((string)e.Value);
                actionCopyMap [dupaction] = action;
            }

            groupCopy.SignalAdded   += new Stetic.SignalEventHandler(OnSignalAdded);
            groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler(OnSignalChanged);
        }
 void OnProjectReloaded(object s, EventArgs a)
 {
     // Called when the underlying project has changed. Object references need to be updated.
     if (autoCommitChanges)
     {
         if (designer != null)
         {
             if (groupToEdit != null)
             {
                 groupToolbar.ActiveGroup = project.ActionGroups [groupToEdit];
             }
             else
             {
                 Stetic.Wrapper.Container container = project.GetTopLevelWrapper(containerName, true);
                 groupToolbar.ActionGroups = container.LocalActionGroups;
             }
         }
     }
     else
     {
         // We only need to remap the actions
         group = project.ActionGroups [groupToEdit];
         actionCopyMap.Clear();
         foreach (Wrapper.Action dupac in groupCopy.Actions)
         {
             Wrapper.Action ac = group.GetAction(dupac.Name);
             if (ac != null)
             {
                 actionCopyMap [dupac] = ac;
             }
         }
     }
 }
Exemple #4
0
 public Stetic.Wrapper.ActionGroup AddNewActionGroup(string name)
 {
     Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup();
     group.Name = name;
     ActionGroups.Add(group);
     this.modifiedTopLevels.Add(name);
     return(group);
 }
Exemple #5
0
        public void RemoveActionGroup(Stetic.Wrapper.ActionGroup group)
        {
            ActionGroups.Remove(group);
            string name = group.Name;

            if (modifiedTopLevels.Contains(name))
            {
                modifiedTopLevels.Remove(name);
            }
        }
        public Stetic.Wrapper.ActionGroup AddNewActionGroupFromTemplate(string template)
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(template);
            ObjectReader or = new ObjectReader(this, FileFormat.Native);

            Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup();
            group.Read(or, doc.DocumentElement);
            ActionGroups.Add(group);
            return(group);
        }
Exemple #7
0
        public ActionGroupEditSession(ActionGroupDesignerFrontend frontend, ProjectBackend project, string containerName, string groupToEdit, bool autoCommitChanges)
        {
            this.groupToEdit       = groupToEdit;
            this.containerName     = containerName;
            this.frontend          = frontend;
            this.project           = project;
            this.autoCommitChanges = autoCommitChanges;

            if (groupToEdit != null)
            {
                group = project.ActionGroups [groupToEdit];
                if (group == null)
                {
                    throw new InvalidOperationException("Unknown action group: " + groupToEdit);
                }
                Load(group);
                undoManager            = new UndoRedoManager();
                undoQueue              = new UndoQueue();
                undoManager.UndoQueue  = undoQueue;
                undoManager.RootObject = groupCopy;

                groupToolbar = new ActionGroupToolbar(frontend, groupCopy);
            }
            else
            {
                if (!autoCommitChanges)
                {
                    throw new System.NotSupportedException();
                }

                Stetic.Wrapper.Container container = project.GetTopLevelWrapper(containerName, true);
                groupToolbar = new ActionGroupToolbar(frontend, container.LocalActionGroups);
            }

            // Don't delay the creation of the designer because when used in combination with the
            // widget designer, change events are subscribed since the begining

            designer = UserInterface.CreateActionGroupDesigner(project, groupToolbar);
            designer.Editor.GroupModified      += OnModified;
            designer.Toolbar.AllowActionBinding = allowActionBinding;
            designer.Destroyed += delegate
            {
                designer = null;
                Dispose();
            };
        }
		void Load (Stetic.Wrapper.ActionGroup group)
		{
			if (autoCommitChanges) {
				groupCopy = group;
			}
			else {
				actionCopyMap.Clear ();
					
				groupCopy = new Stetic.Wrapper.ActionGroup ();
				groupCopy.Name = group.Name;
				
				foreach (Stetic.Wrapper.Action action in group.Actions) {
					Stetic.Wrapper.Action dupaction = action.Clone ();
					groupCopy.Actions.Add (dupaction);
					actionCopyMap [dupaction] = action;
				}
				groupCopy.SignalAdded += new Stetic.SignalEventHandler (OnSignalAdded);
				groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler (OnSignalChanged);
			}
		}
        void Load(Stetic.Wrapper.ActionGroup group)
        {
            if (autoCommitChanges)
            {
                groupCopy = group;
            }
            else
            {
                actionCopyMap.Clear();

                groupCopy      = new Stetic.Wrapper.ActionGroup();
                groupCopy.Name = group.Name;

                foreach (Stetic.Wrapper.Action action in group.Actions)
                {
                    Stetic.Wrapper.Action dupaction = action.Clone();
                    groupCopy.Actions.Add(dupaction);
                    actionCopyMap [dupaction] = action;
                }
                groupCopy.SignalAdded   += new Stetic.SignalEventHandler(OnSignalAdded);
                groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler(OnSignalChanged);
            }
        }
		public ActionGroupEditSession (ActionGroupDesignerFrontend frontend, ProjectBackend project, string containerName, string groupToEdit, bool autoCommitChanges)
		{
			this.groupToEdit = groupToEdit;
			this.containerName = containerName;
			this.frontend = frontend;
			this.project = project;
			this.autoCommitChanges = autoCommitChanges;
			
			if (groupToEdit != null) {
				group = project.ActionGroups [groupToEdit];
				if (group == null)
					throw new InvalidOperationException ("Unknown action group: " + groupToEdit);
				Load (group);
				undoManager = new UndoRedoManager ();
				undoQueue = new UndoQueue ();
				undoManager.UndoQueue = undoQueue;
				undoManager.RootObject = groupCopy;
				
				groupToolbar = new ActionGroupToolbar (frontend, groupCopy);
			}
			else {
				if (!autoCommitChanges)
					throw new System.NotSupportedException ();
				
				Stetic.Wrapper.Container container = project.GetTopLevelWrapper (containerName, true);
				groupToolbar = new ActionGroupToolbar (frontend, container.LocalActionGroups);
			}
			
			// Don't delay the creation of the designer because when used in combination with the
			// widget designer, change events are subscribed since the begining
			
			designer = UserInterface.CreateActionGroupDesigner (project, groupToolbar);
			designer.Editor.GroupModified += OnModified;
			designer.Toolbar.AllowActionBinding = allowActionBinding;
			designer.Destroyed += delegate { designer = null; Dispose (); };
		}
 public void RemoveActionGroup(Stetic.Wrapper.ActionGroup group)
 {
     ActionGroups.Remove(group);
 }
Exemple #12
0
		public Stetic.Wrapper.ActionGroup AddNewActionGroupFromTemplate (string template)
		{
			XmlDocument doc = new XmlDocument ();
			doc.LoadXml (template);
			ObjectReader or = new ObjectReader (this, FileFormat.Native);
			Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup ();
			group.Read (or, doc.DocumentElement);
			ActionGroups.Add (group);
			return group;
		}
Exemple #13
0
		public Stetic.Wrapper.ActionGroup AddNewActionGroup (string name)
		{
			Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup ();
			group.Name = name;
			ActionGroups.Add (group);
			return group;
		}
		public void RestoreState (object[] data)
		{
			if (data == null)
				return;
			
			groupCopy = new Stetic.Wrapper.ActionGroup ();
			groupCopy.Name = (string) data [0];
			
			XmlDocument doc = new XmlDocument ();
			doc.LoadXml ((string) data [2]);
			
			// Create the map which links edited action with source actions
			actionCopyMap.Clear ();
			foreach (DictionaryEntry e in (Hashtable) data [1]) {
				Wrapper.Action dupaction = groupCopy.GetAction ((string)e.Key);
				Wrapper.Action action = group.GetAction ((string)e.Value);
				actionCopyMap [dupaction] = action;
			}
			
			groupCopy.SignalAdded += new Stetic.SignalEventHandler (OnSignalAdded);
			groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler (OnSignalChanged);
		}
		void OnProjectReloaded (object s, EventArgs a)
		{
			// Called when the underlying project has changed. Object references need to be updated.
			if (autoCommitChanges) {
				if (designer != null) {
					if (groupToEdit != null) {
						groupToolbar.ActiveGroup = project.ActionGroups [groupToEdit];
					} else {
						Stetic.Wrapper.Container container = project.GetTopLevelWrapper (containerName, true);
						groupToolbar.ActionGroups = container.LocalActionGroups;
					}
				}
			} else {
				// We only need to remap the actions
				group = project.ActionGroups [groupToEdit];
				actionCopyMap.Clear ();
				foreach (Wrapper.Action dupac in groupCopy.Actions) {
					Wrapper.Action ac = group.GetAction (dupac.Name);
					if (ac != null)
						actionCopyMap [dupac] = ac;
				}
			}
		}
Exemple #16
0
		public Stetic.Wrapper.ActionGroup AddNewActionGroup (string name)
		{
			Stetic.Wrapper.ActionGroup group = new Stetic.Wrapper.ActionGroup ();
			group.Name = name;
			ActionGroups.Add (group);
			this.modifiedTopLevels.Add (name);
			return group;
		}