Ejemplo n.º 1
0
        public TreePosition GetChild(TreePosition pos, int index)
        {
            IterPos tpos = (IterPos)pos;

            if (tpos.LastChildIndex == index)
            {
                return(new IterPos(tpos.LastChildIter));
            }
            if (index == 0)
            {
                Gtk.TreeIter it;
                if (Tree.GetIterFirst(out it))
                {
                    tpos.LastChildIter  = it;
                    tpos.LastChildIndex = 0;
                    return(new IterPos(it));
                }
                else
                {
                    return(null);
                }
            }
            if (tpos.LastChildIndex == -1 || tpos.LastChildIndex > index)
            {
                Gtk.TreeIter it;
                if (Tree.IterNthChild(out it, index))
                {
                    tpos.LastChildIter  = it;
                    tpos.LastChildIndex = index;
                    return(new IterPos(it));
                }
                else
                {
                    return(null);
                }
            }

            // tpos.LastChildIndex < index

            Gtk.TreeIter iter = tpos.LastChildIter;
            for (int n = tpos.LastChildIndex; n < index; n++)
            {
                if (!Tree.IterNext(ref iter))
                {
                    return(null);
                }
            }
            tpos.LastChildIter  = iter;
            tpos.LastChildIndex = index;
            return(new IterPos(iter));
        }
Ejemplo n.º 2
0
 void UpdateGroupStatus(Gtk.TreeIter iter)
 {
     Gtk.TreeIter signalIter;
     if (store.IterChildren(out signalIter, iter))
     {
         do
         {
             if (store.IterNChildren(signalIter) > 0)
             {
                 store.SetValue(iter, ColSignalTextWeight, (int)Pango.Weight.Bold);
                 return;
             }
         } while (store.IterNext(ref signalIter));
     }
     store.SetValue(iter, ColSignalTextWeight, (int)Pango.Weight.Normal);
 }
Ejemplo n.º 3
0
        protected virtual void OnCompleteRadiobuttonToggled(object sender, System.EventArgs e)
        {
            if (completeRadiobutton.Active)
            {
                Gtk.TreeIter iter;

                if (group_store.IterNChildren() > 0)
                {
                    group_store.GetIterFirst(out iter);
                    group_store.SetValue(iter, 0, true);

                    while (group_store.IterNext(ref iter))
                    {
                        group_store.SetValue(iter, 0, true);
                    }
                }
            }
        }
 public bool MoveNext()
 {
     AssertIsValid();
     Gtk.TreeIter it = currentIter;
     if (!store.IterNext(ref it))
     {
         return(false);
     }
     MoveToIter(it);
     return(true);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Adds a person to a group and stores it in EDS
        /// </summary>
        public bool IsPersonInGroup(Person person)
        {
            Gtk.TreeIter iter;

            if (personTreeStore.GetIterFirst(out iter))
            {
                do
                {
                    Person iterPerson = (Person)personTreeStore.GetValue(iter, 0);
                    if (person.Id.CompareTo(iterPerson.Id) == 0)
                    {
                        return(true);
                    }
                } while(personTreeStore.IterNext(ref iter));
            }
            return(false);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Reloads assemblies if they are modified after they are loaded in the SolidReflector.
        /// </summary>
        /// <param name="filepaths">Filepaths of the assemblies that will be monitored.</param>
        ///
        private void WatchFilesForChanges(string[] filepaths)
        {
            FileSystemWatcher        watcher;
            List <FileSystemWatcher> watchers = new List <FileSystemWatcher>();

            foreach (string filepath in filepaths)
            {
                if (File.Exists(filepath))
                {
                    watcher = new FileSystemWatcher(Path.GetDirectoryName(filepath));
                    watcher.NotifyFilter = NotifyFilters.LastWrite;

                    watcher.Changed += delegate(object sender, FileSystemEventArgs e) {
                        Gtk.TreeIter assemblyIter;
                        store.GetIterFirst(out assemblyIter);

                        foreach (string file in loadedAssemblies)
                        {
                            if (file == e.FullPath)
                            {
                                do
                                {
                                    AssemblyDefinition assDef = store.GetValue(assemblyIter, 0) as AssemblyDefinition;
                                    if (assDef.MainModule.FullyQualifiedName == file)
                                    {
                                        store.Remove(ref assemblyIter);
                                    }
                                } while (store.IterNext(ref assemblyIter));

                                AssemblyDefinition ad1 = AssemblyDefinition.ReadAssembly(file);
                                store.AppendValues(ad1);
                                LoadSelectedAssembliesTreePaths();
                            }
                        }
                    };

                    watcher.EnableRaisingEvents   = true;
                    watcher.IncludeSubdirectories = false;
                    watchers.Add(watcher);
                }
            }
        }
Ejemplo n.º 7
0
        public static string ClearTimeConflicts(Gtk.TreeStore treeContent, Gtk.TreeIter toCheck)
        {
            // Get first Iter with equal time
            string checkVal = (string)treeContent.GetValue(toCheck, (int)ProgrammColumnID.Uhrzeit);

            Gtk.TreeIter before = toCheck;
            Gtk.TreeIter drag   = toCheck;
            while (treeContent.IterPrevious(ref before))
            {
                string refVal = (string)treeContent.GetValue(before, (int)ProgrammColumnID.Uhrzeit);
                if (refVal.StartsWith(checkVal.Substring(0, 5)))
                {
                    drag = before;
                }
                else
                {
                    break;
                }
            }
            // Set all values
            bool hasNext = true;

            for (int i = 0; hasNext; i++)
            {
                SetRang(treeContent, drag, i);
                GtkHelper.SortInByColumn(treeContent, (int)ProgrammColumnID.Uhrzeit, drag);
                hasNext = treeContent.IterNext(ref drag);
                if (hasNext)
                {
                    string refVal = (string)treeContent.GetValue(drag, (int)ProgrammColumnID.Uhrzeit);
                    if (!refVal.StartsWith(checkVal.Substring(0, 5)))                     // Same HH:MM
                    {
                        break;
                    }
                }
            }
            // Return the new value of the treeIter
            return((string)treeContent.GetValue(toCheck, (int)ProgrammColumnID.Uhrzeit));
        }