Пример #1
0
        public bool isGroupSelected(AMTakeData take, int group_id, ref int numTracks)
        {
            AMGroup grp = take.getGroup(group_id);

            for (int i = 0; i < grp.elements.Count; i++)
            {
                // select track
                if (grp.elements[i] > 0)
                {
                    if (!contextSelectionTracks.Contains(grp.elements[i]))
                    {
                        return(false);
                    }
                    numTracks++;
                }
                else
                {
                    if (isGroupSelected(take, grp.elements[i], ref numTracks) == false)
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #2
0
        /*public void contextSelectGroup(int group_id, bool deselect) {
         *  AMGroup grp = getGroup(group_id);
         *  for(int i=0;i<grp.elements.Count;i++) {
         *      // select track
         *      if(grp.elements[i] > 0) {
         *          bool isSelected = contextSelectionTracks.Contains(grp.elements[i]);
         *          if(deselect) {
         *              if(isSelected) contextSelectionTracks.Remove(grp.elements[i]);
         *          } else {
         *              if(!isSelected) contextSelectionTracks.Add(grp.elements[i]);
         *          }
         *      } else {
         *          contextSelectGroup(grp.elements[i],deselect);
         *      }
         *  }
         * }*/

        public void contextSelectGroup(AMTakeData take, int group_id, bool isControlDown)
        {
            AMGroup grp       = take.getGroup(group_id);
            int     numTracks = 0;
            bool    deselect  = isControlDown && isGroupSelected(take, group_id, ref numTracks);

            for (int i = 0; i < grp.elements.Count; i++)
            {
                // select track
                if (grp.elements[i] > 0)
                {
                    bool isSelected = contextSelectionTracks.Contains(grp.elements[i]);
                    if (deselect)
                    {
                        if (isSelected)
                        {
                            contextSelectionTracks.Remove(grp.elements[i]);
                        }
                    }
                    else
                    {
                        if (!isSelected)
                        {
                            contextSelectionTracks.Add(grp.elements[i]);
                        }
                    }
                }
                else
                {
                    contextSelectGroup(take, grp.elements[i], deselect);
                }
            }
        }