//  Base constructor with delegate for indexed onButtonClick and tooltip
 private MyGuiControlButton(IMyGuiControlsParent parent, Vector2 position, Vector2?size, Vector4 backgroundColor,
                            OnIndexedButtonClick onIndexedButtonClick, int buttonIndex, bool canHandleKeyboardInput, MyGuiDrawAlignEnum align, StringBuilder toolTip, bool implementedFeature, bool canHandleKeyboardActiveControl)
     : base(parent, MyGuiManager.GetAlignedCoordinate(position, size.Value, align) + new Vector2(size.Value.X / 2.0f, size.Value.Y / 2.0f), size, backgroundColor, toolTip)
 {
     m_canHandleKeyboardActiveControl = canHandleKeyboardActiveControl;
     m_onIndexedButtonClick           = onIndexedButtonClick;
     m_buttonIndex            = buttonIndex;
     m_canHandleKeyboardInput = canHandleKeyboardInput;
     m_implementedFeature     = implementedFeature;
 }
 //  Base constructor with delegate for indexed onButtonClick
 private MyGuiControlButton(IMyGuiControlsParent parent, Vector2 position, Vector2?size, Vector4 backgroundColor,
                            MyTexture2D buttonTexture, MyTexture2D hoverButtonTexture, MyTexture2D pressedButtonTexture,
                            OnIndexedButtonClick onIndexedButtonClick, int buttonIndex, bool canHandleKeyboardInput, MyGuiDrawAlignEnum align, bool implementedFeature, bool canHandleKeyboardActiveControl)
     : base(parent, MyGuiManager.GetAlignedCoordinate(position, size.Value, align) + new Vector2(size.Value.X / 2.0f, size.Value.Y / 2.0f), size, backgroundColor, null,
            buttonTexture, hoverButtonTexture, pressedButtonTexture, true)
 {
     m_canHandleKeyboardActiveControl = canHandleKeyboardActiveControl;
     m_onIndexedButtonClick           = onIndexedButtonClick;
     m_buttonIndex            = buttonIndex;
     m_canHandleKeyboardInput = canHandleKeyboardInput;
     m_implementedFeature     = implementedFeature;
 }
 //  Base constructor
 private MyGuiControlButton(IMyGuiControlsParent parent, Vector2 position, Vector2?size, Vector4 backgroundColor, MyTexture2D buttonTexture, MyTexture2D hoverButtonTexture, MyTexture2D pressedButtonTexture,
                            OnButtonClick onButtonClick, bool canHandleKeyboardInput, MyGuiDrawAlignEnum align, StringBuilder tooltip, bool implementedFeature, bool canHandleKeyboardActiveControl, MyGuiControlHighlightType highlightType,
                            MyTexture2D mouseCursorHoverTexture, MyTexture2D mouseCursorPressedTexture /*,
                                                                                                        * System.Drawing.Bitmap mouseCursorHoverBitmap, System.Drawing.Bitmap mouseCursorPressedBitmap*/)
     : base(parent, MyGuiManager.GetAlignedCoordinate(position, size.Value, align) + new Vector2(size.Value.X / 2.0f, size.Value.Y / 2.0f), size, backgroundColor, tooltip,
            buttonTexture, hoverButtonTexture, pressedButtonTexture, true, highlightType, mouseCursorHoverTexture, mouseCursorPressedTexture /*, mouseCursorHoverBitmap, mouseCursorPressedBitmap*/)
 {
     m_canHandleKeyboardActiveControl = canHandleKeyboardActiveControl && implementedFeature;
     m_onButtonClick          = onButtonClick;
     m_canHandleKeyboardInput = canHandleKeyboardInput && implementedFeature;
     m_implementedFeature     = implementedFeature;
 }
        //
        public void DrawInterferencedBackGround(MyTexture2D overlappingTexture, Vector2 normalizedCoord, Vector2 normalizedSize, Vector2 overlappingTextureTiling, Color color, MyGuiDrawAlignEnum drawAlign)
        {
            MyEffectSpriteBatchShader spriteEffect = MyRender.GetEffect(MyEffects.VideoSpriteEffects) as MyEffectSpriteBatchShader;

            spriteEffect.SetDiffuseTexture2(overlappingTexture);
            spriteEffect.SetTexture2Tiling(overlappingTextureTiling);

            m_spriteBatch.Begin(0, BlendState.AlphaBlend, null, null, null, spriteEffect.GetEffect());

            Vector2 screenCoord = MyGuiManager.GetScreenCoordinateFromNormalizedCoordinate(normalizedCoord);
            Vector2 screenSize  = MyGuiManager.GetScreenSizeFromNormalizedSize(normalizedSize);

            screenCoord = MyGuiManager.GetAlignedCoordinate(screenCoord, screenSize, drawAlign);


            m_spriteBatch.Draw(GetCurrentFrame(), new SharpDX.DrawingRectangle((int)screenCoord.X, (int)screenCoord.Y, (int)screenSize.X, (int)screenSize.Y), SharpDX.Toolkit.SharpDXHelper.ToSharpDX(color));

            m_spriteBatch.End();
        }