コード例 #1
0
        public Tasker SetState(Tasker.State state)
        {
            if (this.state.Any())
            {
                if (this.state.Peek() == state)
                {
                    return(this);
                }
                this.state.Pop();
            }
            this.state.Push(state);

            this.views.ForEach(view => view.SetState(state));
            return(this);
        }
コード例 #2
0
ファイル: TaskerTaskbar.cs プロジェクト: wesimon01/hakchi2
        public ITaskerView SetState(Tasker.State state)
        {
            if (state == taskState)
            {
                return(this);
            }
            try
            {
                if (Tasker.HostForm.InvokeRequired)
                {
                    return((ITaskerView)Tasker.HostForm.Invoke(new Func <Tasker.State, ITaskerView>(SetState), new object[] { state }));
                }
                switch (state)
                {
                case Tasker.State.Starting:
                case Tasker.State.Finishing:
                case Tasker.State.Waiting:
                    if (!(new Tasker.State[] { Tasker.State.Starting, Tasker.State.Finishing, Tasker.State.Waiting }).Contains(taskState))
                    {
                        TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.NoProgress);
                        Thread.Sleep(20);     // workaround to make it work
                        TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.Indeterminate);
                    }
                    break;

                case Tasker.State.Running:
                    TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.Normal);
                    break;

                case Tasker.State.Undefined:
                case Tasker.State.Done:
                    TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.NoProgress);
                    break;

                case Tasker.State.Paused:
                    TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.Paused);
                    break;

                case Tasker.State.Error:
                    TaskbarProgress.SetState(Tasker.HostForm, TaskbarProgress.TaskbarStates.Error);
                    break;
                }
                taskState = state;
            }
            catch (InvalidOperationException) { }
            return(this);
        }
コード例 #3
0
 public ITaskerView SetState(Tasker.State state)
 {
     if (Disposing || state == taskState)
     {
         return(this);
     }
     try
     {
         if (InvokeRequired)
         {
             return((ITaskerView)Invoke(new Func <Tasker.State, ITaskerView>(SetState), new object[] { state }));
         }
         taskState = state;
     }
     catch (InvalidOperationException) { }
     return(this);
 }
コード例 #4
0
 public static Tasker SetStatus(this Tasker tasker, Tasker.State state, string status)
 {
     tasker.SetState(state);
     tasker.SetStatus(status);
     return(tasker);
 }
コード例 #5
0
 public static Tasker SetProgress(this Tasker tasker, long value, long maximum, Tasker.State state, string status)
 {
     tasker.SetProgress(value, maximum);
     tasker.SetState(state);
     tasker.SetStatus(status);
     return(tasker);
 }
コード例 #6
0
 public ITaskerView SetState(Tasker.State state)
 {
     return(this);
 }
コード例 #7
0
ファイル: TaskerTaskbar.cs プロジェクト: wesimon01/hakchi2
 public TaskerTaskbar(Tasker tasker = null)
 {
     this.taskState = Tasker.State.Undefined;
     this.Tasker    = tasker;
 }
コード例 #8
0
 public ITaskerView SetState(Tasker.State state)
 {
     Debug.WriteLine($"Set state {state.ToString()}");
     return(this);
 }
コード例 #9
0
        // ITaskerView interface

        public Tasker SetState(Tasker.State state)
        {
            this.views.ForEach(view => view.SetState(state));
            return(this);
        }