internal static Notification AddLoading(string Message, string ButtonText, AcceptEventHandler AcceptHandler) { Notification Notification = new Notification(Message, ButtonText, AcceptHandler, 1); Stack.Insert(0, Notification); return(Notification); }
internal Notification(string Message, string ButtonText, AcceptEventHandler AcceptHandler, int Mode) { InitializeComponent(); Accept = AcceptHandler; MessagePresenter.Text = Message; if (Mode != 0) { ButtonsGrid.Visibility = Visibility.Collapsed; } if (Mode == 1) { LoadingSpinner Spinner = new LoadingSpinner { Margin = new Thickness(0D, 0D, 25D, 0D), HorizontalAlignment = HorizontalAlignment.Center }; SetColumn(Spinner, 1); ContentGrid.Children.Add(Spinner); } else if (Mode == 2) { VectorImage Image = new VectorImage { Width = 30D, Height = 30D, Margin = new Thickness(0D, 0D, 5D, 0D), VerticalAlignment = VerticalAlignment.Center, Source = ButtonText }; SetColumn(Image, 1); ContentGrid.Children.Add(Image); } if (!(ButtonText is null) && LocCulture != "el" && LocCulture != "ar") { ButtonText = ButtonText.ToUpper(); } AcceptButton.Content = ButtonText; }
/// <summary> /// Function to stop the SocketServer. It can be restarted with Start /// </summary> public void Stop() { // Abort the accept thread if (this.acceptThread != null) { this.tcpListener.Stop(); this.acceptThread.Join(); this.acceptThread = null; } // Dispose of all of the socket connections for (int iSocket = 0; iSocket < this.socketClientList.Count; ++iSocket) { SocketClient socket = (SocketClient)socketClientList[iSocket]; socketClientList.Remove(socket); socket.Dispose(); } // Wait for all of the socket client objects to be destroyed //GC.Collect(); //GC.WaitForPendingFinalizers(); // Clear the Handler Functions this.messageHandler = null; this.acceptHandler = null; this.closeHandler = null; this.errorHandler = null; // Clear the buffer size and user arguments this.sizeOfRawBuffer = 0; this.userArg = null; }
/// <summary> /// Function to start the SocketServer /// </summary> /// <param name="ipAddress"> The IpAddress to listening on </param> /// <param name="port"> The Port to listen on </param> /// <param name="sizeOfRawBuffer"> Size of the Raw Buffer </param> /// <param name="userArg"> User supplied arguments </param> /// <param name="messageHandler"> Function pointer to the user MessageHandler function </param> /// <param name="acceptHandler"> Function pointer to the user AcceptHandler function </param> /// <param name="closeHandler"> Function pointer to the user CloseHandler function </param> /// <param name="errorHandler"> Function pointer to the user ErrorHandler function </param> public void Start(string ipAddress, int port, int sizeOfRawBuffer, object userArg, MessageEventHandler messageHandler, AcceptEventHandler acceptHandler, CloseEventHandler closeHandler, ErrorEventHandler errorHandler) { // Is an AcceptThread currently running if (this.acceptThread == null) { // Set connection values this.IpAddress = ipAddress; this.Port = port; // Save the Handler Functions this.messageHandler = messageHandler; this.acceptHandler = acceptHandler; this.closeHandler = closeHandler; this.errorHandler = errorHandler; // Save the buffer size and user arguments this.SizeOfRawBuffer = sizeOfRawBuffer; this.UserArg = userArg; // Create a new TCPListner and start it up var endpoint = GetIPEndPoint(this.ipAddress, this.port); this.tcpListener = new TcpListener(endpoint); this.tcpListener.Start(maxAccept); // Start the listening thread if one is currently not running ThreadStart tsThread = new ThreadStart(AcceptThread); this.acceptThread = new Thread(tsThread); this.acceptThread.Name = "Notification.Accept"; this.acceptThread.Start(); } }
private void acceptButton_Click(object sender, EventArgs e) { // Only send event if name and color are filled and the name is correct. bool isMatch = regex.IsMatch(nameTextBox.Text); if ( !string.IsNullOrWhiteSpace(nameTextBox.Text) && isMatch && !string.IsNullOrWhiteSpace(textTextBox.Text) && tagComboBox.SelectedItem != null && tagComboBox.SelectedItem is Tag tag ) { EditMacroEvent editTagEvent = new EditMacroEvent { Original = OriginalMacro, Created = new EditMacro { Macro = new Macro { Name = nameTextBox.Text.Trim(), Text = textTextBox.Text.Trim() }, Tag = tag } }; AcceptEventHandler.Invoke(editTagEvent, e); Close(); } else if (!isMatch) { Messages.ShowWarningMessage("Currently the macro name can only contain letters and numbers", "Incorrect macro name"); } else { Messages.InvalidForm(); } }
private void acceptButton_Click(object sender, EventArgs e) { // Only send event if name and color are filled. if (!string.IsNullOrWhiteSpace(nameTextBox.Text) && colorDialog.Color != null) { EditTagEvent editTagEvent = new EditTagEvent { Original = OriginalTag, Created = new Tag { Name = nameTextBox.Text.Trim(), Color = $"#{colorDialog.Color.ToArgb() & 0x00FFFFFF:X6}", Macros = OriginalTag?.Macros } }; AcceptEventHandler.Invoke(editTagEvent, e); Close(); } else { Messages.InvalidForm(); } }
internal static void Add(string Message, string ButtonText, AcceptEventHandler AcceptHandler) => Stack.Insert(0, new Notification(Message, ButtonText, AcceptHandler, 0));