void
MenuView::DoMouseFrame()
{
	static DWORD rbutton_latch = 0;

	action = 0;

	if (Mouse::RButton()) {
		MouseController* mouse_con = MouseController::GetInstance();
		if (!right_down && (!mouse_con || !mouse_con->Active())) {
			rbutton_latch = Game::RealTime();
			right_down    = true;
			show_menu     = false;
		}
	}
	else {
		if (right_down && (Game::RealTime() - rbutton_latch < 250)) {
			right_start.x = Mouse::X() - offset.x;
			right_start.y = Mouse::Y() - offset.y;
			show_menu   = true;
			Button::PlaySound(Button::SND_MENU_OPEN);
		}

		right_down = false;
	}

	MouseController* mouse_con = MouseController::GetInstance();

	if (!mouse_con || !mouse_con->Active()) {
		if (Mouse::LButton()) {
			if (!mouse_down)
			shift_down = Keyboard::KeyDown(VK_SHIFT);

			mouse_down = true;
		}

		else if (mouse_down) {
			int mouse_x  = Mouse::X() - offset.x;
			int mouse_y  = Mouse::Y() - offset.y;
			int keep_menu = false;

			if (show_menu) {
				keep_menu = ProcessMenuItem();
				Mouse::Show(true);
			}

			mouse_down = false;

			if (!keep_menu) {
				ClearMenuSelection(menu);
				show_menu = false;
			}
		}
	}
}
/// <summary>
/// Handler function for menu commands
/// </summary>
/// <param name="wParam">Command parameter</param>
void KinectWindow::OnCommand(WPARAM wParam)
{
    WORD id     = LOWORD(wParam);   // Get menu item ID
    WORD param  = HIWORD(wParam);   // Get command parameter

    bool itemChecked = false;

    // Update memu item status
    if (ProcessMenuItem(id, itemChecked))
    {
        // Process menu item command
        m_pSettings->ProcessMenuCommand(id, param, itemChecked);
    }
}