示例#1
0
        // User defined event handlers that are called when a Selection is made.
        // Reemplazado por Manejo de Eventos // GDZ
        //List<MemberFunctionSlot> mOnSelectUserEventHandlers = new List<MemberFunctionSlot>();


        internal ComboBox(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, dimensions, positionMode, sizeMode, material, overlayContainer, ParentWidget)
        {
            mListItemHorizontalAlignment = GuiHorizontalAlignment.GHA_CENTER;
            mListItemVerticalAlignment   = GuiVerticalAlignment.GVA_CENTER;
            mWidgetType = Widget.WidgetType.QGUI_TYPE_COMBOBOX;

            // Create CloseButton - remember to position it relative to it's parent (TitleBar)
            // Height of the Title Bar
            float height = (mAbsoluteDimensions.w / mAbsoluteDimensions.z);
            // Button has same height as width - Make the button slightly smaller that the titlebar height
            float buttonHeight = 0.8f;
            float buttonWidth  = (height * buttonHeight);
            // Make a 5 pixel buffer
            float   buffer      = 5.0f / mPixelDimensions.z;
            Vector4 bDimensions = new Vector4((1 - (buttonWidth + buffer)), 0.1f, buttonWidth, buttonHeight);

            mButton = new Button(mInstanceName + ".button", bDimensions, QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, mWidgetMaterial + ".button", mChildrenContainer, this);
            mButton.setZOrderOffset(1);
            _addChildWidget(mButton);

            // Make a 15 pixel buffer for the Label
            float bigBuffer = 15.0f / mPixelDimensions.z;

            mLabel = new Label(mInstanceName + ".Label", new Vector4(bigBuffer, 0, (1 - (buttonWidth + bigBuffer)), 1), QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, "", mChildrenContainer, this);
            mLabel.OnDeactivate += new DeactivateEventHandler(ComboBox_OnDeactivate);
            //Reemplazado por Manejo de Eventos //GDZ
            //mLabel.addEventHandler((int)Widget.Event.QGUI_EVENT_DEACTIVATED, this);
            mLabel.setZOrderOffset(1);
            _addChildWidget(mLabel);

            mList = new List(mInstanceName + ".List", new Mogre.Vector3(0, 1.0f, 1.0f), QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, mWidgetMaterial + ".list", getSheet().getMenuContainer(), this);
            mList.setCharacterHeight(mCharacterHeight);
            mList.setFont(mFont);
            mList.setTextColor(mTextTopColor, mTextBotColor);
            mList.hide();
            int    derivedZOrder = getSheet().getMenuOverlayZOrder() + 1;
            Window w             = getWindow();

            if (w != null)
            {
                mList.setZOrderOffset(derivedZOrder - getWindow().getZOrder(), false);
            }
            else
            {
                mList.setZOrderOffset(derivedZOrder, false);
            }
            _addChildWidget(mList);

            OnDeactivate      += new DeactivateEventHandler(ComboBox_OnDeactivate);
            OnMouseEnter      += new MouseEnterEventHandler(ComboBox_OnMouseEnter);
            OnMouseLeaves     += new MouseLeavesEventHandler(ComboBox_OnMouseLeaves);
            OnMouseButtonDown += new MouseButtonDownEventHandler(ComboBox_OnMouseButtonDown);
            OnMouseButtonUp   += new MouseButtonUpEventHandler(ComboBox_OnMouseButtonUp);
        }
示例#2
0
        public Button(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, dimensions, positionMode, sizeMode, material, overlayContainer, ParentWidget)
        {
            mWidgetType = Widget.WidgetType.QGUI_TYPE_BUTTON;
            setCharacterHeight(0.5f);

            MaterialManager mm = MaterialManager.Singleton;

            mOverMaterialExists = mm.ResourceExists(mWidgetMaterial + ".over");
            mDownMaterialExists = mm.ResourceExists(mWidgetMaterial + ".down");

            OnMouseEnter      += new MouseEnterEventHandler(Button_OnMouseEnter);
            OnMouseButtonDown += new MouseButtonDownEventHandler(Button_OnMouseButtonDown);
            OnMouseButtonUp   += new MouseButtonUpEventHandler(Button_OnMouseButtonUp);
            OnMouseLeaves     += new MouseLeavesEventHandler(Button_OnMouseLeaves);
        }
        /** Constructor
         *  @param
         *      name The name to be given to the widget (must be unique).
         *  @param
         *      dimensions The x Position, y Position, width, and height of the widget.
         *              @param
         *                      positionMode The GuiMetricsMode for the values given for the position. (absolute/relative/pixel)
         *              @param
         *                      sizeMode The GuiMetricsMode for the values given for the size. (absolute/relative/pixel)
         *              @param
         *                      material Ogre material defining the widget image.
         *              @param
         *                      overlayContainer associates the internal OverlayElement with a specified zOrder.
         *              @param
         *                      ParentWidget parent widget which created this widget.
         */
        public TextBox(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget)
            : base(name, dimensions, positionMode, sizeMode, material, overlayContainer, ParentWidget)
        {
            mWidgetType = Widget.WidgetType.QGUI_TYPE_TEXTBOX;

            mMaskUserInput         = false;
            mBackSpaceDown         = false;
            mBackSpaceTimer        = 0.0f;
            mDeleteDown            = false;
            mDeleteTimer           = 0.0f;
            mLeftArrowDown         = false;
            mRightArrowDown        = false;
            mMoveCursorTimer       = 0.0f;
            mCursorVisibilityTimer = 0.0f;
            mReadOnly  = false;
            mInputMode = false;


            // Border Overlay gives us ability to assign material to TextBox border and Panel separately.
            mOverlayElement = createPanelOverlayElement(mInstanceName + ".Background", mPixelDimensions, "");
            mOverlayContainer.AddChild(mOverlayElement);
            mOverlayElement.Show();
            setMaterial(mWidgetMaterial);

            mCharacterHeight = 0.75f;
            Mogre.Vector3 textDimensions = new Mogre.Vector3(0, 0, mCharacterHeight);
            // Label has no material, since it directly overlaps the textbox overlay element
            mTextWidget = new Text(mInstanceName + ".Text", textDimensions, QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, mChildrenContainer, this);
            mTextWidget.setTruncateMode(Text.TruncateMode.LEFT);
            mTextWidget.setTruncationFeedback("");
            mTextWidget.setZOrderOffset(1);
            _addChildWidget(mTextWidget);

            mHorizontalAlignment = GuiHorizontalAlignment.GHA_LEFT;
            mVerticalAlignment   = GuiVerticalAlignment.GVA_CENTER;

            alignText(mHorizontalAlignment, mVerticalAlignment);

            OnDeactivate      += new DeactivateEventHandler(TextBox_OnDeactivate);
            OnCharacter       += new CharacterEventHandler(TextBox_OnCharacter);
            OnKeyDown         += new KeyDownEventHandler(TextBox_OnKeyDown);
            OnKeyUp           += new KeyUpEventHandler(TextBox_OnKeyUp);
            OnMouseButtonDown += new MouseButtonDownEventHandler(TextBox_OnMouseButtonDown);
            OnTimeElapsed     += new TimeElapsedHandler(TextBox_OnTimeElapsed);
        }
示例#4
0
 public static void RemoveMouseButtonDownEventHandler(MouseButtonDownEventHandler e) => ModBase.InputManager.RemoveMouseButtonDownEventHandler(e);