示例#1
0
        public List(string name, Vector3 dimensions, Label itemTemplate, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, new Vector4(dimensions.x, dimensions.y, dimensions.z, 0), positionMode, sizeMode, material, overlayContainer, ParentWidget)
        {
            mAutoNameListItemCount       = 0;
            mAutoNameListCount           = 0;
            mListItemHorizontalAlignment = GuiHorizontalAlignment.GHA_CENTER;
            mListItemVerticalAlignment   = GuiVerticalAlignment.GVA_CENTER;

            mWidgetType = Widget.WidgetType.QGUI_TYPE_LIST;

            mDefaultListItemHeight = itemTemplate.getDimensions(QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE).w;

            mHighlightMaterial = getSheet().getDefaultSkin() + ".list.highlight";

            // create highlight container for the list
            mHighlightContainer = createOverlayContainer(mInstanceName + ".HighlightContainer", "");
            mChildrenContainer.AddChildImpl(mHighlightContainer);

            mHighlightPanel = createPanelOverlayElement(mInstanceName + ".HighlightPanel", mPixelDimensions, mHighlightMaterial);
            mHighlightContainer.AddChild(mHighlightPanel);
            mHighlightPanel.Show();

            mItems        = new List <ListItem>();
            mChildLists   = new List <List>();
            OnDeactivate += new DeactivateEventHandler(List_OnDeactivate);


            setCharacterHeight(itemTemplate.getCharacterHeight());
            setFont(itemTemplate.getFont());
            setTextColor(itemTemplate.getTextColorTop());
        }
示例#2
0
        Image _createImage(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, bool texture)
        {
            string defaultMaterial = getSheet().getDefaultSkin() + ".image";
            Image  newImage        = new Image(name, dimensions, positionMode, sizeMode, defaultMaterial, mChildrenContainer, this);

            if (texture)
            {
                newImage.setMaterial(material, true);
            }
            else
            {
                newImage.setMaterial(material);
            }

            newImage.setZOrderOffset(1);
            if (!mVisible)
            {
                newImage.hide();
            }

            _addChildWidget(newImage);
            // update count
            ++mNumImages;

            return(newImage);
        }
示例#3
0
        public Image createImage(Vector4 dimensions, string material, bool texture, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = mInstanceName + ".ChildWidget" + mAutoNameWidgetCounter;

            ++mAutoNameWidgetCounter;

            return(_createImage(name, dimensions, positionMode, sizeMode, material, texture));
        }
示例#4
0
        public NStateButton createNStateButton(Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = mInstanceName + ".ChildWidget" + mAutoNameWidgetCounter;

            ++mAutoNameWidgetCounter;

            return(_createNStateButton(name, dimensions, positionMode, sizeMode));
        }
示例#5
0
        public TextBox createTextBox(Vector4 dimensions, string material, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = mInstanceName + ".ChildWidget" + mAutoNameWidgetCounter;

            ++mAutoNameWidgetCounter;

            return(_createTextBox(name, dimensions, positionMode, sizeMode, material));
        }
示例#6
0
        public NStateButton createNStateButton(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            return(_createNStateButton(name, dimensions, positionMode, sizeMode));
        }
示例#7
0
        public Panel createPanel(string name, Vector4 dimensions, string material, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            return(_createPanel(name, dimensions, positionMode, sizeMode, material));
        }
        /** 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
         *      overlayContainer associates the internal OverlayElement with a specified zOrder.
         *  @param
         *      ParentWidget parent widget which created this widget.
         */
        public NStateButton(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, OverlayContainer overlayContainer, Widget ParentWidget)
            : base(name, dimensions, positionMode, sizeMode, "", overlayContainer, ParentWidget)
        {
            mWidgetType = Widget.WidgetType.QGUI_TYPE_NSTATEBUTTON;

            mStates = new List <State>();

            this.OnMouseButtonUp += new MouseButtonUpEventHandler(NStateButton_OnMouseButtonUp);
        }
        /** Create a Window with material, borders, and TitleBar
         *  @param
         *      dimensions The relative x Position, y Position, width, and height of the window.
         *  @note
         *      Name for window will be autogenerated. (Convenience method)
         *  @note
         *      Default Skin material for windows will be applied.
         */
        public Window createWindow(Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = "DefaultWindow" + mAutoNameWindowCounter;

            ++mAutoNameWindowCounter;

            string material = mDefaultSkin + ".window";

            return(_createWindow(name, dimensions, positionMode, sizeMode, material));
        }
