public static void AddActions(this Menu.MenuItemCollection items, IEnumerable<MenuAction> actions) { foreach (var menuAction in actions) { items.AddAction(menuAction); } }
/// <summary> /// Shortcut for adding an element action. /// </summary> /// <param name="element"></param> /// <param name="name"></param> /// <param name="execute"></param> /// <param name="canExecute"></param> /// <returns></returns> public static IElementAction AddAction(this Element element, string name, Action execute, Func<bool> canExecute = null) { if (element == null) throw new ArgumentNullException(nameof(element)); if (execute == null) throw new ArgumentNullException(nameof(execute)); var action = new ElementAction(name, execute, canExecute); element.AddAction(action); return action; }
public static int ImportLegacyData(this LetterAnimation letter_anim, List<object> data_list, int index_offset = 0) { KeyValuePair<string, string> value_pair; string key, value; int idx; int loop_idx = 0, action_idx = 0; for (idx = index_offset; idx < data_list.Count; idx++) { value_pair = (KeyValuePair<string, string>)data_list[idx]; key = value_pair.Key; value = value_pair.Value; if (key.Equals("ANIM_DATA_END")) // reached end of this animations import data break; switch (key) { case "m_letters_to_animate": var letter_list = value.StringToList(';'); letter_anim.m_letters_to_animate = new List<int>(); if (letter_list != null) foreach (var obj in letter_list) letter_anim.m_letters_to_animate.Add(int.Parse(obj.ToString())); break; case "m_letters_to_animate_custom_idx": letter_anim.m_letters_to_animate_custom_idx = int.Parse(value); break; case "m_letters_to_animate_option": letter_anim.m_letters_to_animate_option = (LETTERS_TO_ANIMATE)int.Parse(value); break; // LOOP DATA IMPORT case "LOOP_DATA_START": if (loop_idx == letter_anim.NumLoops) letter_anim.AddLoop(); break; case "LOOP_DATA_END": loop_idx++; break; case "m_delay_first_only": letter_anim.GetLoop(loop_idx).m_delay_first_only = bool.Parse(value); break; case "m_end_action_idx": letter_anim.GetLoop(loop_idx).m_end_action_idx = int.Parse(value); break; case "m_loop_type": letter_anim.GetLoop(loop_idx).m_loop_type = (LOOP_TYPE)int.Parse(value); break; case "m_number_of_loops": letter_anim.GetLoop(loop_idx).m_number_of_loops = int.Parse(value); break; case "m_start_action_idx": letter_anim.GetLoop(loop_idx).m_start_action_idx = int.Parse(value); break; // ACTION DATA IMPORT case "ACTION_DATA_START": if (action_idx == letter_anim.NumActions) letter_anim.AddAction(); idx = letter_anim.GetAction(action_idx).ImportLegacyData(data_list, idx + 1); action_idx ++; break; } } // Remove any extra LoopData or LetterAction instances that existed prior to importing if (letter_anim.NumLoops > loop_idx) letter_anim.RemoveLoops(loop_idx, letter_anim.NumLoops - loop_idx); if (letter_anim.NumActions > action_idx) letter_anim.RemoveActions(action_idx, letter_anim.NumActions - action_idx); return idx; }