コード例 #1
0
        /// <summary>
        /// Заполнение списка треков
        /// </summary>
        internal void FillListView()
        {
            listTracks.Items.Clear();
            string[] items = new string[8];

            bool isPrev = false;

            int key = 1;

            foreach (KeyValuePair <int, Track> track in Proccess.mainPlayList.tracks)
            {
                if (HideBgTrack.Checked && track.Value.bg)
                {
                    continue;
                }
                // Номер трека по порядку
                items[0] = key.ToString();
                // Имя трека
                items[1] = track.Value.name;
                // Длительность трека
                items[2] = NAudioPlayer.GetDuration(track.Value.audioFilePath);
                // Номер OSC трека
                items[3] = track.Value.oscCommand.ToString();
                // MIDI - нота или MIDI - файл
                items[4] = (track.Value.isMidiNote) ? track.Value.midiNote.ToString() : track.Value.midiFile;

                /// Получает описание из enum
                #region GetEnumDescripton
                var enumType    = typeof(nextTrack);
                var memberData  = enumType.GetMember(track.Value.next.ToString());
                var Description = (memberData[0].GetCustomAttributes(typeof(DescriptionAttribute),
                                                                     false).FirstOrDefault() as DescriptionAttribute).Description;
                #endregion

                items[5] = Description.ToString();

                // Ставим метку, что трек находится в плейлисте
                track.Value.isPlaylistTrack = true;

                // Тегом элемента ListView является объект трека
                ListViewItem item = new ListViewItem(items)
                {
                    Tag = track.Value
                };

                /// --------- УПРАВЛЕНИЕ ЦВЕТОМ ----------------
                #region COLOR AND FONTS MANAGED


                // Если предыдущий трек с параметром "ИГРАТЬ СЛЕД. ТРЕК",
                // то текущий трек выделяем тем же цветом и шрифтами
                if (isPrev)
                {
                    isPrev         = false;
                    item.BackColor = Colors.Get("nextTrackColor");
                }

                switch (track.Value.next)
                {
                case nextTrack.next:
                    item.BackColor = Colors.Get("nextTrackColor");
                    isPrev         = true;
                    break;

                case nextTrack.pause:
                    item.BackColor = (isPrev) ? Colors.Get("nextTrackColor") : Color.Pink;
                    break;

                case nextTrack.bgConcrete:
                    item.BackColor = (isPrev) ? Colors.Get("nextTrackColor") : Colors.Get("concreteBgColor");
                    break;
                }


                if (Fonts.Get("mainFont") != null)
                {
                    item.Font = Fonts.Get("mainFont");
                }

                if (Fonts.Get("bgFont") != null)
                {
                    item.Font = (track.Value.bg) ? Fonts.Get("bgFont") : item.Font;
                }

                if (Colors.Get("bgTrackFontColor") != null)
                {
                    item.ForeColor = (track.Value.bg) ? Colors.Get("bgTrackFontColor") : item.ForeColor;
                }

                #endregion

                // добавляем элемент в ListView
                listTracks.Items.Add(item);
                key++;
            }
        }
コード例 #2
0
 private void saveFonts()
 {
     Fonts.Set("mainFont", mainFontTextBox.Font);
     Fonts.Set("bgFont", bgFontTextBox.Font);
     Fonts.SaveToRegistry();
 }
コード例 #3
0
 internal void InitFonts()
 {
     Fonts.ReadFromRegistry();
 }