mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	InputText: Code cleanup
This commit is contained in:
		@@ -329,7 +329,7 @@ namespace InputText
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        public void Abort()
 | 
					        public void Abort()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            this.drBackup = DialogResult.Cancel;
 | 
					            this.drBackup = DialogResult.Abort;
 | 
				
			||||||
            this.Close();
 | 
					            this.Close();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,9 +72,24 @@ namespace InputText
 | 
				
			|||||||
            if (go)
 | 
					            if (go)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                ExecuteBangParam param = new ExecuteBangParam(args);
 | 
					                ExecuteBangParam param = new ExecuteBangParam(args);
 | 
				
			||||||
                if (ReadOptions(param))  // Read all options in advance for thread-safety
 | 
					                if (ReadOptions(param))  // Read all options in main thread for thread-safety
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    ThreadPool.QueueUserWorkItem(ExecuteBangThread, param);
 | 
					                    ThreadPool.QueueUserWorkItem(_ =>
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        try
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            ExecuteCommands(param);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        catch (Exception ex)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            API.Log(API.LogType.Error, "C# plugin in ExecuteBang(), " + ex.GetType().ToString() + ": " + ex.Message);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        lock (this.locker)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            this.IsExecuteBangRunning = false;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -87,7 +102,7 @@ namespace InputText
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        internal class ExecuteBangParam
 | 
					        private class ExecuteBangParam
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            internal enum BangType
 | 
					            internal enum BangType
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -109,28 +124,12 @@ namespace InputText
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private void ExecuteBangThread(object state)
 | 
					        private bool _IsFinalizing = false;
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            ExecuteBangParam param = (ExecuteBangParam)state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            try
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                ExecuteCommands(param);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            catch (Exception ex)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                API.Log(API.LogType.Error, "C# plugin in ExecuteBang(), " + ex.GetType().ToString() + ": " + ex.Message);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            lock (this.locker)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                this.IsExecuteBangRunning = false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        internal void Dispose()
 | 
					        internal void Dispose()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            CloseInputBox();
 | 
					            this._IsFinalizing = true;
 | 
				
			||||||
 | 
					            FinalizePluginCode();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -264,6 +264,9 @@ namespace InputText
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            lock (this._InputBoxLocker)
 | 
					            lock (this._InputBoxLocker)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					                if (this._IsFinalizing)
 | 
				
			||||||
 | 
					                    return null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                SkinWindow skin = new SkinWindow(rm);
 | 
					                SkinWindow skin = new SkinWindow(rm);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // Create the form.  'InputBox' is a .NET form with a textbox and two button controls on it.
 | 
					                // Create the form.  'InputBox' is a .NET form with a textbox and two button controls on it.
 | 
				
			||||||
@@ -352,7 +355,7 @@ namespace InputText
 | 
				
			|||||||
            return result;
 | 
					            return result;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private void CloseInputBox()
 | 
					        private void FinalizePluginCode()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            lock (this._InputBoxLocker)
 | 
					            lock (this._InputBoxLocker)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user