Esempio n. 1
0
 private void nativeEvent(IntPtr widget, int left, int top, MouseButtonCode button)
 {
     //Fill out the MouseEventArgs
     eventArgs.Button   = button;
     eventArgs.Position = new IntVector2(left, top);
     fireEvent(eventArgs);
 }
Esempio n. 2
0
        private static bool IsButtonPressed(uint buttonsPressedBitmask, MouseButtonCode mouseButtonCode)
        {
            var buttonPressedMacroResult = SDL.SDL_BUTTON((uint)mouseButtonCode);
            var bitmaskComparisonResult  = buttonsPressedBitmask & buttonPressedMacroResult;

            return(bitmaskComparisonResult > 0);
        }
Esempio n. 3
0
        internal static string PrettyButtonName(MouseButtonCode button)
        {
            switch (button)
            {
            case MouseButtonCode.MB_BUTTON0:
                return("Left Click");

            case MouseButtonCode.MB_BUTTON1:
                return("Right Click");

            case MouseButtonCode.MB_BUTTON2:
                return("Mouse Button 2");

            case MouseButtonCode.MB_BUTTON3:
                return("Mouse Button 3");

            case MouseButtonCode.MB_BUTTON4:
                return("Mouse Button 4");

            case MouseButtonCode.MB_BUTTON5:
                return("Mouse Button 5");

            case MouseButtonCode.MB_BUTTON6:
                return("Mouse Button 6");

            case MouseButtonCode.MB_BUTTON7:
                return("Mouse Button 7");

            default:
                return("Unknown Mouse Button");
            }
        }
Esempio n. 4
0
        public static void changeMouseButton(MouseButtonCode newMouseButton)
        {
            MoveCamera.removeButton(currentMouseButton);

            currentMouseButton = newMouseButton;

            MoveCamera.addButton(currentMouseButton);
        }
Esempio n. 5
0
        public bool injectMouseRelease(int absx, int absy, MouseButtonCode id)
        {
            mouseX = absx;
            mouseY = absy;
            bool handled = InputManager_injectMouseRelease(inputManager, absx, absy, id);

            if (MouseButtonReleased != null)
            {
                MouseButtonReleased.Invoke(absx, absy, id);
            }
            return(handled);
        }
Esempio n. 6
0
        void InputManager_MouseButtonPressed(int x, int y, MouseButtonCode button)
        {
            int left   = window.AbsoluteLeft;
            int top    = window.AbsoluteTop;
            int right  = left + window.Width;
            int bottom = top + window.Height;

            if ((x < left || x > right || y < top || y > bottom) && !(MDIManager != null && MDIManager.isControlWidgetAtPosition(x, y) || keepOpenFromPoint(x, y)))
            {
                Visible = false;
            }
        }
Esempio n. 7
0
        internal void fireButtonDown(MouseButtonCode button)
        {
            int index = (int)button;

            buttonDownStatus[index] = true;
            pressedThisFrame[index] = true;

            if (ButtonDown != null)
            {
                ButtonDown.Invoke(this, button);
            }
        }
Esempio n. 8
0
 void mouse_ButtonDown(Mouse mouse, MouseButtonCode buttonCode)
 {
     if (eventLayer.EventProcessingAllowed)
     {
         IntVector3 mousePos = mouse.AbsolutePosition;
         gui.HandledMouseButtons = inputManager.injectMousePress(mousePos.x, mousePos.y, buttonCode);
         if (gui.HandledMouseButtons || inputManager.isModalAny())
         {
             eventLayer.alertEventsHandled();
             eventLayer.Locked = true;
         }
     }
 }
Esempio n. 9
0
 void MouseButtonPressed(int x, int y, MouseButtonCode button)
 {
     if (!KeepOpen && !InputManager.Instance.isModalAny())
     {
         int left   = widget.AbsoluteLeft;
         int top    = widget.AbsoluteTop;
         int right  = left + widget.Width;
         int bottom = top + widget.Height;
         if ((x < left || x > right || y < top || y > bottom) && !keepOpenFromPoint(x, y))
         {
             hide();
         }
     }
 }
Esempio n. 10
0
	private int MouseButton ( MouseButtonCode code )
	{
		int aux = 0;
		switch (code) 
		{
			case MouseButtonCode.LEFT:
				aux = 0;
				break;
			case MouseButtonCode.RIGHT:
				aux = 1;
				break;
			case MouseButtonCode.MIDDLE:
				aux = 2;
				break;
		}
		return aux;
	}
