/** <summary> Constructs a menu item with the specified text, action, and hotkey. </summary> */
        public DebugMenuItem(string text, HotKey hotkey, MenuItemAction action)
        {
            this.root			= null;

            this.text			= text;
            this.index			= 0;
            this.hotkey			= hotkey ?? new HotKey();
            this.action			= action;
            this.items			= new List<DebugMenuItem>();
        }
        /** <summary> Constructs a menu item with the specified text. </summary> */
        public DebugMenuItem(string text)
        {
            this.root			= null;

            this.text			= text;
            this.index			= 0;
            this.hotkey			= new HotKey();
            this.action			= null;
            this.items			= new List<DebugMenuItem>();
        }
        // ================== CONSTRUCTORS ================== //
        public ToggleMenuItem(string text, HotKey hotkey, bool startsEnabled, MenuItemToggleAction toggleAction,
			MenuItemAction enableAction, MenuItemAction disableAction)
            : base(text, hotkey, null)
        {
            this.isEnabled     = startsEnabled;
            this.toggleAction  = toggleAction;
            this.enableAction  = enableAction;
            this.disableAction = disableAction;

            Action = delegate() { Toggle(); };
        }
        // ================== CONSTRUCTORS ================== //
        public RadioButtonMenuItem(string text, HotKey hotkey, RadioButtonGroup group, bool startsEnabled, MenuItemToggleAction toggleAction,
		MenuItemAction enableAction, MenuItemAction disableAction)
            : base(text, hotkey, startsEnabled, toggleAction, enableAction, disableAction)
        {
            this.group = group;
            group.Items.Add(this);

            Action = delegate() {
            if (!IsEnabled) {
                Enable();

                for (int i = 0; i < group.Items.Count; ++i) {
                    if (group.Items[i] != this && group.Items[i].IsEnabled)
                        group.Items[i].Disable();
                }
            }
            };
        }
 /** <summary> Adds the specified menu item to the list of menu items. </summary> */
 public DebugMenuItem AddItem(string text, HotKey hotkey, MenuItemAction action)
 {
     return AddItem(new DebugMenuItem(text, hotkey, action));
 }