private void comboEvents_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboEvents.SelectedIndex < comboEvents.Items.Count && comboEvents.SelectedIndex >= 0)
     {
         EventListEvent ele = comboEvents.SelectedItem as EventListEvent;
         SelectEvent(ele.Event, ele.Time);
     }
 }
        private void btnNext_Click(object sender, EventArgs e)
        {
            if (comboEvents.Items.Count == 0)
            {
                return;
            }

            if (comboEvents.SelectedIndex < comboEvents.Items.Count - 1)
            {
                comboEvents.SelectedIndex++;
                EventListEvent ele = comboEvents.SelectedItem as EventListEvent;
                SelectEvent(ele.Event, ele.Time);
            }
        }
        private void AddTiming(float v)
        {
            current.Timings.Add(v);
            lstEffectTimings.Items.Add(v);
            timeline1.Items.Add(v, current);
            EventListEvent ele = new EventListEvent(current, v);

            comboEvents.Items.Add(ele);

            timeline1.SelectedItem   = new KeyValuePair <float, object>(v, current);
            comboEvents.SelectedItem = ele;

            RefreshUI();
        }
        private void SelectEvent(TimelineEvent ev, float at)
        {
            current = ev;
            lstEffectTimings.Items.Clear();

            if (current != null)
            {
                comboType.SelectedItem = current.Type;

                foreach (float f in current.Timings)
                {
                    lstEffectTimings.Items.Add(f);
                }

                comboEffect.SelectedItem = current.Effect;

                if (at >= 0)
                {
                    timeline1.SelectedItem = new KeyValuePair <float, object>(at, current);

                    EventListEvent currele = comboEvents.SelectedItem as EventListEvent;
                    if (currele == null || currele.Event != ev || currele.Time != at)
                    {
                        foreach (object o in comboEvents.Items)
                        {
                            EventListEvent e = o as EventListEvent;
                            if (e.Event == current && e.Time == at)
                            {
                                comboEvents.SelectedItem = e;
                                break;
                            }
                        }
                    }
                }
                else
                {
                    timeline1.SelectedItem = new KeyValuePair <float, object>(0, null);
                }

                // TODO: Hardpoints
            }

            RefreshUI();
        }
        private void DeleteTiming()
        {
            if (lstEffectTimings.SelectedIndex >= 0)
            {
                float v = (float)lstEffectTimings.SelectedItem;
                current.Timings.Remove(v);
                lstEffectTimings.Items.Remove(v);
                timeline1.Items.Remove(v, current);

                foreach (object o in comboEvents.Items)
                {
                    EventListEvent e = o as EventListEvent;
                    if (e.Event == current && e.Time == v)
                    {
                        comboEvents.Items.Remove(e);
                        break;
                    }
                }

                RefreshUI();
            }
        }