Esempio n. 11
0
        internal void fireButtonUp(MouseButtonCode button)
        {
            int index = (int)button;

            //Make sure the button is down
            if (buttonDownStatus[index])
            {
                buttonDownStatus[index] = false;
                if (pressedThisFrame[index])
                {
                    downAndUpThisFrame[index] = true;
                }

                if (ButtonUp != null)
                {
                    ButtonUp.Invoke(this, button);
                }
            }
        }
Esempio n. 12
0
    private int MouseButton(MouseButtonCode code)
    {
        int aux = 0;

        switch (code)
        {
        case MouseButtonCode.LEFT:
            aux = 0;
            break;

        case MouseButtonCode.RIGHT:
            aux = 1;
            break;

        case MouseButtonCode.MIDDLE:
            aux = 2;
            break;
        }
        return(aux);
    }
Esempio n. 13
0
 /// <summary>
 /// Constructs a new <see cref="MouseButton"/> using the given code.
 /// </summary>
 /// <param name="code">The code for the mouse button represented by this <see cref="MouseButton"/>.</param>
 public MouseButton(MouseButtonCode code)
 {
     this.code = code;
 }
Esempio n. 14
0
 private static bool IsButtonPressed(uint buttonsPressedBitmask, MouseButtonCode mouseButtonCode)
 {
     var buttonPressedMacroResult = SDL.SDL_BUTTON((uint)mouseButtonCode);
     var bitmaskComparisonResult = buttonsPressedBitmask & buttonPressedMacroResult;
     return bitmaskComparisonResult > 0;
 }
Esempio n. 15
0
 /// <summary>
 /// Remove a mouse button binding from the event.
 /// </summary>
 /// <param name="button">The button to remove.</param>
 public void removeButton(MouseButtonCode button)
 {
     mouseButtons.Remove(button);
 }
Esempio n. 16
0
 /// <summary>
 /// Add a mouse button binding to the event.
 /// </summary>
 /// <param name="button">The button to add.</param>
 public void addButton(MouseButtonCode button)
 {
     mouseButtons.Add(button);
 }
Esempio n. 17
0
 protected void fireButtonUp(MouseButtonCode button)
 {
     mouse.fireButtonUp(button);
 }
Esempio n. 18
0
 /// <summary>
 /// Inject a mouse up event externally to the hardware mouse.
 ///
 /// Since we need to treat touches as mouse events this input handler provides a way to inject
 /// mouse inputs that will follow the normal mouse path. This is only needed on touch only devices
 /// that need to simulate the mouse.
 /// </summary>
 /// <param name="code">The mouse button to simulate.</param>
 public override void injectButtonUp(MouseButtonCode code)
 {
     createdMouse.injectButtonUp(code);
 }
Esempio n. 19
0
 /// <summary>
 /// Determines if the specified button is pressed.
 /// </summary>
 /// <returns>True if the button is pressed.  False if it is not.</returns>
 public bool buttonDown(MouseButtonCode button)
 {
     return(buttonDownStatus[(int)button]);
 }
Esempio n. 20
0
 internal void injectButtonUp(MouseButtonCode button)
 {
     fireButtonUp(button);
 }
Esempio n. 21
0
 internal void injectButtonDown(MouseButtonCode button)
 {
     fireButtonDown(button);
 }
Esempio n. 22
0
            private static void fireButtonUp(MouseButtonCode id, IntPtr instanceHandle)
            {
                GCHandle handle = GCHandle.FromIntPtr(instanceHandle);

                (handle.Target as NativeMouse).fireButtonUp(id);
            }
Esempio n. 23
0
 /// <summary>
 /// Checks if the given mouse button is currently down.
 /// </summary>
 /// <param name="code">The <see cref="MouseButtonCode"/> representing the button to check.</param>
 /// <returns>True if the mouse button is currently down; false if not.</returns>
 public bool GetMouseButtonDown(MouseButtonCode code) => coreState.Mouse.Buttons[(int)(code)];
Esempio n. 24
0
            private static void nativeEvent(IntPtr widget, int left, int top, MouseButtonCode button, IntPtr instanceHandle)
            {
                GCHandle handle = GCHandle.FromIntPtr(instanceHandle);

                (handle.Target as EventMouseDragTranslator).nativeEvent(widget, left, top, button);
            }
