Esempio n. 1
0
        public void SelectItem(iFolderViewItem item)
        {
            if (item != null)
            {
                // Select this item
                if (!item.Selected)
                {
                    if (Mode == SelectionMode.Single)
                    {
                        // Unselect the old item
                        iFolderViewItem oldItem;
                        if (GetSelected(out oldItem))
                        {
                            oldItem.Selected = false;
                        }
                    }

                    item.Selected = true;
                    if (SelectionChanged != null)
                    {
                        SelectionChanged(this, EventArgs.Empty);
                    }
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Event Handler for Selection Changed event
        /// </summary>
        private void SelectionChangedHandler(object o, EventArgs args)
        {
//Debug.PrintLine("iFolderIconView.SelectionChangedHandler()");
            iFolderViewGroupSelection gSelect = (iFolderViewGroupSelection)o;
            iFolderViewGroup          group   = gSelect.ViewGroup;

            // Deselect all other items from other groups
            foreach (iFolderViewGroup tempGroup in viewGroups)
            {
                if (group != tempGroup)
                {
                    tempGroup.Selection.SelectionChanged -= new EventHandler(SelectionChangedHandler);
                    tempGroup.Selection.UnselectAll();
                    tempGroup.Selection.SelectionChanged += new EventHandler(SelectionChangedHandler);
                }
            }

            if (SelectionChanged != null)
            {
                iFolderViewItem selectedItem = null;
                if (group.Selection.GetSelected(out selectedItem))
                {
                    currentSelection = selectedItem.Holder;
                    SelectionChanged(selectedItem.Holder, EventArgs.Empty);
                }
                else
                {
                    currentSelection = null;
                    SelectionChanged(null, EventArgs.Empty);
                }
            }
        }
Esempio n. 3
0
        private void OnRowChanged(object o, RowChangedArgs args)
        {
            if (args == null || args.Path == null)
            {
                return;                                                 // prevent a null pointer exception
            }
            iFolderViewItem item = (iFolderViewItem)items[args.Path.ToString()];

            if (item != null)
            {
                item.Refresh();
            }
        }
Esempio n. 4
0
        public bool GetSelected(out iFolderViewItem itemOut)
        {
            itemOut = null;

            // Look for the first selection
            foreach (iFolderViewItem item in group.Items)
            {
                if (item.Selected)
                {
                    itemOut = item;
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
 public void SelectItem(iFolderViewItem item)
 {
     if (item != null)
        {
     if (!item.Selected)
     {
      if (Mode == SelectionMode.Single)
      {
       iFolderViewItem oldItem;
       if (GetSelected(out oldItem))
        oldItem.Selected = false;
      }
      item.Selected = true;
      if (SelectionChanged != null)
       SelectionChanged(this, EventArgs.Empty);
     }
        }
 }
Esempio n. 6
0
 public bool GetSelected(out TreeModel modelOut, out iFolderViewItem itemOut)
 {
     Console.WriteLine("iFolderViewGroupSelection.GetSelected2");
        modelOut = group.Model;
        return GetSelected(out itemOut);
 }
Esempio n. 7
0
 public bool GetSelected(out iFolderViewItem itemOut)
 {
     Console.WriteLine("iFolderViewGroupSelection.GetSelected");
        itemOut = null;
        foreach(iFolderViewItem item in group.Items)
        {
     if (item.Selected)
     {
      itemOut = item;
      return true;
     }
        }
        return false;
 }
Esempio n. 8
0
 public void RebuildTable()
 {
     iFolderViewGroup.CheckThread();
     Console.WriteLine("iFolderViewGroup.RebuildTable({0})", name);
        int numOfItems = model.IterNChildren();
     Console.WriteLine("\tNum of Items: {0}", numOfItems);
        if (numOfItems > 0)
        {
     int availableWidth = currentWidth
       - (int)(contentVBox.BorderWidth * 2)
       - (int)(table.BorderWidth * 2);
     Console.WriteLine("\tWidth Available: {0}", availableWidth);
     int numOfColumns = availableWidth / ItemMaxWidth;
     if (numOfColumns < 1)
      numOfColumns = 1;
     int numOfRows = numOfItems / numOfColumns;
     if ((numOfItems % numOfColumns) > 0)
      numOfRows++;
     bFirstTableBuild = false;
     items.Clear();
     foreach (Widget w in table.Children)
     {
      table.Remove(w);
      w.Destroy();
     }
     Console.WriteLine("\tResizing table to {0} rows and {1} columns", numOfRows, numOfColumns);
     table.Resize((uint)numOfRows, (uint)numOfColumns);
     int currentRow = 0;
     int currentColumn = 0;
     TreeIter iter;
     if (model.GetIterFirst(out iter))
     {
      do
      {
       iFolderHolder holder = (iFolderHolder)model.GetValue(iter, 0);
       if (holder != null)
       {
        iFolderViewItem item = new iFolderViewItem(holder, this, iter, ItemMaxWidth);
        table.Attach(item,
        (uint)currentColumn, (uint)currentColumn + 1,
        (uint)currentRow, (uint)currentRow + 1,
        AttachOptions.Shrink | AttachOptions.Fill,
        0, 0, 0);
        TreePath path = model.GetPath(iter);
        items[path.ToString()] = item;
        item.LeftClicked +=
     new EventHandler(OnItemLeftClicked);
        item.RightClicked +=
     new EventHandler(OnItemRightClicked);
        item.DoubleClicked +=
     new EventHandler(OnItemDoubleClicked);
        currentColumn = ((currentColumn + 1) % numOfColumns);
        if (currentColumn == 0)
     currentRow++;
       }
      } while (model.IterNext(ref iter));
     }
     table.ShowAll();
        }
        else
        {
     items.Clear();
     foreach(Widget w in table.Children)
     {
      table.Remove(w);
      w.Destroy();
     }
        }
 }
Esempio n. 9
0
 public bool GetSelected(out TreeModel modelOut, out iFolderViewItem itemOut)
 {
     modelOut = group.Model;
        return GetSelected(out itemOut);
 }
Esempio n. 10
0
 public bool GetSelected(out iFolderViewItem itemOut)
 {
     itemOut = null;
        foreach(iFolderViewItem item in group.Items)
        {
     if (item.Selected)
     {
      itemOut = item;
      return true;
     }
        }
        return false;
 }
Esempio n. 11
0
 public void RebuildTable()
 {
     if( (null == model) || (null == items) || (null == table) )
                 {
                         iFolderViewGroup.log.Info("NULL Reference Exception: Object, model is -{0}-items is-{1}-table is -{2}-",model,items,table);
                         return;
                 }
        int numOfItems = model.IterNChildren();
        if (numOfItems > 0)
        {
     int availableWidth = currentWidth
       - (int)(contentVBox.BorderWidth * 2)
       - (int)(table.BorderWidth * 2);
     int numOfColumns = availableWidth / ItemMaxWidth;
     if (numOfColumns < 1)
      numOfColumns = 1;
     int numOfRows = numOfItems / numOfColumns;
     if ((numOfItems % numOfColumns) > 0)
      numOfRows++;
     bFirstTableBuild = false;
     items.Clear();
     foreach (Widget w in table.Children)
     {
      table.Remove(w);
      w.Destroy();
     }
     table.Resize((uint)numOfRows, (uint)numOfColumns);
     int currentRow = 0;
     int currentColumn = 0;
     TreeIter iter;
     if (model.GetIterFirst(out iter))
     {
      do
      {
       iFolderHolder holder = (iFolderHolder)model.GetValue(iter, 0);
       if (holder != null)
       {
        iFolderViewItem item = new iFolderViewItem(holder, this, iter, ItemMaxWidth);
                                                 if(null == item)
                                                 {
                                                         iFolderViewGroup.log.Info("NULL Reference Exception: Object item is NULL");
                                                         return;
                                                 }
        table.Attach(item,
        (uint)currentColumn, (uint)currentColumn + 1,
        (uint)currentRow, (uint)currentRow + 1,
        AttachOptions.Shrink | AttachOptions.Fill,
        0, 0, 0);
        TreePath path = model.GetPath(iter);
        items[path.ToString()] = item;
        item.LeftClicked +=
     new EventHandler(OnItemLeftClicked);
        item.RightClicked +=
     new EventHandler(OnItemRightClicked);
        item.DoubleClicked +=
     new EventHandler(OnItemDoubleClicked);
        currentColumn = ((currentColumn + 1) % numOfColumns);
        if (currentColumn == 0)
     currentRow++;
       }
      } while (model.IterNext(ref iter));
     }
     table.ShowAll();
        }
        else
        {
     items.Clear();
     foreach(Widget w in table.Children)
     {
      table.Remove(w);
      w.Destroy();
     }
        }
 }
Esempio n. 12
0
        public bool GetSelected(out TreeModel modelOut, out iFolderViewItem itemOut)
        {
            modelOut = group.Model;

            return(GetSelected(out itemOut));
        }
Esempio n. 13
0
        private void OnItemRightClicked(object o, EventArgs args)
        {
            iFolderViewItem item = (iFolderViewItem)o;

            selection.SelectItem(item);
        }
Esempio n. 14
0
        public void RebuildTable()
        {
            if ((null == model) || (null == items) || (null == table))
            {
                iFolderViewGroup.log.Info("NULL Reference Exception: Object, model is -{0}-items is-{1}-table is -{2}-", model, items, table);
                return;                 // prevent null pointer exception
            }

            int numOfItems = model.IterNChildren();

            if (numOfItems > 0)
            {
                int availableWidth = currentWidth
                                     - (int)(contentVBox.BorderWidth * 2)
                                     - (int)(table.BorderWidth * 2);

                int numOfColumns = availableWidth / ItemMaxWidth;
                if (numOfColumns < 1)
                {
                    numOfColumns = 1;                           // Force at least one column
                }
                int numOfRows = numOfItems / numOfColumns;
                if ((numOfItems % numOfColumns) > 0)
                {
                    numOfRows++;
                }

                bFirstTableBuild = false;

                ///
                /// Clear out the old items
                ///
                items.Clear();

                foreach (Widget w in table.Children)
                {
                    table.Remove(w);
                    w.Destroy();
                }

                table.Resize((uint)numOfRows, (uint)numOfColumns);

                int currentRow    = 0;
                int currentColumn = 0;

                TreeIter iter;
                if (model.GetIterFirst(out iter))
                {
                    do
                    {
                        iFolderHolder holder = (iFolderHolder)model.GetValue(iter, 0);
                        if (holder != null)
                        {
                            iFolderViewItem item = new iFolderViewItem(holder, this, iter, ItemMaxWidth);
                            if (null == item)
                            {
                                iFolderViewGroup.log.Info("NULL Reference Exception: Object item is NULL");
                                return;                                 //prevent null pointer exception
                            }

                            table.Attach(item,
                                         (uint)currentColumn, (uint)currentColumn + 1,
                                         (uint)currentRow, (uint)currentRow + 1,
                                         AttachOptions.Shrink | AttachOptions.Fill,
                                         0, 0, 0);

                            // Save off the item so we can quickly reference it later
                            TreePath path = model.GetPath(iter);
                            items[path.ToString()] = item;

                            // Register for the click events
                            item.LeftClicked +=
                                new EventHandler(OnItemLeftClicked);
                            item.RightClicked +=
                                new EventHandler(OnItemRightClicked);
                            item.DoubleClicked +=
                                new EventHandler(OnItemDoubleClicked);

                            currentColumn = ((currentColumn + 1) % numOfColumns);
                            if (currentColumn == 0)
                            {
                                currentRow++;
                            }
                        }
                    } while (model.IterNext(ref iter));
                }

                table.ShowAll();
            }
            else
            {
                items.Clear();
                foreach (Widget w in table.Children)
                {
                    table.Remove(w);
                    w.Destroy();
                }
            }
        }