示例#1
0
        private void NotificationsClient_Notification(object sender, OnNotificationArgs e)
        {
            ListViewItem itemDateTime = new ListViewItem {
                Tag      = e,
                ImageKey = e.Type.GetAttribute <ImageKeyAttribute>().ImageKey,
                UseItemStyleForSubItems = true,
                BackColor = (e.ContainsUrls) ? Color.FromArgb(179, 209, 255) : Color.FromArgb(140, 255, 102),
                Text      = e.DateTime.Humanize(false),
            };

            ListViewItem.ListViewSubItem itemFrom = new ListViewItem.ListViewSubItem {
                Text = e.From
            };
            itemDateTime.SubItems.Add(itemFrom);

            ListViewItem.ListViewSubItem itemMessage = new ListViewItem.ListViewSubItem {
                Text = e.Message
            };
            itemDateTime.SubItems.Add(itemMessage);

            Invoke(new Action(() => {
                MessagesListView.BeginUpdate();

                if (MessagesListView.Items.Count >= SettingsManager.Configuration.Notifications.MaximumNotifications)
                {
                    MessagesListView.Items.RemoveAt(MessagesListView.Items.Count - 1);;
                }

                MessagesListView.Items.Insert(0, itemDateTime);
                MessagesListView.EndUpdate();
            }));
        }
示例#2
0
        private void UpdateMessagesTimer_Tick(object sender, EventArgs e)
        {
            MessagesListView.BeginUpdate();

            foreach (ListViewItem item in MessagesListView.Items)
            {
                UpdateMessage(item);
            }

            MessagesListView.EndUpdate();
        }
示例#3
0
        private void NotificationsClient_ChangingChannel(object sender, OnChangingChannel e) => Invoke(new Action(() => {
            try {
                if (e.State == ChangingChannelState.Started)
                {
                    TwitchChannelLabel.Text      = string.Empty;
                    ChangingChannelLabel.Text    = $"Connecting to {e.JoiningName}...";
                    ChangingChannelLabel.Visible = true;
                }
                else if (e.State == ChangingChannelState.Finished)
                {
                    TwitchChannelLabel.Text = e.JoiningName;
                    MessagesListView.BeginUpdate();
                    MessagesListView.Items.Clear();
                    MessagesListView.EndUpdate();
                    ChangingChannelLabel.Visible = false;
                }

                Application.DoEvents();
            } catch (Exception ex) {
                LoggingManager.Log.Error(ex);
            }
        }));