Esempio n. 25
0
 void Mouse_ButtonDown(Mouse mouse, MouseButtonCode buttonCode)
 {
     context.ProcessMouseButtonDown((int)buttonCode, 0);
 }
Esempio n. 26
0
        void applyButton_MouseButtonClick(Widget source, EventArgs e)
        {
            switch (cameraSpeedCombo.SelectedIndex)
            {
            case 0:
                MedicalConfig.CameraTransitionTime = 0.01f;
                break;

            case 1:
                MedicalConfig.CameraTransitionTime = 0.25f;
                break;

            case 2:
                MedicalConfig.CameraTransitionTime = 0.5f;
                break;

            case 3:
                MedicalConfig.CameraTransitionTime = 1.0f;
                break;
            }
            MedicalConfig.EnableMultitouch            = enableMultitouchCheck.Checked;
            MedicalConfig.ShowDeveloperTools          = enableDeveloper.Checked;
            MedicalConfig.EngineConfig.ShowStatistics = showStatsCheck.Checked;
            MouseButtonCode cameraButtonCode = (MouseButtonCode)cameraButtonCombo.SelectedIndex;

            MedicalConfig.CameraMouseButton = cameraButtonCode;
            CameraInputController.changeMouseButton(cameraButtonCode);
            MedicalConfig.DefaultScene = defaultSceneCombo.SelectedItemData?.ToString() ?? MedicalConfig.DefaultScene;

            bool videoOptionsChanged = false;

            if (MedicalConfig.ExtraScaling != (UIExtraScale)uiSize.SelectedItemData)
            {
                MedicalConfig.ExtraScaling = (UIExtraScale)uiSize.SelectedItemData;
                videoOptionsChanged        = true;
            }

            if (OgreConfig.FSAA != aaCombo.getItemNameAt(aaCombo.SelectedIndex))
            {
                OgreConfig.FSAA     = aaCombo.getItemNameAt(aaCombo.SelectedIndex);
                videoOptionsChanged = true;
            }
            if (OgreConfig.VSync != vsyncCheck.Checked)
            {
                OgreConfig.VSync    = vsyncCheck.Checked;
                videoOptionsChanged = true;
            }
            if (MedicalConfig.EngineConfig.Fullscreen != fullscreenCheck.Checked)
            {
                MedicalConfig.EngineConfig.Fullscreen = fullscreenCheck.Checked;
                videoOptionsChanged = true;
            }
            String[] res      = resolutionCombo.getItemNameAt(resolutionCombo.SelectedIndex).Split(seps, StringSplitOptions.RemoveEmptyEntries);
            int      horizRes = NumberParser.ParseInt(res[0]);
            int      vertRes  = NumberParser.ParseInt(res[1]);

            if (MedicalConfig.EngineConfig.HorizontalRes != horizRes || MedicalConfig.EngineConfig.VerticalRes != vertRes)
            {
                MedicalConfig.EngineConfig.HorizontalRes = horizRes;
                MedicalConfig.EngineConfig.VerticalRes   = vertRes;
                videoOptionsChanged = true;
            }
            int maxFpsValue = maxFPS.IntValue;

            if (maxFpsValue < EngineConfig.MinimumAllowedFramerate && maxFpsValue != 0)
            {
                maxFpsValue = EngineConfig.MinimumAllowedFramerate;
            }
            if (MedicalConfig.EngineConfig.FPSCap != maxFpsValue)
            {
                MedicalConfig.EngineConfig.FPSCap = maxFpsValue;
                videoOptionsChanged = true;
            }
            if (videoOptionsChanged && VideoOptionsChanged != null)
            {
                VideoOptionsChanged.Invoke(this, EventArgs.Empty);
            }
            this.hide();
        }
Esempio n. 27
0
 /// <summary>
 /// Inject a mouse up event externally to the hardware mouse.
 ///
 /// Since we need to treat touches as mouse events this input handler provides a way to inject
 /// mouse inputs that will follow the normal mouse path. This is only needed on touch only devices
 /// that need to simulate the mouse.
 /// </summary>
 /// <param name="code">The mouse button to simulate.</param>
 public abstract void injectButtonUp(MouseButtonCode code);
Esempio n. 28
0
 protected void fireButtonDown(MouseButtonCode button)
 {
     mouse.fireButtonDown(button);
 }