示例#10
0
        public TextBox createTextBox(Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = mInstanceName + ".ChildWidget" + mAutoNameWidgetCounter;

            ++mAutoNameWidgetCounter;

            string material = getSheet().getDefaultSkin() + ".textbox";

            return(_createTextBox(name, dimensions, positionMode, sizeMode, material));
        }
示例#11
0
        public List createList(Vector3 dimensions, Label itemTemplate, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            string name = mInstanceName + ".ChildWidget" + mAutoNameWidgetCounter;

            ++mAutoNameWidgetCounter;

            string material = getSheet().getDefaultSkin() + ".list";

            return(_createList(name, dimensions, itemTemplate, positionMode, sizeMode, material));
        }
        public Image(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_IMAGE;
            mMaterialPtr = null;

            mOverlayElement = createPanelOverlayElement(mInstanceName + "_Background", mPixelDimensions, "");
            mOverlayContainer.AddChild(mOverlayElement);
            mOverlayElement.Show();
            setMaterial(mWidgetMaterial);
        }
示例#13
0
        public TextBox createTextBox(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            string material = getSheet().getDefaultSkin() + ".textbox";

            return(_createTextBox(name, dimensions, positionMode, sizeMode, material));
        }
        Menu _createMenu(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material)
        {
            Menu newMenu = new Menu(name, dimensions, positionMode, sizeMode, material, mMenuContainer, this);

            newMenu.setZOrderOffset(mMenuOverlayZOrder + 2);
            _addChildWidget(newMenu);
            // update count
            ++mNumMenus;

            return(newMenu);
        }
        /** Create a Window with material, borders, and TitleBar
         *  @param
         *      name Window name, must be unique.
         *  @param
         *      dimensions The relative x Position, y Position, width, and height of the window.
         *  @note
         *      Default Skin material for windows will be applied.
         */
        public Window createWindow(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            string material = mDefaultSkin + ".window";

            return(_createWindow(name, dimensions, positionMode, sizeMode, material));
        }
示例#16
0
        public List createList(string name, Vector3 dimensions, Label itemTemplate, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            string material = getSheet().getDefaultSkin() + ".list";

            return(_createList(name, dimensions, itemTemplate, positionMode, sizeMode, material));
        }
示例#17
0
        public Image createImage(string name, Vector4 dimensions, bool texture, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            string material = getSheet().getDefaultSkin() + ".image";

            return(_createImage(name, dimensions, positionMode, sizeMode, material, texture));
        }
示例#18
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);
        }
示例#19
0
        /** 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 Menu(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget)
            : base(name, dimensions, positionMode, sizeMode, material, overlayContainer, ParentWidget)
        {
            mMenuListCounter = 0;
            mShowMenus       = false;
            mWidgetType      = Widget.WidgetType.QGUI_TYPE_MENU;
            mMenuLists       = new List <MenuList>();

            OnDeactivate    += new DeactivateEventHandler(Menu_OnDeactivate);
            OnMouseButtonUp += new MouseButtonUpEventHandler(Menu_OnMouseButtonUp);
            OnMouseMoved    += new MouseMovedEventHandler(Menu_OnMouseMoved);
        }
        public ListItem(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, dimensions, positionMode, sizeMode, "", overlayContainer, ParentWidget)
        {
            mImage      = null;
            mButton     = null;
            mWidgetType = Widget.WidgetType.QGUI_TYPE_LISTITEM;
            setCharacterHeight(1.0f);

            OnDeactivate    += new DeactivateEventHandler(ListItem_OnDeactivate);
            OnMouseEnter    += new MouseEnterEventHandler(ListItem_OnMouseEnter);
            OnMouseButtonUp += new MouseButtonUpEventHandler(ListItem_OnMouseButtonUp);
            OnMouseLeaves   += new MouseLeavesEventHandler(ListItem_OnMouseLeaves);
        }
        /** Constructor
         *  @param
         *      name The name to be given to the widget (must be unique).
         *  @param
         *      dimensions The relative x Position, y Position, width and height of the widget.
         *  @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 TextCursor(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_TEXTCURSOR;

            float pixelWidth = GUIManager.Singleton.getRenderWindowWidth() * 0.01f;

            mPixelDimensions.z = Mogre.Math.Ceil(pixelWidth);

            mOverlayElement = createPanelOverlayElement(mInstanceName + "_Background", mPixelDimensions, "");
            mOverlayContainer.AddChild(mOverlayElement);
            mOverlayElement.Show();
            setMaterial(mWidgetMaterial);
        }
示例#22
0
        NStateButton _createNStateButton(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            NStateButton newNStateButton = new NStateButton(name, dimensions, positionMode, sizeMode, mChildrenContainer, this);

            newNStateButton.setZOrderOffset(1);
            if (!mVisible)
            {
                newNStateButton.hide();
            }
            _addChildWidget(newNStateButton);
            // update count
            ++mNumNStateButtons;

            return(newNStateButton);
        }
        /** Create a Window with material, borders, and TitleBar
         *  @param
         *      dimensions The relative x Position, y Position, width, and height of the window.
         *  @param
         *      material Ogre material to define the Window image.
         *  @param
         *      toggle visibility.
         *  @note
         *      Name for window will be autogenerated. (Convenience method)
         */
        public Window createWindow(Vector4 dimensions, string material, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            // Many widgets can have no material, (label or empty window for example) but a regular window
            // must have a material!
            if (string.Empty.Equals(material))
            {
                return(null);
            }

            string name = "DefaultWindow" + mAutoNameWindowCounter;

            ++mAutoNameWindowCounter;

            return(_createWindow(name, dimensions, positionMode, sizeMode, material));
        }
