예제 #1
0
        private void createDelegatesMenu(MainMenu i_MainMenu)
        {
            InternalMenu dateAndTimeMenu       = new InternalMenu(Constants.k_DateAndTimeTitle, i_MainMenu);
            InternalMenu versionAndCapitalMenu = new InternalMenu(Constants.k_VersionAndCapitalsTitle, i_MainMenu);

            i_MainMenu.InsideOptionsList.Add(dateAndTimeMenu);
            i_MainMenu.InsideOptionsList.Add(versionAndCapitalMenu);
            ActiveMenuItem timeApp = new ActiveMenuItem(Constants.k_ShowTimeTitle, dateAndTimeMenu);

            timeApp.Choice += r_CallMethod.showCurrentTime; ////add pointer to the fuction to the event
            ActiveMenuItem dateApp = new ActiveMenuItem(Constants.k_ShowDateTitle, dateAndTimeMenu);

            dateApp.Choice += r_CallMethod.showTodayDate; ////add pointer to the fuction to the event

            dateAndTimeMenu.InsideOptionsList.Add(timeApp);
            dateAndTimeMenu.InsideOptionsList.Add(dateApp);
            ActiveMenuItem countCapitals = new ActiveMenuItem(Constants.k_CountCapitalsTitle, versionAndCapitalMenu);

            countCapitals.Choice += r_CallMethod.countCapitalLetterInSentence; ////add pointer to the fuction to the event
            ActiveMenuItem version = new ActiveMenuItem(Constants.k_ShowVersion, versionAndCapitalMenu);

            version.Choice += r_CallMethod.showVersion; ////add pointer to the fuction to the event
            versionAndCapitalMenu.InsideOptionsList.Add(countCapitals);
            versionAndCapitalMenu.InsideOptionsList.Add(version);
        }
예제 #2
0
 public void SelectMenuItem()
 {
     if (ActiveMenuItem != null)
     {
         ActiveMenuItem.Select();
     }
 }
예제 #3
0
 public void ActivateMenuItem(Screen screen, MenuItem menuItem)
 {
     if (ActiveMenuItem != null)
     {
         ActiveMenuItem.Deactivate(screen);
     }
     ActiveMenuItem = menuItem;
     if (this._activator != null)
     {
         menuItem.Activate(screen, this);
     }
     else
     {
         menuItem.Popup(screen);
     }
 }
예제 #4
0
        public override void OnBeforeKeyDown(object sender, KeyEvent e)
        {
            if (!this._active && e.VirtualKey != VirtualKey.VK_MENU)
            {
                // Note we only do this when the VK is not VK_MENU so that we don't
                // become active if alt key is held down and producing key repeats.
                this._active = true;
            }

            if (e.VirtualKey == VirtualKey.VK_ESCAPE)
            {
                TerminateMenuMode();
            }

            var  menuItem = MenuItemFromCursorKey(e.VirtualKey);
            bool sendKeyDownToMenuItem = false;

            if (menuItem == null)
            {
                menuItem = MenuItemFromAccelerator(e.Character);
                if (menuItem != null)
                {
                    sendKeyDownToMenuItem = true;
                    e.Handled             = true;
                }
            }

            if (menuItem != null)
            {
                ActivateMenuItem((Screen)sender, menuItem);
                if (sendKeyDownToMenuItem)
                {
                    menuItem.OnBeforeKeyDown(sender, e);
                    menuItem.OnAfterKeyDown(sender, e);
                }
                e.Handled = true;
            }

            if (!e.Handled)
            {
                if (_activator == null)
                {
                    if (ActiveMenuItem != null)
                    {
                        ActiveMenuItem.OnBeforeKeyDown(sender, e);
                        ActiveMenuItem.OnAfterKeyDown(sender, e);
                    }
                }
                else
                {
                    if (DropDownMenu)
                    {
                        if (e.VirtualKey == VirtualKey.VK_LEFT ||
                            e.VirtualKey == VirtualKey.VK_RIGHT)
                        {
                            Deactivate(Screen.GetScreen());
                            var eDown = new KeyEvent(true, ' ', 1, VirtualKey.VK_DOWN, 0);
                            _activator.OnBeforeKeyDown(sender, e);
                            Screen.GetScreen().ActiveControl.OnBeforeKeyDown(sender, eDown);
                            _activator.OnAfterKeyDown(sender, e);
                            Screen.GetScreen().ActiveControl.OnAfterKeyDown(sender, eDown);
                        }
                    }
                }
            }
        }