Esempio n. 29
0
 public static bool IsMouseButtonPressed(MouseButtonCode mouseButton)
 {
     return(IsMouseButtonPressed_Native(mouseButton));
 }
Esempio n. 30
0
        void OptionsDialog_Showing(object sender, EventArgs e)
        {
            //Program options
            float cameraTransitionTime = MedicalConfig.CameraTransitionTime;

            if (cameraTransitionTime >= 1.0f)
            {
                cameraSpeedCombo.SelectedIndex = 3;
            }
            else if (cameraTransitionTime >= 0.5f)
            {
                cameraSpeedCombo.SelectedIndex = 2;
            }
            else if (cameraTransitionTime >= 0.25f)
            {
                cameraSpeedCombo.SelectedIndex = 1;
            }
            else
            {
                cameraSpeedCombo.SelectedIndex = 0;
            }

            enableMultitouchCheck.Checked = MedicalConfig.EnableMultitouch;
            enableDeveloper.Checked       = MedicalConfig.ShowDeveloperTools;

            MouseButtonCode cameraButtonCode = MedicalConfig.CameraMouseButton;

            cameraButtonCombo.SelectedIndex = (uint)cameraButtonCode;

            //Default Scene
            uint   count        = defaultSceneCombo.ItemCount;
            String defaultScene = MedicalConfig.DefaultScene;

            if (defaultSceneCombo.ItemCount > 0)
            {
                bool defaultSceneNotFound = true;
                for (uint i = 0; i < defaultSceneCombo.ItemCount; ++i)
                {
                    if (defaultSceneCombo.getItemDataAt(i).ToString() == defaultScene)
                    {
                        defaultSceneCombo.SelectedIndex = i;
                        defaultSceneNotFound            = false;
                        break;
                    }
                }
                if (defaultSceneNotFound)
                {
                    defaultSceneCombo.SelectedIndex = 0;
                }
            }
            else
            {
                defaultSceneCombo.Enabled = false;
            }

            uint scalingIndex = uiSize.findItemIndexWithData(MedicalConfig.ExtraScaling);

            if (scalingIndex != ComboBox.Invalid)
            {
                uiSize.SelectedIndex = scalingIndex;
            }
            else
            {
                uiSize.SelectedIndex = uiSize.findItemIndexWithData(UIExtraScale.Normal);
            }

            //Graphics Options
            fullscreenCheck.Checked = MedicalConfig.EngineConfig.Fullscreen;
            vsyncCheck.Checked      = OgreConfig.VSync;
            showStatsCheck.Checked  = MedicalConfig.EngineConfig.ShowStatistics;

            String resString = String.Format("{0} x {1}", MedicalConfig.EngineConfig.HorizontalRes, MedicalConfig.EngineConfig.VerticalRes);
            uint   resIndex  = resolutionCombo.findItemIndexWith(resString);

            if (resIndex == uint.MaxValue)
            {
                resolutionCombo.addItem(resString);
                resolutionCombo.SelectedIndex = resolutionCombo.ItemCount - 1;
            }
            else
            {
                resolutionCombo.SelectedIndex = resIndex;
            }

            uint aaIndex = aaCombo.findItemIndexWith(OgreConfig.FSAA);

            if (aaIndex == uint.MaxValue)
            {
                if (aaCombo.ItemCount == 0)
                {
                    aaCombo.addItem(OgreConfig.FSAA);
                    aaCombo.SelectedIndex = aaCombo.ItemCount - 1;
                }
                else
                {
                    aaCombo.SelectedIndex = 0;
                }
            }
            else
            {
                aaCombo.SelectedIndex = aaIndex;
            }

            maxFPS.IntValue = MedicalConfig.EngineConfig.FPSCap;
        }
Esempio n. 31
0
 /// <summary>
 /// Determins if the button was pressed on this frame, will be true the first frame the
 /// button is down and false every frame after that until it is released. This is intended
 /// to catch down / up events that happen before an update can be called.
 /// </summary>
 /// <param name="button"></param>
 /// <returns></returns>
 public bool buttonDownAndUpThisFrame(MouseButtonCode button)
 {
     return(downAndUpThisFrame[(int)button]);
 }
Esempio n. 32
0
 private static extern bool IsMouseButtonPressed_Native(MouseButtonCode mouseButton);