示例#24
0
        Panel _createPanel(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material)
        {
            Panel newPanel = new Panel(name, dimensions, positionMode, sizeMode, material, mChildrenContainer, this);

            newPanel.setZOrderOffset(1);
            if (!mVisible)
            {
                newPanel.hide();
            }
            _addChildWidget(newPanel);
            // update count
            ++mNumPanels;

            return(newPanel);
        }
示例#25
0
        Menu _createMenu(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material)
        {
            Menu newMenu = new Menu(name, dimensions, positionMode, sizeMode, material, mChildrenContainer, this);

            newMenu.setZOrderOffset(1);
            if (!mVisible)
            {
                newMenu.hide();
            }
            _addChildWidget(newMenu);
            // update count
            ++mNumMenus;

            return(newMenu);
        }
示例#26
0
        List _createList(string name, Vector3 dimensions, Label itemTemplate, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material)
        {
            List newList = new List(name, dimensions, itemTemplate, positionMode, sizeMode, material, mChildrenContainer, this);

            newList.setZOrderOffset(1);
            if (!mVisible)
            {
                newList.hide();
            }
            _addChildWidget(newList);
            // update count
            ++mNumLists;

            return(newList);
        }
示例#27
0
        TextBox _createTextBox(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material)
        {
            TextBox newTextBox = new TextBox(name, dimensions, positionMode, sizeMode, material, mChildrenContainer, this);

            newTextBox.setZOrderOffset(1);
            if (!mVisible)
            {
                newTextBox.hide();
            }
            _addChildWidget(newTextBox);
            // update count
            ++mNumTextBoxes;

            return(newTextBox);
        }
示例#28
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);
        }
        public Window createWindow(string name, Vector4 dimensions, string material, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode)
        {
            if (!(GUIManager.Singleton.validWidgetName(name)))
            {
                return(null);
            }

            // Many widgets can have no material, (label or empty window for example) but a regular window
            // must have a material!
            if (string.Empty.Equals(material))
            {
                return(null);
            }

            return(_createWindow(name, dimensions, positionMode, sizeMode, material));
        }
示例#30
0
        public MenuList(string name, Vector4 dimensions, QGuiMetricsMode positionMode, QGuiMetricsMode sizeMode, string material, OverlayContainer overlayContainer, Widget ParentWidget) : base(name, dimensions, positionMode, sizeMode, material + ".button", overlayContainer, ParentWidget)
        {
            mWidgetType = Widget.WidgetType.QGUI_TYPE_MENULIST;
            setCharacterHeight(0.8f);

            // create list
            mList = new List(mInstanceName + ".List", new Vector3(0f, 1.0f, 1.0f), QGuiMetricsMode.QGUI_GMM_RELATIVE, QGuiMetricsMode.QGUI_GMM_RELATIVE, material + ".list", getSheet().getMenuContainer(), this);
            mList.setCharacterHeight(mCharacterHeight);
            mList.setFont(mFont);
            mList.setTextColor(mTextTopColor, mTextBotColor);
            mList.hide();
            // give the list the same zOrder as the button representing this menulist.
            mList.setZOrderOffset(mZOrderOffset, false);
            _addChildWidget(mList);

            OnDeactivate += new DeactivateEventHandler(MenuList_OnDeactivate);
        }