private void OnActRescanVolumeActivated(object sender, System.EventArgs args) { TreeIter iter; if (!tvVolumes.GetSelectedIter(out iter)) { return; } Volume oldVolume = tvVolumes.GetVolume(iter); WaitFunc <PlatformIO.DriveInfo> IsVolumeConnected = delegate(out PlatformIO.DriveInfo dinf) { foreach (PlatformIO.DriveInfo di in PlatformIO.DriveInfo.GetDrives()) { if (di.IsReady && di.IsMounted && (di.DriveType.ToVolumeDriveType() == oldVolume.DriveType) && (di.VolumeLabel == oldVolume.Title)) { dinf = di; return(true); } } dinf = null; return(false); }; bool proceed = true; PlatformIO.DriveInfo drive; if (!IsVolumeConnected(out drive)) { string message = string.Format(S._("Please insert volume '<b>{0}</b>'."), Util.Escape(oldVolume.Title)); var wd = new WaitingDialog <PlatformIO.DriveInfo>(IsVolumeConnected, message); wd.Title = S._("Waiting for volume"); if (wd.Run() == (int)ResponseType.Ok) { proceed = true; drive = wd.Value; } else { proceed = false; } wd.Destroy(); } if (proceed) { VolumeScanner vs = new VolumeScanner(database, drive); vs.VolumeEditor.Load(oldVolume); // remove old volume from the volume treeview and purge all associated data vs.NewVolumeAdded += (object o, NewVolumeAddedEventArgs a) => { PurgeVolume(iter); }; // add new volume to the volume treeview AddNewVolumeAddedEventHandler(vs); } }
public WaitingDialog(WaitFunc <T> waitFunc, string message) { this.waitFunc = waitFunc; this.Value = default(T); this.message = message; this.canceled = false; BuildGui(); }
public void Init(NpcInfo info) { tr = GetComponent <Transform>(); mRenderer = GetComponent <SpriteRenderer>(); Info = info; mAudio = GetComponent <AudioSource>(); PopupHandler += HUD_Guest.GetUI; waitFunc = ChkBuyLocate; }
public static IEnumerator wait(float waitTime, WaitFunc func, int Repeat = 1) { for (int i = 0; i < Repeat; i++) { yield return(new WaitForSeconds(waitTime)); if (func != null) { func(); } } }
public void UpdateTable() { if (State == -1) { var AvaibleLears = Deck.Deck.Where(x => !x.GetComponent <PoolObject>().isPooled).Select(x => x.GetComponent <CardObject>().CardLear).Distinct().ToArray(); if (AvaibleLears.Length > 0) { NowLear = AvaibleLears[r.Next(0, AvaibleLears.Length)];//or Lears[r.Next(0, 3)]; } State = IdleAwait; } if (State == MovementEnd) { foreach (CardObject card in Deck.Deck) { if (card.OnTable && card.enabled) { WaitFunc Remover = delegate() { EasyObjectPool.instance.ReturnObjectToPool(card.gameObject); var AvaibleLears = Deck.Deck.Where(x => !x.GetComponent <PoolObject>().isPooled).Select(x => x.GetComponent <CardObject>().CardLear).Distinct().ToArray(); if (AvaibleLears.Length > 0) { NowLear = AvaibleLears[r.Next(0, AvaibleLears.Length)];//or Lears[r.Next(0, 3)]; } State = IdleAwait; Score++; ScoreText.GetComponent <Text>().text = Score.ToString(); }; StartCoroutine(wait(2f, Remover)); Deck.Deck.Remove(card); break; } } } }
public WaitDelegate(WaitFunc func) { m_func = func; }