Beispiel #1
0
		//<summary>
		//Ajoute plusieurs entrées aux listes
		//</summary>
		//<param name="items_to_add">entrées à ajouter</param>

		void AddEntries(ListViewItem[] items_to_add)
		{

			foreach (ListViewItem item_to_add in items_to_add)
			{

				list_speedruns.Add(item_to_add);

				list_speedruns_by_name.Add(list_speedruns.Count - 1);
				list_speedruns_by_time.Add(list_speedruns.Count - 1);

			}

			GUI_listView.BeginUpdate();

			GUI_listView.Items.Clear();

			if (bTriParNom)
				GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray());
			else
				GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray());

			GUI_listView.EndUpdate();

			if (!bResizedTimeColumn)
			{
				GUI_listView.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
				bResizedTimeColumn = true;
			}

		}
Beispiel #2
0
		//<summary>
		//Retire une entrée aux listes
		//</summary>
		//<param name="item_to_remove">entrée à retirer</param>

		void RemoveEntry(ListViewItem item_to_remove)
		{

			int nRemovedItemIndex = list_speedruns.IndexOf(item_to_remove);

			list_speedruns.Remove(item_to_remove);
			list_speedruns_by_name.Remove(nRemovedItemIndex);
			list_speedruns_by_time.Remove(nRemovedItemIndex);

			GUI_listView.BeginUpdate();

			GUI_listView.Items.Clear();

			if (bTriParNom)
				GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray());
			else
				GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray());

			GUI_listView.EndUpdate();

		}
Beispiel #3
0
		/// <summary>
		/// Modification du nom d'un élément de la liste
		/// </summary>
		/// <param name="sender">Paramètre par défaut.</param>
		/// <param name="e">Contient le nouveau texte à assigner.</param>
		/// <remarks>Annule l'édition ordinaire de texte, et regénère
		/// complètement les listes y compris la visuelle.</remarks>

		private void GUI_listView_AfterLabelEdit(object sender, LabelEditEventArgs e)
		{

#if PROGRESSBAR_ADDON
			if (bIsUpdating)
				e.CancelEdit = true;
			else
#endif

			if (e.Label != null)
			{

				int nIndexListeGlobale = list_speedruns.IndexOf(GUI_listView.Items[e.Item]);
				int nIndexItemModifie;
				ListViewItem item_modifie;

			#region Création de l'item modifié

				item_modifie = new ListViewItem(e.Label);								//titre
				item_modifie.ToolTipText = item_modifie.SubItems[0].Text;
				item_modifie.SubItems.Add(GUI_listView.Items[e.Item].SubItems[1].Text);	//durée
				item_modifie.SubItems.Add(GUI_listView.Items[e.Item].SubItems[2].Text);	//numéro

				#endregion Création de l'item modifié

				RemoveEntry(GUI_listView.Items[e.Item]);
				AddEntry(item_modifie);
				nIndexItemModifie = GUI_listView.Items.IndexOf(item_modifie);

				GUI_listView.Items[nIndexItemModifie].Selected = true;
				GUI_listView.Items[nIndexItemModifie].Focused = true;
				GUI_listView.EnsureVisible(nIndexItemModifie);

				bModified = true;
				e.CancelEdit = true;	//la méthode remplace le processus normal d'édition

			}

		}
Beispiel #4
0
		////////////////
		////////////////
		////////////////

		#region Clic sur une colonne (changement du tri des éléments)

		/// <summary>
		/// Action lors d'un clic sur un titre de colonne.
		/// Réorganise la liste sur l'élément cliqué.
		/// N'affecte pas le fichier généré en sortie.
		/// </summary>
		/// <param name="sender">Paramètre par défaut.</param>
		/// <param name="e">Paramètre contenant notamment l'index de base 0
		/// de la colonne cliquée.</param>

		private void GUI_listView_ColumnClick(object sender, ColumnClickEventArgs e)
		{

#if PROGRESSBAR_ADDON
			if (!bIsUpdating)
			{
#endif

				if (e.Column == 0) //colonne Titre
				{

					GUI_listView.BeginUpdate();

					if (bTriNomInverse)
						list_speedruns_by_name.SetComparer(CompareTitreItem);
					else
						list_speedruns_by_name.SetComparer(CompareTitreItemInverse);

					list_speedruns_by_name.Initialize();

					GUI_listView.Items.Clear();
					GUI_listView.Items.AddRange(list_speedruns_by_name.ToArray());

					bTriNomInverse = !bTriNomInverse;
					bTriParNom = true;

					GUI_listView.EndUpdate();

				}
				else
				if (e.Column == 1) //colonne Durée
				{

					GUI_listView.BeginUpdate();

					if (bTriDureeInverse)
						list_speedruns_by_time.SetComparer(CompareDureeItem);
					else
						list_speedruns_by_time.SetComparer(CompareDureeItemInverse);

					list_speedruns_by_time.Initialize();

					GUI_listView.Items.Clear();
					GUI_listView.Items.AddRange(list_speedruns_by_time.ToArray());

					bTriDureeInverse = !bTriDureeInverse;
					bTriParNom = false;

					GUI_listView.EndUpdate();

				}
				else
					MessageBox.Show("Pas de tri sur cet élément.");

				if (GUI_listView.SelectedIndices.Count > 0)
					GUI_listView.EnsureVisible(GUI_listView.SelectedIndices[0]);

#if PROGRESSBAR_ADDON
			}
#endif

		}